Является ли Vader SentimentIntensityAnalyzer многоязычным?
Я застрял в анализе настроений и нашел решение Vader, которое является лучшим из всех, что я мог найти. Моя проблема в том, что я не могу найти документ о том, как кормить его другими языками, кроме английского.
1 ответ
Короткий ответ - нет".
Файл README на странице состояния github
если у вас есть доступ к Интернету, в демоверсии приведен пример того, как VADER может работать с анализом настроений текстов на других языках (неанглийских текстовых предложений).
но если вы посмотрите, что на самом деле делается для этой демонстрации (начиная со строки 552 в текущей версии vaderSentiment.py), это полностью основано на использовании веб-службы машинного перевода для автоматического перевода текста на английский язык. Таким образом, результаты зависят не только от точности инструмента анализа настроений, но и от точности любого инструмента перевода, который вы используете для создания английской версии ввода.
Vader выполняет только анализ настроений на английском языке, но этот обходной путь (автоматический перевод) может быть приемлемым вариантом. Анализ настроений менее чувствителен к обычным проблемам машинного перевода, чем другие случаи использования *, но вам, безусловно, придется помнить об ограничениях, если вы решите использовать этот обходной путь.
* В качестве примера, сервис, использованный в демоверсии, переводится как "Das Internet funktioniert heute nicht. Ist eine Störung bekannt?" на "Интернет не работал сегодня. Известно ли расстройство?", что было бы более точно переведено как "Интернет сегодня не работает. Известно ли нарушение?". В первом предложении это слово неправильно, и хотя в этом контексте есть несколько законных переводов "Störung", "беспорядок" - в лучшем случае неудобный выбор. Тем не менее, хотя это делает его довольно плохим переводом в целом, ошибки вряд ли существенно повлияют на анализ настроений.
Я пробовал NLTK Vader на другом языке. Он неплохо работает с немецким - в конце концов, языки не так уж далеки друг от друга.
Есть некоторая работа - мы не можем просто перевести словарный запас:
- Измените vader_lexicon.txt
- Измените ОТРИЦАТЕЛЬНЫЕ слова в коде
- Измените слова BOOSTER в коде
- Измените SPECIAL_CASE_IDIOMS в коде
В общем, отрицание работает, но есть случаи, требующие дополнительной работы, которую я еще не понял.