SSブログ

形態素解析器awabi [awabi]

これは「自然言語処理 (NLP: Natural Language Processing) 2020 アドベントカレンダー」2日目の記事です
https://qiita.com/advent-calendar/2020/nlp

今年は、 awabi という MeCab 辞書を使って形態素解析を行う形態素解析器を書きました。
(MeCab や janome のように辞書を引いて形態素解析する形態素解析器は、辞書を構築する機能も持っていますが、辞書を構築する機能を MeCab に頼っているので、「形態素解析器を書きました」と断言するのは恥ずかしいのですが形態素解析はしているので・・・)

ことの始まりは、昨年、janome で MeCab の辞書を使うパッケージを書いたことです。
https://nakagami.blog.ss-blog.jp/2019-10-20
この時、
「ん?Common Prefix Search の部分は、MeCabの辞書を検索する処理を書けそうだし、あとは Lattice構造を作って最短経路を求めればいいのか。 形態素解析器がかけそうだぞ」
と感じました。

Rust を勉強し始めて、何か習作となるネタはないかなぁと考えた時に、形態素解析器のことを思い出して書いたのが Rust 版の(オリジナルの)awabi です。
https://nakagami.blog.ss-blog.jp/2020-03-15
その後、awabi を Python や、Elixir から使うラッパーを書いたり、Go や Python で再実装したりしました。
この日記の awabi カテゴリを見ると、https://nakagami.blog.ss-blog.jp/archive/c2306218653-1 断片的なメモがあります。
また Gist に、インストール方法、簡単なベンチマークなどを整理した文書を置きましたので、興味あったら、こちらを読んでください。
https://gist.github.com/nakagami/f718e4a5b08cc39d9902ed129fa69bc6

色々書いてみてよくわかったのは、「MeCab 速い」ということと、「辞書とロジックを分離した MeCab に先見の明あり」ということでした。
コメント(0) 
共通テーマ:日記・雑感