Можно ли отредактировать лексикон настроений вейдеров NLTK?
Я хотел бы добавить слова к vader_lexicon.txt
указать оценки полярности для слова. Какой правильный способ сделать это?
Я видел этот файл в AppData\Roaming\nltk_data\sentiment\vader_lexicon
, Файл состоит из слова, его полярности, интенсивности и массива из 10 баллов интенсивности, полученных от "10 независимых людей-оценщиков". [1] Однако, когда я отредактировал его, ничего не изменилось в результатах следующего кода:
from nltk.sentiment.vader import SentimentIntensityAnalyzer
sia = SentimentIntensityAnalyzer()
s = sia.polarity_scores("my string here")
Я думаю, что этот текстовый файл доступен для моего кода, когда я вызвал конструктор SentimentIntensityAnalyzer. [2] Есть ли у вас какие-либо идеи о том, как я могу отредактировать готовую лексику?
Источники:
2 ответа
Я нашел исправление. Я заархивировал папку vader_lexicon
он содержит текстовый файл, и изменения, к которым я применил, теперь доступны.
Для всех, кто заинтересован, это также может быть достигнуто без необходимости вручную редактировать файл.txt лексики vader. Как repoleved в сообщении:
from nltk.sentiment.vader import SentimentIntensityAnalyzer
new_words = {
'foo': 2.0,
'bar': -3.4,
}
SIA = SentimentIntensityAnalyzer()
SIA.lexicon.update(new_words)
Если вы хотите удалить слова, используйте функцию.pop:
SIA = SentimentIntensityAnalyzer()
SIA.lexicon.pop('no')
К сожалению, я не знаю, как удалить несколько слов одновременно. Если кто-то может прокомментировать и добавить эту информацию, это будет оценено.