自然言語機械処理:Apache UIMA

もともとIBMの専門家によって開発されたUnstructured Information Management Architecture( UIMA )は、現在Apache インキュベーターにあり、オープンソースソフトウェアのサンプルであり、Apacheライセンスの下で配布されています。



これは何ですか



これは、大量の情報を分析し、この情報から知識を抽出することを目的とするソフトウェアインフラストラクチャです。 ここで慎重に停止し、セマンティックWebの底に目を向けます。その底には人工知能があり、慎重に後退します。



Apache UIMAは、神秘主義に満ちているわけではないため、優れています。 すべてをタッチ、選択、ファイルできます。



テキスト分析にモジュール式のアプローチを提供します。 たとえば、分析シーケンスは次のようになります。

  1. テキストの言語を定義します。
  2. 文の境界を見つけます。
  3. 名前付きの出現(名前、名前など)を探しています。


各操作は特定のコンポーネントによって実行され、その間の接続はフレームワークによって提供されます(UIMA JavaフレームワークとUIMA C ++フレームワークが利用可能です)。



アノテーター



したがって、アノテーターコンポーネントで構成されるチャネルを操作します。各コンポーネントは、テキストに対して特定の操作を実行します。 裸のテキストが入力され、出力は強化されたxmlファイルです。

既存のアノテーターの一部を次に示します。



他のコンポーネントの動作原理はそれほど明白ではありません。それらのリスト(完全からはほど遠い)はここにあります

必要に応じて、独自のアノテーターを作成するか、既存のアノテーターからチャネルを組み立てることができます。



作業例



例として、記事「 企業検索とマッシュアップのためのメタデータ抽出の自動化 」(ダンマックリーリー)の文章を見てみましょう。 まず、プログラムにスーとスーザンが意味的に関連する概念であることを理解するように教えます。 次の2つの文を検討してください。



私たちのクライアントはあなたの会社を訴えます。

この提案は、ジョンソンコーポレーションのためにスースミスによって書かれました。



まず、POS分析(品詞、品詞の分析)を実施します。 以下は、英語の品詞を表す識別子のリストです。

posアノテーターの出力では、次のものが得られます。



<AnnotationResult>

<Sentence>Our client is going to sue your company. </Sentence>

<token POS="pp$">Our</token>

<token POS="nn">client</token>

<token POS="bez">is</token>

<token POS="vbg">going</token>

<token POS="to">to</token>

<token POS="vb">sue</token>

<token POS="pp$">your</token>

<token POS="nn">company</token>

<token POS=".">.</token>

<Sentence>This proposal was written by Sue Smith for the Johnson Corporation. </Sentence>

<token POS="dt">This</token>

<token POS="nn">proposal</token>

<token POS="bedz">was</token>

<token POS="vbn">written</token>

<token POS="in">by</token>

<token POS="np">Sue</token>

<token POS="np">Smith</token>

<token POS="in">for</token>

<token POS="at">the</token>

<token POS="np">Johnson</token>

<token POS="nn">Corporation</token>

<token POS=".">.</token>

</AnnotationResult>







目的のスーが品詞POS =“ np”(大まかに言うと名詞)の識別子を持っていることに留意して、最初の文に注目します。 セマンティック検索ではなく従来の検索では、動詞sueをそれ自体の名前と区別しないことは明らかです。



2番目の文を扱います。 特定の辞書(および用語とオントロジーの辞書の使用はセマンティック検索の不可欠な属性です)を使用して、<token POS = "np"> Sue </ token>は短縮名Susanであり、2つの連続した名詞 "Sue Smith"が可能であることを学習します、1234747の従業員、スーザンスミス。 同様に、Johnson Corporationは識別子347474の組織であると判断できます。取得した知識を修正します。



<AnnotationResult>

<Sentence>This proposal was written by Sue Smith for the Johnson Corporation. </Sentence>

<token POS="dt">This</token>

<token POS="nn">proposal</token>

<token POS="bedz">was</token>

<token POS="vbn">written</token>

<token POS="in">by</token>

<person EmpID="1234747">

<token POS="np">Sue</token>

<token POS="np">Smith</token>

</person>

<token POS="in">for</token>

<token POS="at">the</token>

<org CompanyID="347474">

<token POS="np">Johnson</token>

<token POS="nn">Corporation</token>

</org>

<token POS=".">.</token>

</AnnotationResult>







したがって、数回の反復で、テキスト情報を充実させ、検索を新しいレベルに引き上げます。

魔法はありません。



All Articles