Я запускаю этот код
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, вызывая ошибку. Любое хорошее решение для этого?