当我使用spaCy清理数据时,我运行以下行:
df['text'] = df.sentence.progress_apply(lambda text: " ".join(token.lemma_ for token in nlp(text) if not token.is_stop and token.is_alpha))
如果文本行中的每个单词不是停止词,则将其进行柠檬化。问题是,在检查令牌是否为停止字后,text.lemma u应用于令牌。因此,如果停止词不是柠檬化形式,它将不会被视为停止词。例如,如果我将“friend”添加到停止词列表中,如果原始标记是“friends”,则输出仍将包含“friend”。简单的解决办法是运行这条线两次。但这听起来很傻。任何人都可以提出一个解决方案,在第一次运行时删除没有柠檬化形式的停止词
谢谢
您只需检查
token.lemma_
是否存在于nlp.Defaults.stop_words
中:例如:
请参阅快速测试:
如果将大写单词添加到stopword列表中,则需要使用
if token.lemma_.lower() not in map(str.lower, nlp.Defaults.stop_words)
相关问题 更多 >
编程相关推荐