New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Проблема с компиляцией актуальных словарей из XML в DAWG #108
Comments
|
я первый вариант делал |
попробовал второй вариант, но там, как я понял, из кода убрана возможность компиляции словаря через cli, для этого отдельный скрипт https://github.com/kmike/pymorphy2-dicts .
|
That's Python for you. Похоже на баг в lxml 4.2.x:
С lxml 4.1.1 вроде работает:
|
Да, спасибо, все заработало, откомпилированные словари понимает и pymorphy2 и jmorphy. Единственное, если я верно понял, pymorphy2-dicts в виде пакета не компилирует и его надо брать только из исходников да? |
На Travis CI тоже что-то сегфолтится на тесте, который связан со словарями. Детально не смотрел. |
Как откомпилировать актуальные версии словарей?
Делаю так:
1 компилирую питон 3.5.1 (требование совместимости) в домашний каталог
2 через его pip3 ставлю pymorhy2
3 Скачиваю исходный словарь в виде xml
4 Компилирую командой
pymorphy dict compile
5 получаю словари в каталоге dict
6 подсовываю их в /site-packages//pymorphy2_dicts
7 ругается на meta.json
8 все ломается на этапе ввода
>>> morph = pymorphy2.MorphAnalyzer(path="/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2_dicts/data.compiled")
с выводом
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/analyzer.py", line 174, in __init__ self.dictionary = opencorpora_dict.Dictionary(path) File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/opencorpora_dict/wrapper.py", line 18, in __init__ self._data = load_dict(path) File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/opencorpora_dict/storage.py", line 45, in load_dict meta = _load_meta(_f('meta.json')) File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/opencorpora_dict/storage.py", line 148, in _load_meta meta = json_read(filename, parse_float=str) File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/utils.py", line 96, in json_read with codecs.open(filename, 'r', 'utf8') as f: File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/codecs.py", line 895, in open file = builtins.open(filename, mode, buffering) FileNotFoundError: [Errno 2] No such file or directory: '/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2_dicts/data.compiled/meta.json'
9 Понятно что проблема с meta.json сравнивая его с тем что скачан по зависимостям , я вношу в него нужные коррективы и на него ругани больше нет, но оно все равно все падает с таким выводом. Тут, я так понял, что-то не пошло с двоичными словарями.
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/analyzer.py", line 177, in __init__ self.prob_estimator = probability_estimator_cls(path) File "/home/victor/DevelopTools/python-3.5.1/lib/python3.5/site-packages/pymorphy2/analyzer.py", line 65, in __init__ self.p_t_given_w = ConditionalProbDistDAWG().load(cpd_path) File "dawg.pyx", line 394, in dawg.CompletionDAWG.load (src/dawg.cpp:8095) OSError: It's not possible to read file stream
При работе со словарем скаченным по зависимостям все хорошо.
Запускаю в jmorphy - та же история (библиотека dawg общая?).
Может кто-то сказать в чем дело?
The text was updated successfully, but these errors were encountered: