Spacy Matcher странности - PullRequest
       33

Spacy Matcher странности

0 голосов
/ 15 марта 2020

Я использую следующий шаблон на веб-сайте взрыва в демонстрациях "Проводник на основе правил"

pattern = [{'LEMMA': 'museum'}]

Текст

музеи в Мадриде

И это работа, хорошо. Затем я делаю следующее в коде:

import spacy
from spacy.matcher import Matcher


nlp = spacy.load("en_core_web_sm")

matcher = Matcher(nlp.vocab)

matcher.add("tourism", None, [{'LEMMA': 'museum'}])

doc = nlp("museums in madrid")
matches = matcher(doc)

print(matches)
for match_id, start, end in matches:
    string_id = nlp.vocab.strings[match_id]
    span = doc[start:end]
    print(match_id, string_id, start, end, span.text)

И результата нет! Забавно, что если текст без слова «мадрид», то он находит совпадение. Теперь кто-нибудь может мне объяснить, какого черта? И почему на сайте все нормально

1 Ответ

0 голосов
/ 16 марта 2020

Леммы зависят от POS-тегов, которые могут изменяться для одних и тех же слов в разных контекстах (особенно для очень коротких текстов). Проверьте POS-теги и леммы для ваших образцов текста, чтобы увидеть, почему шаблоны соответствуют или не совпадают.

Для лемматизатора разница между NOUN и PROPN является разницей. Неизвестно, могут ли «музеи» быть именами собственными, как в «Издатель путеводителя объявил о новом руководстве« Музеи Мадрида »...»

...