Как лемматизировать норвежский с помощью spaCy? - PullRequest
2 голосов
/ 13 марта 2019

Я делаю следующее:

from spacy.lang.nb import Norwegian
nlp = Norwegian()
doc = nlp(u'Jeg heter Marianne Borgen og jeg er ordføreren i Oslo.')
for token in doc:
    print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,token.shape_, token.is_alpha, token.is_stop)

Кажется, что лемматизация вообще не работает, так как это вывод:

(u'Jeg', u'Jeg', u'', u'', u'', u'Xxx', True, False)
(u'heter', u'heter', u'', u'', u'', u'xxxx', True, False)
(u'Marianne', u'Marianne', u'', u'', u'', u'Xxxxx', True, False)
(u'Borgen', u'Borgen', u'', u'', u'', u'Xxxxx', True, False)
(u'og', u'og', u'', u'', u'', u'xx', True, True)
(u'jeg', u'jeg', u'', u'', u'', u'xxx', True, True)
(u'er', u'er', u'', u'', u'', u'xx', True, True)
(u'ordf\xf8reren', u'ordf\xf8reren', u'', u'', u'', u'xxxx', True, False)
(u'i', u'i', u'', u'', u'', u'x', True, True)
(u'Oslo', u'Oslo', u'', u'', u'', u'Xxxx', True, False)
(u'.', u'.', u'', u'', u'', u'.', False, False)

Однако, глядя на https://github.com/explosion/spaCy/blob/master/spacy/lang/nb/lemmatizer/_verbs_wordforms.py, глагол heter должен быть, по крайней мере, преобразован в hete .

Так что похоже, что у spaCy есть поддержка, но она не работает?В чем может быть проблема?

1 Ответ

1 голос
/ 16 марта 2019

Лемматизация действительно работает для норвежского языка, как указано в документах : все формы в lookup.py являются лемматизированными. Попробуйте, например, doc = nlp(u'ei'), и вы увидите, что лемма ei равна en.

Теперь файл, на который вы ссылаетесь, verbs_wordforms.py, документирует исключения, если тег части речи (POS) является глаголом. Однако пустая модель Norwegian() не имеет тега POS, поэтому конкретное исключение для heter никогда не вызывается.

Таким образом, решение состоит в том, чтобы либо использовать модель с POS-тегом, либо добавить ваши конкретные исключения в lookup.py. Например, вы увидите, что если вы добавите туда строку 'heter': 'hete',, то ваша пустая модель найдет hete в качестве леммы для heter.

Наконец, обратите внимание, что было много работы и дискуссий по публикации предварительно обученной норвежской модели в spaCy - но похоже, что это все еще в стадии разработки.

...