2015-02-25 7 views
6

В настоящее время я работаю над проектом, где хочу извлечь эмоции из текста. Поскольку я использую conceptnet5 (семантическую сеть), я не могу, однако, просто префикс слов в предложении, содержащем слово отрицания, поскольку эти слова просто не появятся в API-интерфейсе conceptnet5.Обработка отрицания в NLP

Вот пример:

Фильм был не так хорош.

Следовательно, я полагал, что могу использовать функциональность wordm в лемме для замены прилагательных в предложениях, содержащих слова отрицания типа (не, ...).

В предыдущем примере алгоритм обнаружит wasn't и заменит его на was not. Кроме того, он обнаружит слово отрицания not и заменит good антонимом bad. Приговор будет читать:

Фильм был настолько плохим.

Хотя я вижу, что это не самый изящный способ, и он, вероятно, во многих случаях приводит к неправильному результату, я все же хотел бы обращаться с отрицанием таким образом, поскольку я откровенно не знаю ничего лучшего подход.

Учитывая мою проблему: К сожалению, я не нашел ни одной библиотеки, которая позволила бы мне, чтобы заменить все вхождения прилагаемых отрицаний-слова (wasn't =>was not). Я имею в виду, что я мог бы сделать это вручную, заменив появление регулярным выражением, но тогда я бы застрял на английском языке.

Поэтому я хотел бы спросить, знают ли вы некоторые из вас библиотеку, функцию или лучший способ, который мог бы помочь мне здесь. В настоящее время я использую python nltk, но, похоже, он не содержит таких функций, но я могу ошибаться.

Заранее спасибо :)

ответ

11

Случаи, подобные wasn't могут быть просто разобраны токенизации (tokens = nltk.word_tokenize(sentence)): wasn't превратится в was и n't.

Но отрицательное значение также может быть образовано «Квазиотрицательными словами, например, едва ли, редко, редко» и «Подразумеваемые негативы, такие как отказ, предотвращение, неохотно, отрицание, отсутствие», посмотрите на this paper. Еще более подробный анализ можно найти в статье Кристофера Потца On the negativity of negation .

Учитывая вашу первоначальную проблему, анализ настроений, большинство современных подходов, насколько я знаю, не обрабатывают отрицания явно; вместо этого они используют контролируемые подходы с n-граммами высокого порядка. Фактически обработка отрицания обычно добавляет специальный префикс NOT_ ко всем словам между символами отрицания и пунктуации.

+2

Первая ссылка была сломана. Я отследил его: http: //www.academypublication.com/issues/past/tpls/vol03/07/17.pdf – KAG1224

Смежные вопросы