パスワードを忘れた? アカウント作成
15449480 journal
教育

yasuokaの日記: CaboChaのpythonバインドにおける「バグ」と「構文解説」 1

日記 by yasuoka

ネットサーフィンしていたところ、Tech Teacher Blogで「Pythonで自然言語処理を行うには?具体的な手順を解説!」(2021年10月2日)という記事を見つけた。pythonで自然言語処理をおこないたいらしいのだが、どういうわけかTransformersGiNZAも出てこない。CaboChaに至っては、こんな感じ。

Cabochaは構文解説を行うためのライブラリです。構文解析は形態素解説の次の段階で、単語同士の結び付きを解説し、構文木を作成することを指します。日本語の構文解析が行えるライブラリは、他に中々ありません。日本語の自然言語処理を行いたいなら、MecabとCabochaはほぼ確実に使うことになるでしょう。

「構文解説」とか「形態素解説」とか「単語同士の結び付きを解説」とか、正直ワケがわからない。『日本語の構文解析における3つの「係り受け」』にも書いた通り、CaboChaは二文節間の「係り受け」解析器であり、「単語同士の結び付きを解説」したりはしない。また、CaboCha 0.69のpythonバインドには、かなり致命的なバグがある。ちょっと使ってみよう。

% python3
>>> import CaboCha
>>> c=CaboCha.Parser()
>>> s1=c.parse("吾輩は猫である")
>>> s2=c.parse("名前はまだ無い")
>>> print(s1.toString(CaboCha.FORMAT_TREE))
名前は---D
    まだ-D
      無い
EOS

>>> print(s2.toString(CaboCha.FORMAT_TREE))
名前は---D
    まだ-D
      無い
EOS

>>> print(s1.sentence())
名前はまだ無い
>>> print(s2.sentence())
名前はまだ無い
>>> print(s1 is s2)
False
>>> print(s1==s2)
False

こういうバグを知った上で、それでもCaboChaのpythonバインドを勧めているのなら、それはそれでイバラの道だとは思うのだけど、どうしてTech Teacherは、TransformersやGiNZAを使わないんだろ。

この議論は、yasuoka (21275)によって「 ログインユーザだけ」として作成されている。 ログインしてから来てね。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...