Skip to content
This repository was archived by the owner on Mar 9, 2023. It is now read-only.
This repository was archived by the owner on Mar 9, 2023. It is now read-only.

数詞を含む分割情報を定義した単語があるとユーザー辞書をビルドできない #155

@po3rin

Description

@po3rin

sudachiのユーザー辞書に分割情報を入れようとしているのですが、数詞を含む分割情報をもつ単語でエラーが出ます。理由や対処法がわかれば教えていただきたいです。

詳細

例えば下記のようなユーザー辞書を作成したい場合

グレード1,5146,5146,5000,グレード1,名詞,普通名詞,一般,*,*,*,,グレード1,*,C,"グレード,名詞,普通名詞,一般,*,*,*,グレード/1,名詞,数詞,*,*,*,*,イチ","グレード,名詞,普通名詞,一般,*,*,*,グレード/1,名詞,数詞,*,*,*,*,イチ",*

下記のようなエラーが出ます。(エラーがわかりづらかったので最近出したPR( #154 )が入ったもので出力しています。)

sudachipy ubuild src/test_dict.txt -o sudachi/test.dic -s sudachi/system_core.dic
reading the source file...81 words
writing the POS table...2 bytes
writing the connection matrix...4 bytes

// 省略...

writing the word_infos...Traceback (most recent call last):
  File "/---/.pyenv/versions/3.9.0/bin/sudachipy", line 33, in <module>
    sys.exit(load_entry_point('SudachiPy==0.5.3.dev6+g7e5b501', 'console_scripts', 'sudachipy')())
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/command_line.py", line 220, in main
    args.handler(args, args.print_usage)
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/command_line.py", line 114, in _command_user_build
    builder.build(args.in_files, None, wf)
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/userdictionarybuilder.py", line 40, in build
    self.write_lexicon(out_stream)
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/dictionarybuilder.py", line 268, in write_lexicon
    self.write_wordinfo(io_out)
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/dictionarybuilder.py", line 292, in write_wordinfo
    self.write_intarray(self.parse_splitinfo(entry.aunit_split_string))
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/dictionarybuilder.py", line 328, in parse_splitinfo
    ids.append(self.parse_id(word))
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/dictionarybuilder.py", line 345, in parse_id
    id_ = int(text)
  File "/---/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sudachipy/dictionarylib/dictionarybuilder.py", line 345, in parse_id
    id_ = int(text)
ValueError: invalid literal for int() with base 10: '1,名詞,数詞,*,*,*,*,イチ'

ここでエラーになる際には今までシステム辞書に含まれない単語だった場合に発生していたのですが、今回「1」はシステム辞書にはあるのでビルドに失敗している理由がわかりません。

echo "ステージ1" | poetry run sudachipy -m C -a                                                                                                  

ステージ        名詞,普通名詞,一般,*,*,*        ステージ        ステージ        ステージ        0       [385]
1       名詞,数詞,*,*,*,*       1       1       イチ    0       [17619]
EOS

この問題の対処法を教えていただけますと幸いです。よろしくお願いします。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions