INFORMATION
テクノロジ

言語処理学会第24回年次大会(NLP2018) のワークショップに参加しました

著者:西潟 一生

2018年3月16日 に行われた 言語処理学会第24回年次大会 のワークショップに参加してきました。

言語処理学会の年次大会は NLP 関係者が年に一度集い,各研究成果を発表する場です。現在ロンウイットは学会での活動は行なってはいませんが,本学会における研究成果には常に注目しています。 今回は岡山県での開催でしたので,最終日のワークショップのみ参加(聴講)してきました。ワークショップの詳細についてはリンクを参照して下さい。

参加したワークのショップのテーマは「形態素解析の今とこれから」です。丸1日を使って形態素解析についてディスカッションを行うという非常に稀な場でしたが,形態素解析についての現状を知ることができ,大変有意義だったかと思います。 午前中は以下の形態素解析器及びそれらに使用される辞書の開発者がそれぞれ現状を報告して下さいました。午後の招待講演も合わせ,内容をそれぞれ簡単ですが,紹介します。

目次

Juman++

京都大学の黒橋・河原研究室が開発してきた歴史ある形態素解析器です。昔は「JUMAN」だったのですが,新バージョンからは「J」だけが大文字となり,「Juman」となりました。 独自辞書を内包していることが特徴で,基本的な語彙は人手で整備し,それに含まれない語は Wikipedia などを使い,自動で取得しているらしいです。辞書に内包されている語彙数は90万ほどとのこと。 開発はなんとロシア人の方がされています。

JUMAN と Juman++ の違いは解析時に RNN を使っていることらしく,他の形態素解析器との精度比較では一番高い結果を出していました。ただ,解析速度自体は遅く,高速な処理には向かないようです。 と言っても Juman++ と Juman++V2 では 250倍 ほど高速化したそうですが。

ユーザー辞書がないことについては,ニーズがなかったため実装していないとのことで,技術的には可能らしいです。

MeCab

Google の工藤さんが開発されている,国内で一番有名な形態素解析器ではないかと思います。MeCab は汎用テキスト処理システムであり,日本語には限っていないところが特徴ですが 実際はほぼ日本語に対してのみ利用されている形態素解析器かと思います。解析に関わるモデルや辞書などは外部定義されているため,これを他言語で構築すれば日本語以外についても同様に処理できるというわけです。

MeCab はエンジニア志向で開発されたシステムであり,人間にも機械にも扱いやすく,拡張も簡単なことをコンセプトに設計されています。可能な限りシンプルで高速なシステムであることが大きな特徴でしょうか。 実際,他の形態素解析器と比べても,MeCab の解析速度は目を見張るものがあります。

MeCab の前身は ChaSen と呼ばれる形態素解析器でした。開発者の工藤さんは ChaSen の開発にも一部関わっており, 2006年 に発表された ChaSenTNG が後の MeCab になる基盤だと言われています。 ChaSen では文字コード変換,サーバ機能など,機能過多になりパフォーマンスが犠牲になってしまったことを反省し,前処理・後処理でやれることは提供しないというコンセプトで設計開発されています。 このあたりも特に後述する Sudachi との大きな違いの1つでしょうか。(YAGNI)

上記のことから,精度至上主義ではないことも主張されていました。 あくまでもミドルウェアに徹し,精度はエンドタスクで調整すべきとのことです。

今後のタスクはいくつかありましたが,MeCab のメジャーアップデートをする際は仕様を大幅に変更し MeCab2.0 になるそうです。1は永久欠番とのこと。 現バージョンはデファクトになっているため,互換性を考えることは難しいそうです。

KyTea

こちらも Juman++ と同じく京都大学で開発された形態素解析器です。機械学習によって解析精度を高めていることが特徴で,様々な分野において高い精度を出すことができます。 学習用のコーパスは 10万文以上,延べ30年以上の言語資源から成っているとのことです。

形態素解析器を実装し,精度を向上する上でのお話がメインだったかのように思えます。KyTea に限った話ではないですが,解析対象のコーパスによっては精度がかなり落ちることがよくあります。 例えば Twitter のような口語体で書かれているような文章は特にそうです。KyTea でもレシピコーパスで 95%,将棋解説で 91% らしいです。均衡コーパスと呼ばれる,どの分野の文章も満遍なく学習しているのにも関わらずです。 このような場合,形態素解析手法の改善を行うよりも言語資源を追加する方が精度改善に貢献できるとのことでした。

Sudachi

Sudachi は Solr と一番近いところにいる形態素解析器ではないでしょうか。OSS であり,Elasticsearch のプラグインとしても動作します。 製品に組み込めるクオリティ,ライセンスで開発されていることが特徴です。

MeCab とは対象的に文字列正規化など前処理・後処理自体を Sudachi の処理に含めてしまっていることが特徴です。Sudachi としてはこのあたりの処理が開発者の力量に依存してしまっているので 形態素解析器側で吸収したかったとのことです。

辞書も独自辞書で,UniDic と NEologd をベースに調整しているとのことです。

検索エンジン用の形態素解析器として,一番特徴的なのは,単語の分割単位ではないでしょうか。Sudachi は分割単位を以下の3つに定めています。

  • A単位:UniDic 短単位相当
  • B単位:A と C の中間くらいの単位
  • C単位:固有表現
例えば「医薬品安全管理責任者」という文字列はそれぞれ以下のようになります。
  • A単位:医薬 品 安全 管理 責任 者
  • B単位:医薬品 安全 管理 責任者
  • C単位:医薬品安全管理責任者

今後は数値正規化プラグインやカタカナ語結合プラグインなどを開発していく予定とのことでした。

UniDic

有名な辞書ではないでしょうか?辞書構築の際は,辞書に直接追加するのではなく,コーパスから取得できたものを辞書に登録するというコーパスドリブンな方法で構築しているとのことです。

よくこの辞書を使うと,分割する語が短すぎるという指摘をよく受けるらしいですが,この辞書のコンセプトとしてはそれで良いらしいです。 もし,長めの語で切りたい場合は短単位ではなく,長単位を使ってほしいとのことでした。 近々 UniDic2.3 が出るらしいです。

NEologd

こちらも最近特に有名になってきた辞書だと思います。IPADic で満足できない場合に使用する MeCab 用システム辞書です。多数の Web 上の言語資源から語彙を増やしているそうで 1週間に数回のアップデートが行われています。新語に非常に強いイメージの辞書です。

今後は基礎的な語彙の整頓と,日本語以外の語彙も増やしていきたいそうです。

形態素解析辞書で曖昧製解消に挑む

午後の招待講演は Sudachi の開発者の一人である,株式会社ワークスアプリケーションズ ワークス徳島人工知能NLP研究所 の坂本さんが講演してくださいました。 形態素解析器の辞書構築ノウハウについて,開発現場の苦労を知れる貴重な時間だったと思います。

簡単ですが,気になった部分だけ紹介させて頂きます。 形態素解析器辞書はまず基本的な語句の選出を以下から行うそうです。

  • 小学生用国語辞典:3〜4万語
  • 一般の卓上国語辞典:8〜10万語
  • タグ付きコーパスから上位N万語

この取得した語句はまず,「補完」されるそうです。 例えば「義母」が抽出された場合は「義父」など,対語がないか検討され,活用形での違いなども考慮されるそうです。 「下図」などの語句は頻出するのにも関わらず,辞書には載ってこない語句なので,一般的な辞書だけを使うと不十分だというお話もありました。

その他表記のバリエーションも考慮しなければなりません。例えば,「玉ねぎ,玉葱,タマネギ」や「受付,受け付け,受付け」などがそれにあたります。 固有名詞も多岐にわたります。

このような辞書を構築する上で培ってきた言語処理技術などは,辞書適用先に特化したものとして構築したり,訂正処理に応用することもできます。 例えば,送り仮名の統一に使えます。 「受付開始」は「受け付け開始」であり,「受け付け期間」は「受付期間」であるなど,語句が異なった際に,送り仮名も異なる問題にも対応できるそうです。

誤字脱字にも応用できます。 「看板立てる」を「看板を立てる」に訂正。しかし「系統立てる」はそのまま,など。

配当漢字にも対応できます。「簡単」の「簡」は小学校6年生で習う感じなので,「かん単」とする,など。

その他,「お絵描き」とすれば「塗り絵」であるが,「絵描き」は画家。「お届け」は「配達」だが,「届け」は「書類」など,言語処理の難しさの例をいくつか挙げられていました。 複数の読みの可能性がある場合は,その可能性を全て出力のが良いとのことです。「背筋」→「はいきん,せすじ」 「行った」→「いった,おこなった」など

総括

1日をかけて形態素解析器や辞書についての現状を知ることができたのは非常に有意義であったと思います。機械翻訳に限っては形態素解析がもはや必要ないのではと言われてもいますが 各発表を聞いていると,改めて日本語の奥深さを学ぶことができ,少なくとも形態素解析によって日本語の言語的な魅力は感じられるなと思いました。

形態素解析を日本語教育に活用している例もあり,日本語教科書の「てある」の用例が「ビールが冷やしてある」がよく用いられているそうですが,形態素解析器などを使ってコーパスを解析してみると 実際にこの用例が使われているケースはほとんどないことが分かったそうです。このようなケースなど,形態素解析はまだまだ活用できる分野が多いのではないかと感じた次第です。


KandaSearch

KandaSearch はクラウド型企業向け検索エンジンサービスです。
オープンAPIでカスタマイズが自由にできます。

  • セマンティックサーチ

    人間が理解するように検索エンジンがテキストや画像を理解して検索できます。

  • クローラー

    検索対象文書を収集するWebクローラーが使えます。

  • 簡単操作のUIと豊富なライブラリー

    検索や辞書UIに加え、定義済み専門用語辞書/類義語辞書やプラグインがあります。

  • ローコードで低コスト導入

    検索UIで使い勝手を調整した後、Webアプリケーションを自動生成できます。

セミナー

企業が検索エンジンを選定する際のポイントから、
実際の導入デモをお客様ご自身でご体験!