Можно ли отредактировать лексикон настроений вейдеров 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] Есть ли у вас какие-либо идеи о том, как я могу отредактировать готовую лексику?

Источники:

[1] https://github.com/cjhutto/vaderSentiment

[2] http://www.nltk.org/api/nltk.sentiment.html

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')

К сожалению, я не знаю, как удалить несколько слов одновременно. Если кто-то может прокомментировать и добавить эту информацию, это будет оценено.

Другие вопросы по тегам