我在Google中使用它在dataframe中创建一个单独的列,检查'Text‘列是否包含一个诅咒词。数据帧有100多万行,使用此代码将花费大约5天的时间,每1000行采样需要6分钟。有没有更有效的替代方案?也许用深度学习?
import language_tool_python
tool = language_tool_python.LanguageTool('en-US')
from better_profanity import profanity
profanity.load_censor_words()
profanity_col = []
for x in df.Text.values:
matches = tool.check(x)
bad_words = profanity.contains_profanity(x)
if bad_words == True:
profanity_col.append(int(1))
elif bad_words == False:
profanity_col.append(int(0))
df = df.assign(profanity=pd.Series(profanity_col).values)
print(df[['profanity']].value_counts())发布于 2022-09-07 04:53:47
这应该运行得更快,并消除了许多不必要的代码和不必要的解构一个非常好的DataFrame。
df['profanity'] = df.Text.apply(profanity.contains_profanity).astype(int)虽然Google不是一个选项,因为我相信您仅限于一个核心,但使用pandarallel可以显著加快速度
from pandarallel import pandarallel
pandarallel.initialize()
df['profanity'] = df.Text.parallel_apply(profanity.contains_profanity).astype(int)https://stackoverflow.com/questions/73630207
复制相似问题