背景

固有表現認識は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を認識する技術です。固有表現認識は、質問応答システム、対話システム、情報抽出といった自然言語処理を用いた応用アプリケーションの要素技術としても使われています。

具体例を見てみましょう。以下の文から固有表現を認識してみます。

太郎は5月18日の朝9時に花子に会いに行った。

上記の文に含まれる固有表現を認識すると、人名として太郎と花子、日付として5月18日、時間として朝9時を抽出できます。

上記の例では、人名、日付、時間を表す固有表現が抽出されました。一般的には以下の8つのクラス (Information Retrieval and Extraction Exercise (IREX) の固有表現認識タスクにおける定義) がよく使われてきました。

クラス
ART 固有物名 ノーベル文学賞、Windows7
LOC 地名 アメリカ、千葉県
ORG 組織 自民党、NHK
PSN 人名 安倍晋三、メルケル
DAT 日付 1月29日、2016/01/29
TIM 時間 午後三時、10:30
MNY 金額 241円、8ドル
PNT 割合 10%、3割

固有表現認識を行う手法

固有表現認識を行うための手法として、近年では機械学習を用いた手法が主流となっています。機械学習を用いた手法では、人間の付与した正解を基に機械にルールを学習させます。つまり、テキスト中の「どこ」から「どこ」までが固有表現で、それが「何」の固有表現かを人間が付与しておき(下図)、その情報を機械学習モデルに与えて学習させるのです。

B-XXX、I-XXX というラベルがこれらの文字列が固有表現であることを表現しています。B-XXX は固有表現文字列の始まり、I-XXX は固有表現文字列が続いていることを意味しています。XXX 部分にはORG、PSNなどの固有表現クラスを表す文字列が入ります。固有表現でない部分にはOというラベルが付与されます。

固有表現認識の課題と対策

機械学習を用いた固有表現認識の課題として、ここでは以下の2つを挙げ、それらに対する取り組みについて紹介します。

  • データ作成の大変さ
  • 未知の固有表現に対する認識性能の低さ

機械学習による固有表現認識では、人間が付与した正解データを機械学習モデルに与えることで、 正しい答えを学習させることができます。しかし、その作成には非常に時間がかかるという問題があります。なぜなら、テキスト中のどこからどこまで、どのタイプの固有表現かという情報を人間が一つずつ付与しなければならないからです。

その対策として、我々は機械学習用のデータ作成ツールである「doccano」を開発しOSSとして公開しました。「doccano」を利用することで、固有表現認識で必要とするような文字や単語単位のデータを簡単に作ることができます。さらにdoccanoが提供するAPIを活用すれば、プログラムから自動的にラベル付けを行うこともできます。これにより、データ作成にかかる時間を劇的に短縮することができます。

また、機械学習ベースの固有表現認識では、学習データに出現しない固有表現に対する認識性能が大きく低下することが知られています。特に私たちが取り組んでいた企業名認識では、テキスト中に稀にしか現れない、あるいは全く現れない中小企業名の認識性能が低下します。その対策として、中小企業名を含む800万以上の企業名を収録した辞書JCLdicを作成しました。辞書と機械学習のハイブリッドによるアプローチにより、認識精度の向上を試みています。

おわりに

本記事では、情報抽出技術の要素技術の一つである固有表現認識に焦点を当てて解説しました。固有表現認識は自然言語処理の基礎技術であるため、情報抽出や対話システム、質問応答といった多くのアプリケーションで利用することができます。今後は、蓄積した情報抽出技術を用いて知識グラフを構築することや、データ作成をさらに効率的に行うために能動学習(Active Learning)の技術をdoccanoに組み込む予定です。

なお、より詳しい内容は以下のレポートにまとめています。こちらの記事と合わせて、ご参照ください。


本コンテンツはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。