2012-05-02 1 views
4

Я студент колледжа, ищущий библиотеку НЛП для проведения анализа объектов и анализа чувств в Java-приложении для проекта летнего хобби ,Библиотека НЛП (исследование темы + анализ настроений) для веб-приложения на основе Java

Чтобы дать вам небольшой контекст того, что я пытаюсь сделать ... Я хочу создать веб-приложение на основе Java, которое будет извлекать темы из заголовков представления Reddit, а также идентифицировать настроения OP для заголовок (если возможно).

Пример Входы:

  • Reddit, мы взяли анти-SOPA петицию от 943,702 подписей 3,460,313. Петиция против CISPA составляет 691 768, счет расширился хуже, чем SOPA. Пожалуйста, ударьте, а затем обсудим дальнейшие меры или наши прошлые усилия напрасны. Мы делали это раньше, я боюсь, что мы вернулись, чтобы сделать это снова.
  • Мой друг называет его «мистер Смехотворно Photogenic Guy»
  • Insanity: CISPA стал еще гораздо хуже, а затем передаются на Бросился Голосуйте

Я в настоящее время опробовать AlchemyAPI, но это звучит как лучше NLP существуют библиотеки. Предположительно, я бы не ограничивался ограниченным числом запросов API за данный период времени (у AlchemyAPI есть квота). Я слышал имена GATE, LingPipe и OpenNLP - однако я не уверен, соответствуют ли они моим потребностям.

Я ищу рекомендации по инфраструктуре/библиотеке/api или даже лучше, сравнение с опытными пользователями. Мой опыт работы с НЛП крайне ограничен, поэтому я прошу помочь здесь (ps: если у кого есть какие-либо ресурсы для обучения больше, за пределами www.nlp-class.org, пожалуйста, дайте мне знать!) :)

ответ

4

Во-первых, я настоятельно рекомендую использовать python, так как библиотеки NLP более удобны для пользователя, чем java, и было бы намного меньше кода для поддержки проекта с одним человеком.

Я ничего не могу придумать, чтобы сделать какую-либо классификацию, поэтому моя рекомендация состояла бы в подготовке двух классификаторов: одного для предмета и одного для настроений. Вам нужно будет пометить данные и определить функции, но я думаю, что это было бы не слишком сложно, особенно с настроениями, когда вы создаете словарь слов «эмоций». Данные маркировки - это боль в заднице, но это и хорошие функции - это то, как вы получаете хорошую классификацию.

Предмета Классификатор:

Использование NLTK с наивным байесовским классификатором, а также определить функции, как слово (нижний регистр), и слово биграммы и триграммы.

Настроение Классификатор:

Та же функция объекта классификатора, но также есть функция, которая говорит, что слово ш в словаре эмоций с подключением с. Итак, слово «плохое» означает «плохое настроение».

После того как вы собрали достаточные данные для обучения/тестирования, вы при необходимости обучите свои классификаторы и оптимизируете функции, а затем можете запускать классификаторы против любых других данных, которые вы хотите.

Общие библиотеки назначения (Java):

  • OpenNLP
  • LingPipe
  • Weka
  • Stanford материал

библиотеки (Python):

  • NLTK
  • Scipy