This repository was archived by the owner on Mar 9, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 53
This repository was archived by the owner on Mar 9, 2023. It is now read-only.
数詞を含む分割情報を定義した単語があるとユーザー辞書をビルドできない #155
Copy link
Copy link
Closed
Description
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
この問題の対処法を教えていただけますと幸いです。よろしくお願いします。
sorami and t-yamamura
Metadata
Metadata
Assignees
Labels
No labels