В двух словах, SharpNLP - это
- порт для C # из OpenNLP Tools и OpenNLP MaxEnt
- соединитель с WordNet
- набором предварительно вычисленных моделей, в основном для вспомогательных модулей
- на английском языке, таких как интеграция с SQLLite
Следует отметить, что порт библиотек OpenNLP является относительно неформальным, с различными изменениями имен классов и свойств, возможно, потеря сохранения функций и семантики и отсутствие очевидной связи с жизненным циклом исходных проектов Java.,Эта ситуация, вероятно, будет гарантировать, что со временем часть OpenNLP в SharpNLP будет больше похожа на дальних родственников, чем на сестер-близнецов ...
Тем не менее, можно использовать примеры и документацию от OpenNLP длядополняют относительно тонкий материал поддержки, доступный с SharpNLP .Между исходным кодом SharpNLP и такими ресурсами, как ссылка на API OpenNLP и OpenNLP wiki , можно, как правило, отображать вещи и соответствующим образом адаптироваться..
Свободный проводник может быть исследованием этого конкретного исходного файла , который использует OpenNLP способом, который кажется близким к тому, что вам может понадобиться.Обратите внимание, что имя меняется между OpenNLP и SharpNLP, например, POSTTaggerME класс становится MaximumEntropyPosTagger , а метод Parse () и его перегрузка превращаются в TagSentence () и т. П.
Более общий совет - понять ...
... последовательность шагов, обычно необходимых для выполнения POS-тегов .
Этоприблизительное описание очень высокого уровня, но, я думаю, полезное.
- получить текст для разметки = строка (и) текста
- Инициализировать текст parser
- разобрать его = "массив" (или другой контейнер) с отдельными токенами т.е. словами и знаками препинания.
- инициализирует POS-тегер, в частности, сообщает, какая модель должна использовать
- , чтобы передать [упорядоченную] последовательность токенов в POS-тегер
- Та, да!Используйте POS-теги для конечной цели вашего приложения НЛП.
Обратите внимание, как в приведенной выше последовательности предполагается, что модель легко доступна.
Модель представляет собой статистический «профиль»текст в целом, полученный при обучении Tagger набором текста, который легко помечается.
SharpNLP поставляется с моделью для общего английского языка, но для того, чтобы маркировать другие языки или если определенные корпуса, которые должны быть помечены, принадлежат к определенной области(например, медицинские отчеты или твиты или ...) может быть предпочтительнее переобучить тегер для повышения его точности.
Open / SharpNLP, так как большинство POS-тегеров, независимо от того, являются ли они автономными или их API, обычно включают функции для обученияих (= для создания модели с заданным образцом набора текста, который легко помечается), а также для проверки качества созданной модели / тегера (= для сравнения тегов, созданных в тестовом наборе, с тегами, ожидаемыми для этого набора).