Получение неправильной маркировки POS

Я пытаюсь получить 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         

Здесь слово «мухи» рассматривается как СУЩЕСТВЕННОЕ, в то время как это ГЛАГОЛ, потому что spacy рассматривает «драконьи мухи» как одно слово?

что мне делать, если я хочу получить "ГЛАГОЛ" в качестве точки продажи для мух.


person Vinay Sharma    schedule 17.01.2020    source источник


Ответы (1)


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

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

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

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

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

person dennlinger    schedule 17.01.2020