Методы расчета частоты прилагательного - PullRequest
5 голосов
/ 16 января 2012

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

Например, предположим, что мой список прилагательных был: [полезно, хорошо осведомлено, дружелюбно].Я хочу убедиться, что «дружественный» не учитывается в предложении типа «Представитель был не очень дружелюбным».

Нужно ли выполнять полный анализ текста НЛП или есть более простой подход?Мне не нужна супер высокая точность.

Я совсем не знаком с НЛП.Я надеюсь на что-то, что не имеет такой крутой кривой обучения и не так сильно загружает процессор.

Спасибо

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Если все, что вам нужно, это прилагательные частоты, тогда проблема относительно проста, в отличие от какого-то брутального, не очень хорошего решения для машинного обучения.

Что делать?

Сделайте POS-теги для вашего текста. Это аннотирует ваш текст частью речевых тегов, поэтому вы будете иметь точность 95% или более. Вы можете пометить свой текст с помощью Stanford Parser онлайн , чтобы почувствовать его. Парсер на самом деле также дает вам грамматическую структуру, но вы заботитесь только о тегах.

Вы также хотите убедиться, что предложения разбиты правильно. Для этого вам нужен прерыватель предложения. Это включено в программное обеспечение, такое как анализатор Стэнфорда.

Затем просто разбейте предложения, отметьте их и посчитайте все с помощью тега ADJ или любого другого тега, который они используют. Если теги не имеют смысла, найдите набор тегов Penn Treebank (Treebanks используются для обучения инструментам NLP, и теги Penn Treebank являются общими). ​​

Как?

Java или Python - это язык инструментов НЛП. Python, используйте NLTK. Это легко, хорошо документировано и понятно.

Для Java у вас есть GATE, LingPipe и Stanford Parser и другие. Это полная боль в заднице - использовать Stanford Parser, к счастью, я пострадал, поэтому вам не придется, если вы решите пойти по этому пути. Посмотрите мою страницу Google с примерами кода (внизу страницы) с использованием Stanford Parser.

Все ли?

Нет, возможно, вы тоже захотите поставить прилагательные - вот где вы получите корневую форму слова:

авто -> авто

На самом деле я не могу вспомнить ситуацию, когда это необходимо с прилагательными, но это может произойти. Когда вы посмотрите на свои результаты, станет очевидно, что вам нужно это сделать. POS-тэггер / парсер / и т. Д. Даст вам ваши слова (также называемые леммами).

Больше объяснений НЛП См. этот вопрос .

enter image description here

2 голосов
/ 16 января 2012

Это зависит от источника ваших данных. Если предложения приходят из какого-то генератора, вы, вероятно, можете разделить их автоматически. В противном случае вам понадобится НЛП, да.

Правильный анализ естественного языка в значительной степени является открытой проблемой. Он работает "в основном" для английского языка, в частности, поскольку английские предложения имеют тенденцию придерживаться порядка SVO. Например, немецкий здесь довольно неприятный, поскольку разные порядки слов придают разное значение (и, следовательно, могут передавать разные значения, в частности, когда используется ирония). Кроме того, немецкий язык использует гораздо больше подчиненных предложений.

НЛП - это путь. По крайней мере, понадобится базовый парсер. Это действительно зависит и от вашей задачи: вам нужно убедиться, что все правильно, или вероятностный подход достаточно хорош? Могут ли "сложные" случаи быть отброшены или переданы человеку для рассмотрения? и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...