NER (Распознавание именованных объектов) Сходство между предложениями в документах - PullRequest
1 голос
/ 03 апреля 2019

Я использовал spacy, чтобы найти NER предложений. Моя проблема в том, что мне нужно вычислить сходство NER между предложениями двух разных документов.Есть ли какая-нибудь формула или пакет, доступный в python для того же самого?

TIA

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Я полагаю, вы спрашиваете, how similar are two named entities?

Это не так тривиально, так как мы должны определить, что означает "подобное".

Если мы используем наивный подход с мешком слов, две сущности становятся более похожими, когда больше их токенов совпадают.

Если мы поместим токены сущности в наборы, вычисление будет просто коэффициентом jaccard.

Sim(ent1, ent2) = |ent1 ∩ ent2| / |ent1  ∪ ent2|

Что в python будет:

ent1 = set(map(str, spacy_entity1))
ent2 = set(map(str, spacy_entity2))
similarity = len(ent1 & ent2) / len(ent1 | ent2)

Где spacy_entity - одна из сущностей, извлеченных с помощью spacy

Затем мы просто создаем наборы сущностей ent, создавая набор строк, которые их представляют.

0 голосов
/ 03 апреля 2019

Возможно, вам нужно http://uima.apache.org/d/uimacpp-2.4.0/docs/Python.html/ плюс анализатор CoNLL-U, прикрепленный к нему https://universaldependencies.org/format.html. При таком подходе NER основываются на словаре в конвейере UIMA. Вам необходимо разработать некоторые собственные алгоритмы поиска / сопоставления NER (на Python или на другом поддерживаемом языке).

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