Stanford NLP, демо-версия здесь , дает такой результат:
Colorless/JJ green/JJ ideas/NNS sleep/VBP furiously/RB ./.
Что означают теги «Часть речи»? Я не могу найти официальный список. Это собственная система Стэнфорда, или они используют универсальные теги? (Что такое JJ
, например?)
Кроме того, когда я перебираю предложения, ища существительные, например, я заканчиваю тем, что проверяю, есть ли тег .contains('N')
. Это чувствует себя довольно слабым. Есть ли лучший способ программно искать определенную часть речи?
java
nlp
stanford-nlp
part-of-speech
Ник Хейнер
источник
источник
.starts_with('N')
а неcontains
, так как «IN» и «VBN» также содержат «N». И это, вероятно, лучший способ узнать, какие слова теггер считает существительными.Ответы:
Проект Penn Treebank . Посмотрите на теги части речи ps.
JJ прилагательное. NNS - существительное, множественное число. VBP - глагол настоящего времени. РБ это наречие.
Это для английского. Для китайцев это Penn Chinese Treebank. А для немецкого это корпус NEGRA.
источник
источник
В принятом ответе выше отсутствует следующая информация:
Также определены 9 тегов пунктуации (которые не перечислены в некоторых ссылках, см. Здесь ). Эти:
источник
Вот более полный список тегов для Penn Treebank (опубликован здесь для полноты картины):
http://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html
Он также включает теги для уровней предложений и фраз.
Уровень предложения
Уровень фразы
(описания в ссылке)
источник
На всякий случай, если вы хотели закодировать это ...
источник
Я предоставляю весь список здесь, а также даю ссылку
Вы можете найти полный список тегов частей речи здесь .
источник
Что касается вашего второго вопроса о поиске конкретного слова / чанка с тегом POS (например, существительное), вот пример кода, которому вы можете следовать.
Выход:
источник
Похоже, это коричневые бирки .
источник
Теги Stanford CoreNLP для других языков: французский, испанский, немецкий ...
Я вижу, вы используете парсер для английского языка, который является моделью по умолчанию. Вы можете использовать синтаксический анализатор для других языков (французский, испанский, немецкий ...) и, имейте в виду, что как токенизаторы, так и часть речевых тегов различны для каждого языка. Если вы хотите сделать это, вы должны загрузить определенную модель для языка (используя, например, конструктор, такой как Maven), а затем установить модель, которую вы хотите использовать. Здесь у вас есть больше информации об этом.
Вот вам списки тегов для разных языков:
TAGS FOR FRENCH:
Часть речевых меток для французского
Phrasal Категории Метки для французского:
Синтаксические функции для французского:
источник
В просторе это было очень быстро, я думаю, только в ноутбуке низкого уровня он будет работать так:
Выход в несколько проб:
Итак, я думаю, вам не нужно беспокоиться о цикле для каждой проверки POS-тегов :)
Больше улучшений я получил, когда отключил определенный конвейер:
Итак, результат быстрее:
источник