SpaCy: лица, пропавшие без вести

У меня есть некоторые проблемы с пропавшими без вести лицами. Ниже приведен пример, когда кажется, что SpaCy ослепнет, когда имени предшествуют определенные названия. Когда вы удаляете Labour MP (закомментированная строка) распознает имя, в противном случае возвращает пустой список.

import spacy
from spacy.en import English
nlp_toolkit = English()
nlp = spacy.load('en')

text = u"In a recent tweet, Labour MP Luciana Berger sought clarification..."
#text = u"In a recent tweet, Luciana Berger sought clarification..."

all_tags = nlp(text)

person_list=[]
for ent in all_tags.ents:
    if ent.label_=="PERSON":
        person_list.append(str(ent))      
print person_list

Сейчас я использую 1.8.2 версию SpaCy. Но перед обновлением мне бы очень хотелось узнать, была ли эта проблема исправлена ​​в версии 2, так как кажется, что обновление не так просто. Может кто-нибудь проверить это или предложить обходной путь? Спасибо!

ОБНОВИТЬ:

Это становится еще интереснее. Если вы измените имя на другое, более распространенное, оно будет работать.

text = u"In a recent tweet, Labour MP James Mill sought clarification..."
out: ['James Mill']

Так что это связано с именем, а не MP до этого... Во всяком случае - если кто-нибудь может проверить, работает ли он правильно с v2, я буду признателен!

1 ответ

Решение

Я попробовал ваш код с Spacy Version 2.0.7, и он дает "Luciana Berger" как сущность для предложения

Я получаю этот список ['Luciana Berger'] для предложения "In a recent tweet, Labour MP Luciana Berger sought clarification..."

Также для другого предложения, это дает "Джеймс Милл"

Возможно, если вы хотите попробовать более новую версию, попробуйте установить ее в виртуальной среде, чтобы вы могли поэкспериментировать с обеими версиями. Вы можете воспользоваться помощью этого, как использовать виртуальную среду. На самом деле я рекомендую использовать Virtual env, поскольку переключение между версиями является довольно длительным процессом. Так что лучше попробуй, прежде чем переключаться.

Также просто для справки, NER работают в Spacy над "Обучение моделей", вот ссылка. Так что может случиться так, что не все имена будут включены в NER.

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