stop-words - TFIDVECTORIZER:所有文本都是导致错误的停用词
问题描述
我正在运行此代码
from sklearn.feature_extraction.text import TfidfVectorizer
def lemmatizer(text):
return [word.lemma_ for word in nlp(text)]
# we need to generate the lemmas of the stop words
stop_words_str = " ".join(STOP_WORDS) # nlp function needs a string
stop_words_lemma = set(word.lemma_ for word in nlp(stop_words_str))
tfidf_lemma = TfidfVectorizer(max_features=100,
stop_words=stop_words_lemma.union({"pax", "west", "hyatt", "wscc","borderlands"}),
tokenizer=lemmatizer)
tfidf_lemma.fit(documents)
print(tfidf_lemma.get_feature_names())
我收到以下错误:
ValueError: np.nan is an invalid document, expected byte or unicode string.
我怀疑这是因为我正在处理的一些响应纯粹是由停用词组成的。我使用 Spacy 的停用词。
from spacy.lang.en import STOP_WORDS
我已经阅读了一些回复,其中有些类似“每个人都有一些东西”,我相信当用停用词过滤时会变成 NaN 导致错误。有什么好的解决方法吗?
解决方案
这是一个愚蠢的问题。实际上,我在数据准备中犯了一个错误并且错过了 NaN 值,因为我在将数据框列转换为列表之前documents
忘记使用。.dropna()
推荐阅读
- scala - 如何使火花流从未处理的偏移量开始?
- javascript - 函数值未在 Angular 中显示
- android - 方法的catch块如何执行失败场景
- docker - 如何为 Graylog 运行 Web 界面?
- c++ - CryptUnProtectData() 在 Windows 7 EMBEDDED COMPACT 上返回 ERROR_INSUFFICIENT_BUFFER(122) 错误
- mysql - 自加入表并计算返回值
- typescript - 在使用 TypeScript 的绑定函数中无法正确识别“thisArg”上下文
- php - 检查php中的内置函数
- r - Huxtable:quick_xlsx 导出后不显示数据
- c# - 如何在 Asp Net Core 中将 XML 输出从存储过程转换为 C# 对象