lepeap / DeepMorphy

Морфологический анализатор для русского языка на C# для .NET
MIT License
48 stars 8 forks source link

Не получается загрузить словарь с помощью dictionary_loader.py #3

Closed kactetus closed 4 years ago

kactetus commented 4 years ago

Скачал c opencorpora словарь http://opencorpora.org/files/export/dict/dict.opcorpora.xml.zip

https://images2.imgbox.com/ca/63/nZLoBtS0_o.png

при запуске dictionary_loader.py выдается ощибка для слова абакадзе

Exception has occurred: KeyError
'gndr'
  File "\model\dictionary_loader.py", line 98, in set_lemmas
    if word[key] != norm_f[key]:
  File "\model\dictionary_loader.py", line 164, in <module>
    set_lemmas(words, link_types, links)

Я так понимаю что в config.yml в параметре lemma_same_word задается какие лемы относятся к одному слову. Но в dict.opcorpora.xml для некоторвых слов нет параметра "gndr" как быть с этим? Или может я не так понимаю логику работы?

Заранее спасибо за ответ
lepeap commented 4 years ago

Здравствуйте. Скачал последний словарь, тоже выскочила ошибка. Странно, что раньше такого не было. По логике в строчке надо добавить проверку на наличие ключа: if key in word and word[key] == word['text']:

kactetus commented 4 years ago

Здравствуйте. Вроде получилось. Заметил что в словах, где есть ms-f (общий род) происходили ошибки. Добавил параметр в config.yml. Вроде запустилось.

Но почему так мало слов в dict_words.pkl или так и должно быть?

25.03.2020 18:16:05 INFO: Parsing dictionary xml
100%|████████████████████████████████████████████████████████| 5125118/5125118 [00:25<00:00, 199882.15it/s]
25.03.2020 18:20:54 INFO: Dict words: 1546
25.03.2020 18:20:54 INFO: Dataset words: 3057102
PS G:\Csharp\github_morphy\DeepMorphy-master\src\py\model>
lepeap commented 4 years ago

dict_words - словарные слова, которые при работе DeepMorphy не идут в сеть, а смотрятся просто по словарю (местоимения, предлоги, союзы и тп). Небольшое количество слов, которые не меняются особо. В итоге идея в том, что можно разгрузить сетку от их выучивания. Так что все правильно.

kactetus commented 4 years ago

Добавил в config.yml

lemma_same_word:
# Добавил общий род
  - post: noun
    nmbr: sing
    case: nomn
    gndr: ms-f

нужно или смысла нет ?

lepeap commented 4 years ago

По-моему, не особо...DeepMorphy общий род не определяет)

kactetus commented 4 years ago

Ок спасибо будем обучать

lepeap commented 4 years ago

Удачи)