Я ищу хороший открытый исходный код POS Tagger в Java. Вот что я придумал до сих пор.Что такое хорошая библиотека Java для тегов Part of-Speech?
Кто-нибудь есть какие-либо рекомендации?
Я ищу хороший открытый исходный код POS Tagger в Java. Вот что я придумал до сих пор.Что такое хорошая библиотека Java для тегов Part of-Speech?
Кто-нибудь есть какие-либо рекомендации?
Я использовал OpenNLP с хорошими результатами. Вы также можете посмотреть MorphAdorner.
Я использовал и LingPipe, и PST Tagger от Stanford. Позже это state-of-the-art POS Tagger, но, по моему опыту, он слишком медленный (хотя они предоставляют менее точные модели, которые достаточно быстрые). Конечно, это всегда зависит от того, чего вы пытаетесь достичь, и всегда будет компромисс между скоростью и точностью.
Я также когда-то использовал программное обеспечение NER на основе LBJ и, хотя оно было довольно точным, исходный код был полным беспорядком. Источник LingPipe и Stanford очень чист и хорошо документирован.
Вы также можете посмотреть LTAG-spinal. Я еще не использовал его, но из описания алгоритма и из приведенной точности он кажется лучше, чем альтернативы, которые у вас есть.
Надеюсь, это поможет.
Вы хотите пометить POS в определенном домене? Большинство тегов общего назначения проходят обучение по новостному тексту. Как правило, они плохо работают, когда вы используете их в определенных доменах (таких как биомедицинский текст). Существуют и другие тегеры, специально обученные для таких доменов, такие как dTagger (java) для биомедицинского текста.
Для текста с новостью, Adwait Ratnaparkhi's MXPOST очень хорош и является тем, который я бы рекомендовал.
Других реализаций Java включают в себя:
OpenNLP и Lingpipe, как и другие плакаты, также довольно приличные.
Информация о состоянии дел по маркировке POS может быть найдена here. Как вы можете видеть, LTAG-Spinal (также упоминается еще одним плакатом) сейчас лучше, но вариации по различным меткам не так много. Я сам не использовал LTAG.
Также обратите внимание, что базовая производительность для маркировки POS составляет около 90%. Исходный уровень означает: (a) пометить каждое слово наиболее частого тега POS из лексикона и (b) пометить каждое неизвестное слово как существительное.
Ваша ссылка MXPOST относится к FTP-сайту со сжатым архивом. Я искал вокруг и не мог найти много о MXPOST, кроме того, что это тезис CS. Правильно ли я полагаю, что поддержка MXPOST не так много? – Glenn
@Glenn Да. Хотя OPENNLP представляется эквивалентной реализацией MXPOST. Я цитирую с сайта OPENNLP: 1. * Если вы знакомы с выбором функции для максимальной реализации Adwait Ratnaparkhi, у вас не должно быть проблем, так как наша реализация [тегатора POS] использует функции так же, как и его. * и 2. * Его введение [Adwait в] для MaxEnt НЛП и диссертационной что на самом деле сделаны opennlp.maxent и наши MaxEnt компоненты ГРОК (POS Tagger, конец детектора предложения, Tokenizer, имя искатель) возможно! * OpenNLP, похоже, имеет активное сообщество sourceforge. – hashable
В конце концов, это был LingPipe, который работал лучше для меня. Это было лучшее с точки зрения возможности встраивания в другую систему. Это тоже неплохая работа по пометке POS. – Glenn
Лучшая модель Стэнфорда умеренно медленная. Но, на самом деле, LTAG-спиналь снова в 3 раза медленнее и ничтожно лучше. Для общего использования мы рекомендуем использовать модель left3words: пометка с ней имеет одинаковую или лучшую скорость, чем у тегов Ratnaparkhi или OpenNLP, но более точная. Найдите [дополнительную информацию] (http://nlp.stanford.edu/software/pos-tagger-faq.shtml#h) в FAQ по чат-тестеру в Стэнфорде. –
Я не могу найти никакого сравнения с OpenNlp там (только с другими taggers) - я что-то пропускаю? – benroth
@ChristopherManning Я только что сделал 10-кратное перекрестное подтверждение, используя Penn Treebank. кажется, что left3words немного хуже, чем opennlp. Но двунаправленное действительно лучше. Не могли бы вы рассказать больше о данных, по которым вы провели сравнение? Благодаря! –