Как использовать stanford pos tagger для оригинального текста на китайском языке, только не сегментированного

Привет, ребята:
Я могу использовать POS-тег для пометки сегментированного китайского текста, вызывая методMaxentTagger.tokenizeText(Reader r)
но теперь я хочу пометить оригинальный китайский текст просто не сегментирован, я знаю методMaxentTagger.tokenizeText(Reader r,TokenizerFactory tokenizerFactory)
может сделать это, но TokenizerFactory - это интерфейс, какой-то подкласс, реализующий его, как вызвать метод, кто-то может дать некоторые предложения или примеры? Благодарю.

1 ответ

В настоящее время сегментаторы слов вероятностной модели последовательности не реализуют интерфейс TokenizerFactory, только токенизаторы на основе правил... хотя, возможно, это следует изменить.

Что вам нужно сделать, это запустить Стэнфордский Word Segmenter, чтобы разбить оригинальный китайский текст на слова. Это означает вызов класса CRFClassifier с соответствующей моделью и свойствами. Результатом этого будет List<CoreLabel> (для предложения) или List<List<CoreLabel>> (для документа). Их можно подавать в теггер с помощью List<TaggedWord> apply(List<? extends HasWord> in) или же void tagCoreLabels(List<CoreLabel> sentence) методы.

Или вам может быть проще использовать StanfordCoreNLP для соединения частей вместе. Он работает с китайским языком, если вы скачаете флягу китайских моделей, доступную по адресу http://nlp.stanford.edu/software/corenlp.shtml

Другие вопросы по тегам