pymorphy2/pymorphy2-dicts

Grammemes are unknown: {'acc'}

Closed this issue · 10 comments

Сегодня попытался собрать себе новый словарь и поймал такое вот исключение.

Полный трейс:

INFO   2013-07-09 15:40:45  Creating ./dict.xml from http://opencorpora.org/files/export/dict/dict.opcorpora.xml.bz2
................................................................INFO   2013-07-09 15:41:00  
Done.
DEBUG  2013-07-09 15:41:00  Creating output folder ./pymorphy2_dicts/data
INFO   2013-07-09 15:41:00  dictionary v0.92, rev389962
INFO   2013-07-09 15:41:00  parsing xml:lemmas...
DEBUG  2013-07-09 15:41:18  50000 lexemes parsed
DEBUG  2013-07-09 15:41:39  100000 lexemes parsed
DEBUG  2013-07-09 15:42:03  150000 lexemes parsed
DEBUG  2013-07-09 15:42:31  200000 lexemes parsed
DEBUG  2013-07-09 15:42:58  250000 lexemes parsed
DEBUG  2013-07-09 15:43:25  300000 lexemes parsed
DEBUG  2013-07-09 15:43:52  350000 lexemes parsed
INFO   2013-07-09 15:44:12  parsing xml:links...
INFO   2013-07-09 15:44:14  simplifying tags: looking for tag spellings
INFO   2013-07-09 15:44:34  simplifying tags: looking for spelling duplicates (skip_space_ambiguity: True)
DEBUG  2013-07-09 15:44:34  238 duplicate tags will be removed
INFO   2013-07-09 15:44:34  simplifying tags: fixing
INFO   2013-07-09 15:44:41  inlining lexeme derivational rules...
INFO   2013-07-09 15:44:42  building paradigms...
DEBUG  2013-07-09 15:44:42                  word    len(gramtab)      len(words)  len(paradigms)
DEBUG  2013-07-09 15:44:42                    ёж              12              12               1
DEBUG  2013-07-09 15:44:45              ателлана            1182          238476             287
DEBUG  2013-07-09 15:44:46             валефтина            1718          457637             592
DEBUG  2013-07-09 15:44:48        вышелушиваться            2236          802078            1088
DEBUG  2013-07-09 15:44:49                 джима            2627         1032071            1247
DEBUG  2013-07-09 15:44:51             заседание            2997         1364629            1489
DEBUG  2013-07-09 15:44:53             кессонный            3102         1668294            1641
DEBUG  2013-07-09 15:44:54              литейщик            3245         1894527            1803
DEBUG  2013-07-09 15:44:55            навалиться            3394         2124960            1924
DEBUG  2013-07-09 15:44:57        несправедливый            3426         2449348            2022
DEBUG  2013-07-09 15:44:59            откалывать            3621         2794371            2172
DEBUG  2013-07-09 15:45:01              повитуха            3664         3167791            2298
DEBUG  2013-07-09 15:45:04        примирительный            3844         3552549            2458
DEBUG  2013-07-09 15:45:06            растлиться            3921         3950076            2540
DEBUG  2013-07-09 15:45:07       скалькулировать            4048         4206158            2635
DEBUG  2013-07-09 15:45:09                 тарас            4103         4490854            2730
DEBUG  2013-07-09 15:45:11             фахратдин            4178         4780129            2812
DEBUG  2013-07-09 15:45:12             щитоносец            4321         5008869            2930
DEBUG  2013-07-09 15:45:13                total:            4345         5094265            2975
DEBUG  2013-07-09 15:45:13  linearizing paradigms..
DEBUG  2013-07-09 15:45:13  calculating prediction data..
DEBUG  2013-07-09 15:45:13  calculating prediction data: removing non-productive paradigms..
DEBUG  2013-07-09 15:45:13  calculating prediction data: checking word endings..
DEBUG  2013-07-09 15:45:50  calculating prediction data: preparing DAWGs data #0..
DEBUG  2013-07-09 15:45:52  calculating prediction data: preparing DAWGs data #1..
DEBUG  2013-07-09 15:45:52  calculating prediction data: preparing DAWGs data #2..
DEBUG  2013-07-09 15:45:52  building word DAWG..
DEBUG  2013-07-09 15:46:01  building prediction_suffixes DAWGs #0..
DEBUG  2013-07-09 15:46:02  building prediction_suffixes DAWGs #1..
DEBUG  2013-07-09 15:46:02  building prediction_suffixes DAWGs #2..
INFO   2013-07-09 15:46:02  Saving...
DEBUG  2013-07-09 15:46:02  computing metadata..
DEBUG  2013-07-09 15:46:02    words_dawg_len
DEBUG  2013-07-09 15:46:04    prediction_suffixes_dawgs_len
--------------------
Done in 0:05:20.237106

Traceback (most recent call last):
  File "./update.py", line 63, in <module>
    write_version()
  File "./update.py", line 37, in write_version
    dct = opencorpora_dict.load(OUT_PATH)
  File "/usr/lib64/python2.7/site-packages/pymorphy2/opencorpora_dict/storage.py", line 50, in load_dict
    gramtab = [Tag(tag_str) for tag_str in str_gramtab]
  File "/usr/lib64/python2.7/site-packages/pymorphy2/tagset.py", line 272, in __init__
    self._assert_grammemes_are_known(set(grammemes_tuple))
  File "/usr/lib64/python2.7/site-packages/pymorphy2/tagset.py", line 364, in _assert_grammemes_are_known
    raise ValueError("Grammemes are unknown: {%s}" % unknown_repr)
ValueError: Grammemes are unknown: {'acc'}

Эх. Не спешат что-то исправлять :(

Угу. Лето что-ли :)

В самом pymorphy2 это можно поправить, сделав код подготовки словаря более надежным (выкидывать все слова с неизвестными граммемами), но нужно это делать внимательно, чтоб лишние связи, например, тоже удалять.

Лучше всё-таки устранять причину, а не следствие. Тогда не придётся мучиться с костылями :)

Да, было лето, я сегодня ночью приехал из отпуска :-)

Я там написал в комментариях, что тикеты про словарь можно ставить не на меня.

Соответственно, в завтрашней выгрузке словаря поправится.

Ну вот и ладненько :)

Дима, спасибо!

Тикеты на гуглокоде я не умею ни на кого ставить, и статус менять не умею, и текст исправлять, и т.д. Там вроде простым смертным только комментировать можно, и новые заводить.

А, тогда сорри. Попробую устранить эту несправедливость.

Мда, по ходу, там нельзя всем это разрешить. В общем, Миша, я лично тебе выдал права менять Owner-а и похожие вещи. Не могу проверить, работает ли.

У меня заработало. Ну хоть так :)