Маркировка POS в Испании с помощью Stanford NLP - можно ли узнать человека / номер / пол?

Я использую Stanford NLP, чтобы делать POS-теги для испанских текстов. Я могу получить POS-тег для каждого слова, но я заметил, что мне даны только первые четыре раздела тега Ancora, и в нем отсутствуют последние три раздела для человека, номера и пола.

  • Почему Стэнфордское НЛП использует только сокращенную версию тега Ancora?

  • Можно ли получить весь тег с помощью Стэнфордского НЛП?

Вот мой код (извините за jruby ...):

props = java.util.Properties.new()
props.put("tokenize.language", "es")
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse")
props.put("ner.model", "edu/stanford/nlp/models/ner/spanish.ancora.distsim.s512.crf.ser.gz")
props.put("pos.model", "/stanford-postagger-full-2015-01-30/models/spanish-distsim.tagger")
props.put("parse.model", "edu/stanford/nlp/models/lexparser/spanishPCFG.ser.gz")

pipeline = StanfordCoreNLP.new(props)
annotation = Annotation.new("No sé qué estoy haciendo. Me pregunto si esto va a funcionar.")

Я получаю это как результат:

[Text = Нет CharacterOffsetBegin = 0 CharacterOffsetEnd = 2 PartOfSpeech = rn Lemma = no NamedEntityTag = O] [Text = sé CharacterOffsetBegin = 3 CharacterOffsetEnd = 5 PartOfSpeech = vmip000 Lemma = sé NamedEntityTageBegin = OTEXSET = 6 символов] [Text] PartOfSpeech = pt000000 Lemma = qué NamedEntityTag = O] [Text = estoy CharacterOffsetBegin = 10 CharacterOffsetEnd = 15 PartOfSpeech = vmip000 Lemma = estoy NamedEntityTag = O] [Text = haciendo CharacterOffsetBegin = O] [Text = haciendo CharacterOffsetFegin = 16 CharacterOffsetBegin = 16 CharacterOffsetBegin = 16 [Текст =. CharacterOffsetBegin = 24 CharacterOffsetEnd = 25 PartOfSpeech = fp Лемма =. NamedEntityTag = O]

(Я заметил, что леммы также неверны, но это, вероятно, проблема для отдельного вопроса. Неважно, я вижу, что Стэнфордское НЛП не поддерживает испанскую лемматизацию.)


person Kage    schedule 10.04.2015    source источник


Ответы (2)


Почему Стэнфордское НЛП использует только сокращенную версию тега Ancora?

Это было практическое решение для обеспечения высокой точности мечения. (Сохранение морфологической информации в тегах привело к тому, что весь тегировщик страдал от разреженности данных и ухудшался не только по морфологической аннотации, но и по всей плате.)

Можно ли получить весь тег с помощью Стэнфордского НЛП?

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

person Jon Gauthier    schedule 10.04.2015
comment
Спасибо за ответ. Я не уверен, знаете ли вы что-нибудь о Freeling, но означает ли это, что теггер Freeling POS будет страдать от упомянутых вами проблем? - person Kage; 13.04.2015
comment
Вы правы - я мало что знаю о внутреннем устройстве Freeling ... они могут делать какие-то аннотации на основе правил в конце своего процесса тегов, или, возможно, они просто кусают пулю и обрабатывают весь набор возможных тегов . - person Jon Gauthier; 13.04.2015

Если использование только Stanford POS tagger не является строгим, вы можете попробовать набор инструментов POS и морфологических тегов RDRPOSTagger. RDRPOSTagger поддерживает предварительно обученные POS и морфологические теги на 40 различных языках, включая испанский.

Для POS-терминалов и морфологических тегов на испанском языке RDRPOSTagger был обучен с использованием банка дерева LSP для испанских языков IULA. Затем RDRPOSTagger получил точность тегирования 97,95% со скоростью тегирования 200 000 слов в секунду в реализации Java (10 000 слов в секунду в реализации Python ), используя компьютер с ОС Window7 64-битным процессором Core i5 2,50 ГГц и 6 ГБ памяти.

person NQD    schedule 03.08.2015