Я использую Apache OpenNLP для анализа настроений в цепочках Yammer. Идея здесь состоит в том, чтобы классифицировать каждый разговор на положительные, отрицательные или нейтральные чувства. Разговор может быть одним предложением или группой предложений.Анализ настроений с использованием OpenNLP
У меня есть 2 модели - модель классификации коротких предложений и модель классификации длинного предложения. Модель классификации короткого предложения обучена с короткими предложениями (менее 10 слов) с обрезанием 2 и модель классификации длинного предложения обучена с более длинными предложениями с обрезанием 5.
Вот мой подход
- Прочитайте каждый разговор.
- Очистите его, чтобы удалить URL-адреса HTTP, специальные символы, добавить пробел после точки и т. Д.
- Используйте SentenceDetector, чтобы разделить разговор на предложения.
- Для каждой классификации предложений предложения. Если предложение коротко, то вызывается модель классификации коротких предложений или вызывается модель классификации длинного предложения. Результат классификации предложений положительный, отрицательный или нейтральный
- Подведите итоги классификации предложений. т. е. если будут найдены более положительные предложения, классифицируйте разговор как положительный, отрицательный или нейтральный соответственно.
У меня есть несколько вопросов, связанных с этим подходом
- Нужна ли мне две модели короткая моделью предложения и длинная модель предложения. Причина, по которой я решил сделать это, состоит в том, что обрезание для более короткого предложения и более длинных предложений отличается.
- Можно ли следовать модели классификации, основанной на предложениях, а затем суммировать результаты каждого предложения, чтобы получить результат разговора.
- Есть ли стандарт/лучший подход к этой проблеме