#python #nlp #spacy #named-entity-recognition
Вопрос:
я обучил модель spacy NER, в которой текст сопоставляется с сущностью компании во время обучения, как —
John amp; Doe amp; One pvt ltd -gt; Company
Теперь в некоторых случаях я нахожу, что если предложение, как показано ниже, во время предсказания классифицируется как другие-
John and Doe and One pvt ltd -gt; Other
Что следует сделать, чтобы преодолеть эту проблему, когда у нас есть случаи «amp; == и» и «v == vs == против» и т. Д. Случаи, которые должны быть поняты моделью, имеют одинаковое значение ?
Ответ №1:
Для таких случаев вы хотите добавить нормы лексем или нормы лексем.
# lexeme norm nlp.vocab["and"].norm_ = "amp;" # token norm doc[1].norm_ = "amp;"
Все статистические модели используют token.norm
вместо token.orth
функции по умолчанию. Вы можете установить token.norm_
для отдельного токена в документе (иногда вам может потребоваться нормализация, зависящая от контекста) или установить nlp.vocab["word"].norm_
по умолчанию для любого токена, у которого нет отдельного token.norm
набора.
Если вы добавляете нормы лексем в вокаб и сохраняете модель с nlp.to_disk
помощью , нормы лексем включаются в сохраненную модель.