
目次
固有表現とは?
固有表現とは一般的に、明確かつ自己完結的な存在を持つものを指します。犬や木、建物など物理的なものを表す場合もあれば、国や組織、感情などのように概念的なものの場合もあります。言語的に、大部分の名詞は何らかの形態の固有表現とみなすことができます。
固有表現抽出とは?
固有表現抽出(NER: Named Entity Recognition)とは、テキストの中から固有表現を見つけて分類する行為です。これは、人名や企業名から時間情報や金額に至るまで、事前に定義されたカテゴリーのシステムを利用して行われます。構造化されていないテキストに構造と意味情報を追加します。これによって、機械学習アルゴリズムがテキスト内の特定の固有表現を識別し、さらには大量のコンテンツを要約することもできるのです。また、これが自然言語処理タスクの重要な前処理ステップになる場合もあります。
顧客サポートの合理化や検索エンジンの最適化など広範囲に活用できる固有表現抽出は、日常的に使用する自然言語処理モデルの多くで重要な役割を果たしています。そのため、この分野の研究を理解することが、事業を革新し、競合に先んじるための鍵となるかもしれません。しかし、機械学習の多くの分野と同様に、 どこから始めればよいのか見極めるのが難しい場合もあります。
固有表現抽出における抽出は、与えられた生のテキストデータ内の固有表現の検出、前処理、分類を含んでいます。手動で行うこともできますが、BRATなどのアノテーションツールや固有表現認識ソリューションを利用することもできます。これらの固有表現に用いられる分類システムは、プロジェクトごとに変更できます。人名、組織、場所などの広範なグループに分類することもあれば、可溶性の化学物質と不溶性の化学物質など狭いグループに分類する場合もあります。
テキストから固有表現を抽出する前には、いくつか前処理タスクを行う必要があります。例えば、トークン化は、単語の先頭や終わりなど、テキスト内の単位の境界を定義するために役立ちます。品詞のアノテーションは、テキストの単位(トークン)に文法的機能のアノテーションを付けることによって、マシンが単語やフレーズ、文の間の関係を理解するための基礎を築きます。これらのプロセスを基に、マシンは固有表現の位置を識別し、テキスト全体の中での各固有表現の役割を推定し始めます。固有表現抽出ではこうしたステップが必要なのですが、そのように規定されていないのが一般的です。固有表現抽出プロジェクトを検討する際、データサイエンティストは通常、これらの前処理ステップが既に完了しているものとみなします。
ただし、これによって、固有表現抽出が複数のステップを必要とする複雑なプロセスであるという事実が変わるわけではありません。固有表現抽出の中には、固有表現の活用範囲を広げ活用度を高めることに貢献する多少異なるタスクも含まれています。一例を挙げると、共参照解析は、どのような固有表現抽出プロジェクトにおいても重要です。このプロセスによって、特定の固有表現に言及する様々な表現が全て同一のものと認識されて、アノテーションを付与されます。例えば、「安倍晋三」、「安倍さん」、「安倍首相」は全て同一人物を指しているので、使用されている単語は異なりますが、テキスト内では同一のものと認識される必要があります。共参照解析は、一つの文書で実行することも、複数の文書にまたがって行うことも可能です。複数の文書で行うと、特定の固有表現に言及している二つの文書をアルゴリズムがリンクさせることもできます。
固有表現抽出の重要用語
固有表現抽出の分野には、知っておくべき重要な技術用語があります。これらのいくつかについては後で詳しくご説明しますが、まず重要用語をざっと理解するために以下のリストをご覧ください。
照応解析
自然言語処理において、このタスクは主に、特定の同一固有表現に言及するフレーズを見つけてアノテーションを付けることを指します。固有表現抽出で用いる場合には、「あれ」「これ」「それ」などの単語がどのカテゴリーに属しているのかに関する判断も含まれる場合があります。
情報抽出
これは、非構造化文書から構造化された情報を取得するプロセスです。通常、自然言語処理を利用して、人間の言語のテキストから情報を引き出します。
Inside-Outside-Beginning: IOB
IOBとは、固有表現認識などのチャンキングタスクにおけるアノテーションの形式のことです。このシステムでは、各語がチャンクの先頭なのか、チャンク内なのか、チャンク外なのかについてアノテーションを付与します。IOB2も一般的に利用されている形式ですが、「 B」のアノテーションの使い方が少し異なります。
キーフレーズ抽出
主題と最も関係が深い単語やフレーズをテキスト内から見つけ出し、アノテーションを付与します。テキストマイニングまたは情報検索アルゴリズムを構築している方にとって特に重要です。
精度
アルゴリズムが返す結果の中に、適切なものがいくつ含まれているかを評価します。例えば、アルゴリズムが返した「人名」10個のうち、7個だけが正しい場合、精度は0.7です。高精度とは、アルゴリズムが返す結果に、不適切なものより適切なものの方が多いことを意味します。
再現率
再現率は、正しい結果総数のうち、プログラムが認識したものの数を測定します。例えば、テキスト内に「会社」の固有表現が20個あり、アルゴリズムが10個見つけた場合、再現率は10/20または二分の一です。高再現率とは、アルゴリズムが正しい結果の大部分を返せることを意味します。
意味的アノテーション
マシンが理解できるように、テキストに追加情報のアノテーションを付けるプロセスです。セマンティックアノテーションまたはセマンティックエンリッチメントとも呼ばれます。固有表現抽出は、テキストセグメントにこの情報を加えるために用いられる一つの手段にすぎません。
スタンドオフ形式
これは、固有表現抽出データを表示するためによく利用される形式です。テキスト全体を表示するのではなく、テキスト内で見つけた固有表現だけを表示します。コードの組み合わせを利用して、その固有表現が元のテキストのどこにあるのかを示します。
固有表現抽出の重要性
固有表現抽出は、自然言語理解の構成要素の一つです。テキストに構造を追加することは、それ自体が最終目標になる場合もありますが、多くのより複雑な自然言語処理タスクへの道を開くことになります。
固有表現抽出を用いることで、テキストの要約を開始したり、複数の文書から特定の固有表現への言及を見つけたり、テキスト内の最も重要な固有表現を特定したりすることが可能です。これらはビジネスにおいても、検索結果の関連性、レコメンド機能の改良、顧客サポートの自動化など様々な用途で活用できます。
固有表現抽出に使えるサンプル(オープン)データセット
固有表現抽出のための注釈付きコーパス: 固有表現分類のためのコーパス。自然言語処理による人気の拡張機能がデータセットに適用されている。
i2b2チャレンジ: 統合臨床情報データベース構築プラットフォームで固有表現抽出のために作成された臨床データセット。
CoNLL 2003: 1,393件の英語のニュース記事の固有表現に LOC (場所)、ORG (組織)、PER (人)、MISC (その他) の情報をタグ付けしたデータセット。
履歴書の固有表現: indeed.comの履歴書に対して固有表現抽出を行うための文書注釈データセット。
エンロン社の電子メール: 名前や日付、時間をタグ付けした50万件以上の電子メールメッセージ。
MIT映画コーパス: 意味的にタグ付けした学習データや試験データのコーパス。BIO方式が用いられている。engコーパスは単純なクエリで、 trivia10k13コーパスはより複雑なクエリから成る。
注釈付きGMBコーパス: Groningen Meaning Bankのコーパスを用いて固有表現分類のために注釈を付けたコーパス。 自然言語処理による人気の拡張機能がデータセットに適用されている。
ベスト・バイ 電子商取引の固有表現抽出データセット: ベスト・バイの検索クエリを含むデータセット。 ブランドや型番、カテゴリー名などでラベル付けされている。
WNUT 17新興固有表現抽出のデータセット: YouTube、Stack Overflow、Twitter、RedditなどのSNSサイトに掲載されたコメントのテキストをフィルターにかけ、固有表現が含まれる可能性の高いテキストを優先しているデータセット。
固有表現抽出に使える多言語データセット
欧州の新聞: オランダ語、フランス語、ドイツ語の固有表現抽出コーパス。ニュース記事とそれに関連するメタデータや固有表現が含まれている。
LeNER-Br: ブラジルポルトガル語の固有表現抽出のためのデータセット。全て法律関係の文書から構成されている。人、場所、時間、組織の他に法律や訴訟事件の固有表現もタグ付けされている。
スウェーデン語の固有表現抽出コーパス: 2012年からのスウェーデン語のウェブニュースをブートストラップし、固有表現抽出のために手作業で注釈をつけたもの。スウェーデン語の固有表現抽出のために最大8000個の文にPER (人)、 LOC (場所)、ORG (組織)、MISC (その他) の情報がタグ付けされている。
ヒンディー語医療データセット: 人、疾病、消耗品、症状の情報を含むヒンディー語のコーパス。
固有表現抽出のプロジェクト管理
独自に固有表現抽出機を構築しようとする場合でも、信頼できるパートナーにプロジェクトを外注する場合でも、優れた機械学習モデルを構築するために気をつけなくてはならない落とし穴がたくさんあります。最も注意すべき点の一つは、的を絞ったクリーンな学習データが必要だということです。固有表現抽出機の構築をどの程度自身で行うかにかかわらず、質の高いデータセットは、どのようにタスクを実行すべきかを示すほぼ完璧な例をマシンに提供します。そのため、高品質のデータセットを作成することは非常に重要です。
アノテーション作業のどの段階にも、望ましい費用対効果の達成を妨げるよくある間違いが存在します。以下に、これらの間違いやそれを避ける方法、 そして、優れた固有表現抽出機を構築するために役立つデータセットを作成する方法についてまとめました。
ガイドライン作成
どのプロジェクトでも、明確なガイドラインを設定することが重要です。プロジェクト開始時に、アノテーションプロセスから何を求めているのかを具体的に説明し、アノテーターに明確な指示を与えるための包括的な文書を作成する必要があります。これらのガイドラインの作成は主に、「分類システム」と「アノテーションのベストプラクティス」の二点を中心として行われます。
分類システムを確立する際は、アノテーターがマクロレベルとミクロレベルの両方で、システム内の全てのアノテーションの意味を正確に理解することが重要です。各カテゴリーおよびサブカテゴリーに含まれるものを確実に理解しなければなりません。例えば、多くの場合、ホテルは企業としてアノテーションを付与されますが、旅行業界などではしばしば、場所としてアノテーションを付けます。また、特別なアノテーションを要求する場合は、詳しく説明する必要があります。日付のアノテーションでは、「8月17日」のようなフレーズだけにカテゴリーを制限するのか、「明日」や「17日」も含めるのかを明確にします。これらの多くを可能な限り事前にカバーするのが目標ですが、アノテーターが新しいケースに遭遇するにつれ、プロジェクトを通じてガイドラインが拡張し続けるのはやむを得ません。
ガイドラインの後半では、どのようにアノテーションを行うのかについてその方法を全て記載します。アノテーターが効果的に機能するためには、分類システムがいくつの階層にわたるかだけでなく、句読点やニックネーム、記号、スペルミス、全カテゴリーに当てはまらないジャンクデータなど、遭遇しうる様々な問題への対処法を理解しておく必要があります。生のテキストサンプル内のアノテーションの密度についてあらかじめイメージを伝えておくことも重要です。
アノテーションと品質管理
高度なアノテーションでは、生のテキストサンプルを読んで、特定の単語やフレーズをハイライトし、固有表現抽出ツールを使用して適切なアノテーションを加えなければなりません。よくある間違いを犯さないように慎重に作業を行わないと、データセットの質を損なう可能性があります。
複数のアノテーターがチームを組んで作業に携わっている場合、アノテーションの質を維持するのに苦労することがあります。このような場合は、常にコミュニケーションを取り、アノテーターからの質問を迅速に解決できるプロセスを導入することが重要です。例えば、アノテーターがすぐ簡単に質問を提出できるオンラインフォームは大変役立ちます。また、提出を監視し、誤りを特定してフィードバックを提供するプロジェクト管理者の役割も非常に重要です。
幸いなことに、固有表現抽出の品質はかなり客観的に評価できます。評価者間信頼性の確認は、アノテーターが正確にタスクを理解しているかどうか判断する上で役立ちます。ただし、固有表現抽出は他のアノテーションタスクほど主観的でないので、初期の生データに対する様々なアプローチを補正する必要はほとんどないはずです。
固有表現抽出は、いくつかのより有名な機械学習タスクほど魅力的に映らないかもしれませんが、マシンが言語を理解するために不可欠なものです。利用可能な新しいデータが飛躍的に増大するなか、ノイズだらけの混沌とした情報に構造を追加するプロセスはこれまで以上に重要です。
前処理ステップとして使用する場合でも、最終目的の場合でも、固有表現抽出は、将来のビジネスの世界で大きな役割を果たすことになるでしょう。機械による言語理解を改良することによって、最終的には、私たち自身がより多くの情報に基づいて効果的に作業できるようになり、顧客に適した素晴らしいサービスを提供することが可能になります。