Получение неправильной маркировки POS - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь получить POS для предложения dragon flies to rescue the princess, используя приведенный ниже код

nlp = spacy.load("en_core_web_md")
doc = nlp("dragon flies to rescue the princess")

for token in doc:
    print(f'{token.text:{12}} {token.pos_:{12}}')

Вывод для указанного выше кода:

dragon       NOUN         
flies        NOUN         
to           PART         
rescue       VERB         
the          DET          
princess     NOUN         

Здесь «мухи» рассматриваются как NOUN, хотя это VERB, не потому ли, что spacy рассматривает «драконьи мухи» как одно слово?

что мне делать, если я получу sh, чтобы получить «VERB» как POS для мух.

1 Ответ

3 голосов
/ 17 января 2020

При выполнении вашего примера следует отметить две вещи:

  1. Пространственные модели - это статистически обученные модели, которые в отдельности имеют указанную c точность POS , в этом дело около 97%. Следовательно, некоторых ошибок всегда следует ожидать, особенно когда вы имеете дело с корпусом самых разнообразных предложений.
  2. Разумеется, Spacy может предоставлять значимые теги, только если предложение грамматически правильно, что не так для приведенного выше примера.

Когда я запускаю исправленное предложение «Дракон летит, чтобы спасти принцессу», выводом будет

The          DET         
dragon       NOUN        
flies        VERB        
to           PART        
rescue       VERB        
the          DET         
princess     NOUN        
.            PUNCT

и, следовательно, именно то, что мы ожидали. Если ваш набор данных содержит предложения, которые имеют дело с такими ошибками syntacti c, «самым простым» решением, вероятно, было бы ручное аннотирование некоторых примеров и использование обучающей функциональности Spacy, подробности об этом можно найти здесь . Даже в этом случае не гарантируется, что вы получите значительно лучшие результаты, если вы не аннотируете большое количество данных, и можете утверждать, что в большинстве примеров есть ошибки, похожие на похожие.

...