spaCy: Как записать именованные объекты в существующий объект Doc, используя для этого какую-то загруженную модель? - PullRequest
0 голосов
/ 13 октября 2019

Я создал объект Doc из пользовательского списка токенов в соответствии с документацией:

import spacy
from spacy.tokens import Doc

nlp = spacy.load("my_ner_model")
doc = Doc(nlp.vocab, words=["Hello", ",", "world", "!"])

Как мне теперь записывать теги именованных сущностей в doc с моей моделью NER сейчас?

Я пытался сделать doc = nlp(doc), но у меня не получилось поднять TypeError.

Я не могу просто объединить свой список слов в простой текст, чтобы сделать doc = nlp(text) как обычно, потому что в этом случае spaCy разделяет некоторые слова в моих текстах на два токена, которые я не могу принять.

1 Ответ

1 голос
/ 13 октября 2019

Вы можете получить компонент NER из загруженной модели и вызвать его непосредственно на построенном Doc:

doc = nlp.get_pipe("ner")(doc)

Вы можете просмотреть список всех доступных компонентов в конвейере с помощью nlp.pipe_namesи назовите их индивидуально таким образом. Токенизатор всегда является первым элементом конвейера, когда вы вызываете nlp(), и он не включен в этот список, в котором есть только компоненты, которые принимают и возвращают Doc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...