1 自動単語分割

自動単語分割の例
入力: 東京都に行った
出力: 東京 都 に 行っ た

文を単語に分解すること、つまり単語の認定は、日本語の自然言語処理の第一歩です。 品詞や読みの推定を同時に行わないことが形態素解析や読み推定との違いです。 後段の処理で必要となる品詞の粒度は様々で、必要なら単語分割の後に付ければよいでしょう。

単語分割の目的はいろいろあり、それ故に目的を忘れている言語解析の研究が多いのも事実です。 ここでは、主たる目的を言語モデルを作るための単語分割済みコーパスの作成とします。

1.1 提案手法

各文字の間に単語境界があるか否かを2値分類器(SVM, ME)で決定するという方法で解きます。 これを点予測による自動単語分割と呼んでいます (解説と演習, 詳細)。

その他の手法としては、以下が挙げられるでしょう。

品詞n-gramモデルをHMM(隠れマルコフモデル)と呼んで、比較している研究者もいます。 しかしながら、品詞n-gramモデルは、必ずしもHMMではありません。 加えて、品詞n-gramモデルは、エントロピーが高く、単語分割精度も高くありません。 生成的モデルによる方法との比較としては、単語n-gramモデルと比較すべきです。

1.2 部分的単語分割コーパスからの学習

普通、自動単語分割器は単語分割コーパス済みコーパスから学習されます。 単語分割済みコーパスというのは、次のように文が単語列になっているコーパスです。

アクチン  フィラメント  は  細胞  内  小  器官  の  1  つ  だ
これは、各文字の間に単語境界があるかないかの情報が加えられた文と考えられます。
| ア - ク - チ - ン | フ - ィ - ラ - メ - ン - ト | は | 細 - 胞 | 内 | 小 | 器 - 官 | の | 1 | つ | だ |
ここで、「|」は単語境界、「-」は非単語境界をそれぞれ意味します。 そうすると、境界かそうでないか分らないというのもありえることに自然に気が付きます。 それを「 」で表すとします。 すると、「細胞内小器官」の内部の境界が分からなければ次のようになります。
| ア - ク - チ - ン | フ - ィ - ラ - メ - ン - ト | は | 細   胞   内   小   器   官 | の | 1 | つ | だ |
部分的単語分割コーパスというのは、このように、単語境界か否かの情報が部分的にのみ付与された文の集まりです。 なお、文中の全ての文字境界に単語境界か否かの情報が付与されているコーパスをフルアノテーションと呼びます。

グループでは、部分的単語分割コーパスからの自動単語分割器の学習についても研究してます。 国際会議での発表も行なっていますが、まだまだ研究の余地があります。

1.3 実際の分野適応作業

実際に利用できるシステムを作成する場合には、言語処理の分野適応が必須です。 実際に単語分割の分野適応を行ないましたので、その作業内容と結果を報告します。

1.3.1 特許文書に対する適応

特許文書に対する機械翻訳やテキストマイニングの要求は高い。 これらの応用の精度を向上させるため、自動単語分割器の特許文書への適応を行いました。 設定は以下の通りです。

テストデータの作成

適応による効果を評価するために、単語分割精度を測る必要があります。 そのために、500文に対して単語境界情報をフルアノテーションしました。 アノテーターの作業時間は4時間でした。 なお、これは効果を確認するためであり、実際の適応作業では不要です。

学習データの作成

学習データの作成作業は以下のように行いました。

  1. 分布分析による生テキストからの 未知語候補の獲得
  2. 未知語候補の出現箇所の単語境界情報の人手による修正

未知語候補の獲得では、1995年の文献で提案した方法を改良し、最大エントロピー法を用いて各品詞に対する帰属確率を求めました。 作業結果として、以下のような部分的単語分割コーパスが得られます。

結果

アノテーターの作業時間と精度の関係を測りました。 右の図がその結果です。 横軸は学習データの作成に要した作業時間で、縦軸はテストデータの単語分割精度です。

まず、適応作業前の配布版モデルによるF値は、97.57でした。 比較的高いながらも、学習コーパスと同じ分野なら98以上であることを考えると不十分です。 これが作業を行なうに従って徐々に向上していくのが分かります。 グラフの範囲では作業時間に対して線形に精度が向上していっています。 このことから、あと12時間程度の作業は、依然として効果があると予想します。 とはいえ、いずれ頭打ちになるはずで、それがどのあたりかは興味があるところです。 また、翻訳など実際の言語処理のアプリケーションに対する影響も調べる必要があるでしょう。

1.3.2 震災自動単語分割の部分的単語分割データ (UTF-8)

  1. @mhagiwara さんの tweets.1645c.tsv を tsv2text.perl
  2. 結果を KyTea 能動学習のテキストとする
  3. あとは、指示に従い部分的アノテーション
  4. 結果: 000-003.3vexpr (下記の3値表現)
  5. 多かったアノテーション箇所は、固有名詞、方言、ツイッターに特有の表現です。

1.3.3 レシピに対する適応

手続き文章は、フローグラフとして「理解」の結果を表現することができます。 最初の段階として、自動単語分割器の特許文書への適応を行いました。

実験条件

実験条件は次の通りです。

結果

各適応作業後の自動単語分割の精度
ID言語資源適合率再現率 F値
1デフォルト95.32%96.49%95.90
21 + KWIC95.61%96.67%96.14
32 + 部分的単語分割95.95%96.85%96.40

言語資源を累積的に追加していった場合の単語分割の精度を測りました。 評価基準は、一般的な単語単位の再現率と適合率、およびF値です。 右の表がその結果です。

通常、学習コーパスと同一の分野のテストコーパスに対しては、98%以上の精度がでます。

特許に対する場合と同じように、レシピに対しても一般のモデルの精度は高くないです。 これは、MeCabや茶筌など、他の学習に基づく手法でも同じです。 また、規則に基づく方法(JUMAN等)でも、規則作成の際の想定外の分野では精度が下がります。

何らかの方法でこれに対処する必要があります。 簡単な方法は言語資源の追加で、右の表はこの方法による結果です。

まず、分布分析による単語候補の修正を8時間行いました。 この作業により、6%ほどの誤りを削減できていることが分かります。

さらに、レシピ固有表現コーパスの作成過程で得られる部分的単語分割コーパスを追加します。 これにより、さらに6%ほどの誤りを削減できていることが分かります。 もう少し上がっています。 この作業は、未知語に集中しているわけではないので、時間あたりの作業効率は悪いです。 しかし、レシピ固有表現に対するアノテーションは必要です。 したがって、その結果得られる部分的単語分割コーパスが使えるのはとても便利です。

2013/11/10現在、レシピ固有表現コーパスは、この9倍作成する途中です。 さらなる精度向上が実現できそうです。

番外編

さらに、テストコーパスを 9:1 に分割し、前者を学習に使ってみました。 テストコーパスは、当然フルアノテーションです。 つまり、フルアノテーションの学習コーパスの追加です。

言語資源の追加がない場合は、95.44でした(有効数字は3桁と思われる)。 上記の部分的アノテーション(ID=2)とフルアノテーションを加えると96.82でした。 さらに向上しています。 テストコーパスが上記の実験と異なり、かつ小さいので、参考値です。

しかし、単純な言語資源の追加ですから確実に精度が上がるはずです。 以下のリンクの配布モデルでは、フルアノテーションコーパスをすべて学習に使っています。

リンク

参考文献

点予測による単語分割
森 信介, Neubig Graham, 坪井 祐太
情報処理学会論文誌, Vol.52, No.10, pp.2944-2952, 2011.
Pointwise Prediction for Robust, Adaptable Japanese Morphological Analysis
Graham Neubig, Yosuke Nakata, Shinsuke Mori
ACL-HLT, 2011
点推定と能動学習を用いた自動単語分割器の分野適応
Graham Neubig,中田 陽介,森 信介,
言語処理学会第16回年次大会, 2010
Word-based Partial Annotation for Efficient Corpus Construction
Graham NEUBIG, Shinsuke MORI
LREC 2010
Training Conditional Random Fields Using Incomplete Annotations
Yuta TSUBOI, Hisashi KASHIMA, Shinsuke MORI, Hiroki ODA, Yuji MATSUMOTO
Coling 2008

Last Change: 2013/11/10 by Shinsuke MORI