Я использую код НЛП, пытаясь найти наиболее влиятельные (положительные или отрицательные) слова в опросе.Моя проблема в том, что, хотя я успешно добавляю некоторые дополнительные стоп-слова в файл стоп-слов NLTK, они продолжают появляться как влиятельные слова позже.
Итак, у меня есть фрейм данных, первый столбец содержит оценки, второй столбец содержит комментарии.
Я добавляю дополнительные стоп-слова:
stopwords = stopwords.words('english')
extra = ['Cat', 'Dog']
stopwords.extend(extra)
Я проверяю их добавление, используя метод len до и после.
Я создаю эту функцию для удаления знаков препинания истоп-слова из моих комментариев:
def text_process(comment):
nopunc = [char for char in comment if char not in string.punctuation]
nopunc = ''.join(nopunc)
return [word for word in nopunc.split() if word.lower() not in stopwords]
Я запускаю модель (не собираюсь включать весь код, так как это не имеет значения):
corpus = df['Comment']
y = df['Label']
vectorizer = CountVectorizer(analyzer=text_process)
x = vectorizer.fit_transform(corpus)
...
И затем, чтобы получить самые влиятельные слова:
feature_to_coef = {word: coef for word, coef in zip(vectorizer.get_feature_names(), nb.coef_[0])}
for best_positive in sorted(
feature_to_coef.items(),
key=lambda x: x[1],
reverse=True)[:20]:
print (best_positive)
Но, Кэт и Дог в результате.
Что я делаю не так, какие-либо идеи?
Большое спасибо!