Использование Spacy's Matcher без модели - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу использовать класс Matcher spaCy на новом языке (иврите), для которого у spaCy еще нет рабочей модели.

Я нашел работающий токенизатор + POS-тегер (из Stanford NLP), но покаЯ бы предпочел spaCy, так как его Matcher может помочь мне сделать NER на основе правил.

Можно ли использовать Matcher на основе правил с текстом, помеченным POS, вместо стандартного конвейера NLP?

Ответы [ 4 ]

1 голос
/ 19 сентября 2019

Вы можете установить слова и теги для пространственного документа из другого источника вручную, а затем использовать средство сравнения.Вот пример использования английских слов / тегов для демонстрации:

from spacy.lang.he import Hebrew
from spacy.tokens import Doc
from spacy.matcher import Matcher

words = ["my", "words"]
tags = ["PRP$", "NNS"]

nlp = Hebrew()
doc = Doc(nlp.vocab, words=words)
for i in range(len(doc)):
    doc[i].tag_ = tags[i]

# This is normally set by the tagger. The Matcher validates that
# the Doc has been tagged when you use the `"TAG"` attribute.
doc.is_tagged = True

matcher = Matcher(nlp.vocab)
pattern = [{"TAG": "PRP$"}]
matcher.add("poss", None, pattern)
print(matcher(doc))
# [(440, 0, 1)]
0 голосов
/ 22 сентября 2019

Sincy Я использую stanfordnlp - кажется, что есть разрыв ближе: -)

https://github.com/explosion/spacy-stanfordnlp

0 голосов
/ 19 сентября 2019

Насколько я знаю, у spaCy пока нет обученной модели для иврита.Чтобы вы могли использовать языки без моделей,

from spacy.lang.he import Hebrew
nlp = Hebrew()
#or
nlp = spacy.blank("he")

Уверен, что вы можете создать свой сопоставитель на основе правил здесь.

0 голосов
/ 19 сентября 2019

Если вы хотите обучить новую статистическую модель с помощью spaCy, вам следует прочитать документацию по Обучение статистическим моделям spaCy .

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