JP2004362563A - 非構造化情報管理および自動テキスト分析を実行するためのシステム、方法、およびコンピュータ・プログラム記録媒体 - Google Patents

非構造化情報管理および自動テキスト分析を実行するためのシステム、方法、およびコンピュータ・プログラム記録媒体 Download PDF

Info

Publication number
JP2004362563A
JP2004362563A JP2004155234A JP2004155234A JP2004362563A JP 2004362563 A JP2004362563 A JP 2004362563A JP 2004155234 A JP2004155234 A JP 2004155234A JP 2004155234 A JP2004155234 A JP 2004155234A JP 2004362563 A JP2004362563 A JP 2004362563A
Authority
JP
Japan
Prior art keywords
document
wand
query
data
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004155234A
Other languages
English (en)
Inventor
Andrei Z Broder
アンドレイ・ジー・ブローダー
David Carmel
デビッド・カーメル
Michael Herscovici
マイケル・ハースコビッチ
Aya Soffer
アヤ・ソファ
Jason Zien
ジェイソン・ジーエン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004362563A publication Critical patent/JP2004362563A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

【課題】 非構造化情報管理システム(UIMS)用のシステム・アーキテクチャ、コンポーネント、および検索技法を開示することにある。
【解決手段】 UIMSは、情報ソースの幅広いアレイに関する非構造化情報の効果的な管理および交換のためのミドルウェアとして提供することができる。このアーキテクチャは一般に、検索エンジンと、データ記憶域と、パイプライン化した文書アノテータを含む分析エンジンと、様々なアダプタとを含む。この検索技法は2レベル検索技法を利用する。検索照会は、それぞれが関連重み値を有する複数の検索部分式からなる検索演算子を含む。検索エンジンは、しきい重み値合計を超える重み値合計を有する1つまたは複数の文書を返す。検索演算子は、加重AND(WAND)として機能するブール述部として実現される。
【選択図】 図1


Description

本発明は一般に情報管理システムに関し、より詳細には、自動テキスト分析および情報検索を含む非構造化情報管理システムを実現するためのシステム、方法、およびコンピュータ・プログラムに関する。
現代社会のテキスト・データの量は絶えず増大し続けている。その理由は様々であるが、重要な推進力の1つはパーソナル・コンピュータ・システムおよびデータベースが広範囲に配備されたことと、電子メールの量が絶えず増加していることである。その結果、様々な形式および表明での文書データの作成、拡散、および必要な記憶域が広く行き渡っている。
全般的な傾向は肯定的であるが、社会中に知識が拡散することは一般に有益な目標と見なされるので、文書データの量がその文書データを読み取り、同化し、カテゴリ化する関係者または関係組織の能力をはるかに上回る可能性があるという問題が発生する。
テキスト・データは、現在、文書データの大部分を表現しうるものであり、本特許出願に関連して主に述べられているが、その一方で文書はますますテキストとイメージ(ビデオ・クリップなどの動的または静的なもの)の両方を含む文書の形式あるいはテキストとオーディオの両方を含む文書の形式などのマルチメディア形式で作成され配布されている。
テキストベースの文書データの量の増加に応じて、この増加する文書データのコーパスを管理するための何らかの効率の良い手段を開発しなければならないことが明らかになった。この分野の努力は、非構造化情報管理と呼ぶことができ、(主に)テキストベースの情報における知識の記憶、アクセス、検索、ナビゲート、発見に必要なツールと方法の両方を包含するものと見なすことができる。
たとえば、ビジネスの手法は進化し続けているので、効率よく徹底的な方法で非構造化情報を処理する必要性が増大している。このような情報の例としては、記録された自然言語ダイアログ、マルチリンガル・ダイアログ、テキスト変換、科学資料などを含む。
David E. JohnsonおよびThomas Hampp-Bahnmuellerによる「Architecture of a Framework for Information Extraction from NaturalLanguage Documents」という名称の米国特許第6553385B2号には、アプリケーションに依存せず、高度の再利用性を提供する、自然言語文書からの情報抽出のためのフレームワークが記載されている。このフレームワークは、構文解析および分類などの種々の自然言語/機械学習技法を統合するものである。このフレームワークのアーキテクチャは、容易に使用されるアクセス層内に統合される。このフレームワークは、一般的な情報抽出、自然言語文書の分類/カテゴリ化、自動電子データ伝送(たとえば、電子メールおよびファクシミリ)処理および経路指定、ならびに構文解析を実行する。このフレームワーク内では、情報抽出を求める要求は情報エクストラクタ(extractors)に渡される。このフレームワークは、アプリケーション・データの前処理および後処理と、エクストラクタの制御の両方に対応することができる。また、このフレームワークは、アプリケーションがそのデータについて取るべき必要なアクションを提案することもできる。容易な統合および拡張という目標を達成するために、このフレームワークは、統合(外部)アプリケーション・プログラム・インターフェース(API)およびエクストラクタ(内部)APIを提供する。
米国特許第6553385B2号 米国仮出願第60/474877号
検索、索引付け、カテゴリ化、データおよびテキスト・マイニングを含むがこれらに制限されない目的のために様々なソースからの様々なフォーマットの文書データから所望の情報を抽出するために、その文書データを効率よくしかも包括的に処理する能力が必要である。
これらの教示の現在好ましい実施形態により、上記その他の問題が克服され、その他の利点が実現される。
本明細書には非構造化情報管理(Unstructured Information Management:UIM)システムが開示される。UIMの重要な態様としては、UIMアーキテクチャ(UIMA)と、そのコンポーネントと、UIMAによって実現される方法を含む。UIMAは、様々なソースからの文書情報を効果的かつ適時に処理するためのメカニズムを提供する。UIMAの特定の利点の1つは、非構造化情報を同質化し処理する能力である。
UIMAの一態様は、UIMAがモジュール方式であり、1つのコンピュータ上に局在化するかまたは2つ以上のコンピュータに分散することができ、さらに当面の非構造化情報管理タスクに適合させるためにそのサブコンポーネントを複製したり最適化したりすることができることである。
UIMAは、情報集中型である他のアプリケーションと効果的に統合することができる。薬品を発見するための生命科学アプリケーションとUIMAが統合されるという非制限的な例の1つが提供される。
UIMAの諸態様は、無制限に、セマンティック検索エンジン(Semantic Search Engine)と、文書ストア(Document Store)と、テキスト分析エンジン(TextAnalysis Engine:TAE)と、構造化知識ソース・アダプタ(Structured Knowledge Source Adapters)と、集合処理マネージャ(Collection Processing Manager)と、集合分析エンジン(Collection Analysis Engine)とを含む。好ましい実施形態では、UIMAは、関連知識を作成するために構造化情報と非構造化情報の両方を受け取るように動作する。TAEには、共通分析システム(common analysis system)(CAS)と、アノテータ(annotator)と、コントローラが含まれる。
また、UIMAの一部として、2レベル検索プロセス(two-level retrieval process)を使用する効率の良い照会評価プロセッサ(query evaluation processor)も開示されている。
データ単位(data unit)の集合を記憶するためのデータ記憶域と、そのデータ記憶域に結合され、前記データ記憶域からの少なくとも1つのデータ単位を検索するための照会に応答する検索エンジンとを含み、記憶データを処理するためのデータ処理システムが開示されている。この照会は、それぞれが関連重み値(associated weight value)を有する複数の検索部分式(search sub-expressions)からなる検索演算子を含み、検索エンジンは、しきい重み値合計(threshold weight value sum)を超える重み値合計を有するデータ単位を返す。好ましい一実施形態では、データ単位は文書を含む。
より具体的には、この照会は、加重AND(Weighted AND:WAND)として機能するブール述部(Boolean predicate)を含む。WANDは、引き数として、ブール変数X1、X2、・・・、Xkのリストと、関連の正の重みw1、w2、・・・、wkのリストと、しきい値θとを取り、
Figure 2004362563
である場合に、
Figure 2004362563
は真になる。
式中、xiはXiの標識変数(indicator variable)であり、Xiが真であればxi=1であり、そうでなければxi=0である。
このWANDは、
Figure 2004362563
および
Figure 2004362563
を介して(AND)関数または(OR)関数のうちの1つを実現するために使用することができる。
また、文書データを処理するための方法と、コンピュータ可読媒体上で実施され、少なくとも1つのアプリケーションと協力してテキスト・インテリジェンス・システム(text intelligence system)の動作を指示するためのプログラム・コードを含むコンピュータ・プログラム記録媒体も開示されている。このコンピュータ・プログラム記録媒体は、データ単位の集合を記憶するためのコンピュータ・プログラム・セグメントと、少なくとも1つの記憶データ単位を検索するための照会に応答する検索エンジンを実現するコンピュータ・プログラム・セグメントとを含む。この照会は、それぞれが関連重み値を有する複数の検索部分式からなる検索演算子を含み、前記検索エンジンは、しきい重み値合計を超える重み値合計を有するデータ単位を返す。
これらの教示の上記その他の態様は、添付図面に関連して読んだときに以下に示す好ましい実施形態の詳細な説明でより明らかになる。
本明細書には非構造化情報管理アーキテクチャ(UIMA)が開示されている。以下の説明は一般に次のように構成されている。
I.はじめに
II.アーキテクチャの機能概要
文書レベル分析
集合レベル分析
セマンティック検索アクセス
構造知識アクセス
III.アーキテクチャ・コンポーネントの概要
検索エンジン
文書ストア
分析エンジン
IV.システム・インターフェース
V.2レベル検索
VI.例示的な実施形態および考慮事項
I.はじめに
本明細書に開示されているUIMAは、好ましくは構造化情報と非構造化情報の組み合わせに関する検索と分析を統合するアプリケーションを開発するためのハードウェアとソフトウェアの組み合わせとして実施される。「構造化情報」は、その意図された意味があいまいではなく、そのデータの構造またはフォーマットで明示的に表現される情報として本明細書で定義する。適切な例の1つはデータベース・テーブルである。「非構造化情報」は、その意図された意味がその形式によって暗示されるにすぎない情報として本明細書で定義する。非構造化情報の適切な例の1つは自然言語で書かれた文書である。
エンドユーザ機能を実現するためにUIMAコンポーネントを使用するソフトウェア・プログラムは、一般に、アプリケーション、アプリケーション・プログラム、またはソフトウェア・アプリケーションなどの総称で呼ぶ。例示的なアプリケーションの1つは、図35〜36に関して後述する生命科学アプリケーションである。
その一実施形態が図1に示されているUIMAのハイレベル・アーキテクチャは、UIMアプリケーションを実現するために協働する大まかなコンポーネントの役割、インターフェース、および通信を定義する。これらのコンポーネントは、テキスト・データやイメージ・データを含む文書などの非構造化ソース・アーティファクト(artifacts)を分析し、構造化ソースを統合してアクセスし、発見したセマンティック・コンテンツに基づいてアーティファクトを記憶し、索引付けし、検索することができるコンポーネントを含む。
図1は、UIMA100の例示した非制限的な実施形態が、セマンティック検索エンジン110と、文書ストア120と、少なくとも1つのテキスト分析エンジン(TAE)130と、少なくとも1つの構造化知識ソース・アダプタ140と、集合処理マネージャ150と、少なくとも1つの集合分析エンジン160と、アプリケーション・ロジック(Application logic)170とを含むことを示している。好ましい実施形態では、UIMA100は、関連知識195を生成するために構造化情報180と非構造化情報の両方を受け取るように動作する。非構造化情報は、文書の集合190であると見なすことができ、テキスト、グラフィックス、静的および動的イメージ、オーディオ、ならびにそれらの様々な組み合わせの形にすることができる。UIMA100が採取する文書の所与の1つは文書190Aという。
図1に示すUIMA100の諸態様は図2にさらに示されており、同図では、テキスト分析エンジン130のコンポーネント部分にすることができるプリミティブ分析エンジン(Primitive Analysis Engine)(PAE)200が例示されている。PAE200には、共通分析システム(CAS)210と、アノテータ220と、コントローラ230が含まれている。TAE130の第2の実施形態は図3に示されており、同図では、アグリゲート分析エンジン(Aggregate Analysis Engine)(AAE)300が2つまたはそれ以上のコンポーネント分析エンジン221、222、223ならびにCAS210から構成され、PAE200と同じ外部インターフェースを実現する。さらにアグリゲート分析エンジン300には、コントローラ230と、分析シーケンサ(analysis sequencer)310と、分析構造ブローカ(analysis structure broker)320が含まれている。これらの特徴については、より徹底的に後述することになり、したがって、ここでは紹介のみとする。
II.アーキテクチャの機能概要
上記は一実施形態にすぎず、紹介にすぎないことに留意されたい。したがって、図1、図2、および図3に開示したUIMA100のコンポーネントの諸態様は様々になる可能性がある。たとえば、TAE130は、音声またはビデオなどのテキスト以外のデータの分析用の適切なエンジンを含むことができる。
UIMA100の実施形態は、音声、オーディオ、およびビデオに限定されず様々な非構造化アーティファクトに及ぶが、本明細書の記述は一般に、テキスト・データの形の人間の言語技術に関わるUIMA100の実現例を対象とする。さらに、本明細書で述べるように、文書190Aとして処理するための非構造化情報の諸要素としては、テキスト文書全体、テキスト文書フラグメント、または複数文書さえも含むことができる。したがって、本明細書内の教示は、UIMA100の諸態様の例証にすぎないものと見なすべきである。
すなわち、UIMA100は、様々な構造を有する様々な実施形態で実現することができる。たとえば、1つの大型システムとしてまたは複数の小型分散システムとしてUIMA100を実現することは有利であると見なすことができる。このような実現例は、実現例のスケールならびにその他の要因などの要因に応じて様々になる可能性がある。
次に、UIMA100の機能の諸態様の概要を示す。この諸態様は分析機能とアクセス機能の両方を含む。分析機能は2つのクラス、すなわち、文書レベル分析と集合レベル分析に分割される。アクセス機能はセマンティック検索アクセスと構造化知識アクセスに分割される。それぞれの機能については以下に紹介する。
II.A.文書レベル分析
文書レベル分析は、テキスト分析エンジン(TAE)130というコンポーネント処理要素によって実行される。これらは、汎用分析エンジンの拡張機能であり、テキスト用に専門化されている。TAE130の諸態様は、2000年にCunningham他によってGATEアーキテクチャとして開示された処理リソース(Processing Resources)に類似しているものと見なすこともできる。UIMA100では、TAE130は好ましくは、サブコンポーネント・エンジンまたはコンポーネント・エンジンから構成可能な再帰的構造であり、各エンジンはアプリケーションの分析のそれぞれ異なる段階を実行する。
テキスト分析エンジン130の例としては、言語変換プログラムと、文書要約プログラム(document summarizers)と、文書分類プログラム(document classifiers)と、名前付きエンティティ検出プログラム(named entity detectors)とを含む。各TAE130は、他の点では文書テキスト190A内で未確認または暗黙の特定の概念(または「セマンティック・エンティティ」)を発見するために設けられている。
TAE130は文書190Aを入力し、分析を生成する。元の文書190Aとそれに対応する分析は、その後、共通分析システム(CAS)210という共通構造で表現される。一般に、CAS210は、少なくとも1つの文書190Aに関する情報のモデリング、作成、および検索を容易にするデータ構造である(たとえば、図13を参照)。CAS210は局在化される場合もあれば、分散される場合もある。さらに、UIMA100は複数のCASシステムの調整をサポートする。
UIMA100で使用するように、また一般に、注釈(annotation)は元の文書190A内の一領域に何らかのメタデータを関連付けるものである。たとえば、文書190Aがテキスト文書である場合、注釈は、スパンの開始位置と終了位置を直接または間接的に示すことにより、文書190A内のテキストのスパンにメタデータ(たとえば、ラベル)を関連付ける。CAS210内の注釈は孤立しており、その注釈が文書そのものとは別個に維持されていることを意味する。孤立注釈(Stand-off annotations)は一般に、インライン文書マークアップ(inline document markup)よりフレキシブルなものと見なされている。しかし、UIMA100では、注釈は、所与の文書190AについてCAS210に記憶された唯一のタイプの情報である必要はない。CAS210は、元の文書190Aの何らかのサブコンポーネントに明示的にリンクされているかどうかにかかわらず、文書190Aの分析に関連するいずれかのクラスのメタデータ要素を表現するために使用することができる。また、CAS210により、イメージ、ビデオ、またはその他の非テキスト様式の分析に有用なように、このリンケージの複数定義が可能になる。一般に、各文書190Aに1つのCAS210が関連付けられることになる。
文書レベル分析の一例は図4に示されている。この例示的なワークフロー400では、注釈パイプラインは、言語ID(language identifier)410と、トークナイザ(tokenizer)420と、センテンス分離アノテータ(sentence separation annotator)430と、品詞(POS)タガー(part-of-speech tagger)440と、名前付きエンティティ認識アノテータ450と、パーサ460と、テンプレート・フィリング・アノテータ(template filling annotator)470とを含む複数の結合したアノテータを含む。図4に開示した例示的なアノテータおよびステップに加えてまたはそれらの代わりに使用可能な他の非制限的な関係は図6〜8に示されている。図9および図10は、ワークフロー生成(図9)およびワークフロー検証(図10)の諸態様を表現する流れ図を示している。様々なアノテータ410〜470のうちの少なくとも一部は図4〜5に示すものとは異なる順序で現れる可能性があり、たとえば、状況によってはトークナイザ420が言語ID410より先行する可能性があることに留意されたい。
しかし、すべてのアノテータ410〜470を図4に示すように直列に結合したパイプラインとして配置する必要はない。たとえば、図5は、日付アノテータ(Dates annotator)415が言語IDおよび他のアノテータと並列に配置され、日付アノテータ415の出力がCAS210に直接戻される場合の一例を示している。この実施形態は、漢字などの言語で書かれた文書190Aを採取する際に、その文書がラテン文字を使用して書かれた日付を含むときに有用である可能性がある。任意の数の並列アノテータ経路を設けることができ、並列経路当たり多数のアノテータを設けることができる(たとえば、日付アノテータ415の次に直列に結合した時間アノテータ(Time annotator)が続いてもよい)。さらに、所与の並列アノテータ経路の出力は、直接CAS210に戻す必要はないが、他のアノテータ経路にフィードバックすることもできる。
所与の文書190Aに2つ以上のCAS210を関連付けることができ、すなわち、種々のTAE130が種々のCAS210を使用できることに留意されたい。一例として、あるTAE130はあるCAS210を使用して文書190Aを異なる言語に変換することができ、他のTAE130は異なるCAS210を使用して同じ文書190の要約を提供することができる。別法として、複数のTAE130が同じ文書190Aについて同じCAS210を使用することもできる。
CAS210で表現される分析は、連続する分析段階を通過するにつれて強化あるいは洗練される(無関係のデータの廃棄などによる)メタデータの集合であると見なすことができる。たとえば、特定の分析段階では、CAS210は深い構文解析を含む可能性がある。CAS210を受け取る名前付きエンティティ検出プログラム(450)は、名前付きエンティティを識別するために深い構文解析を考慮することができる。名前付きエンティティは、複数の文書190A、たとえば、米国大統領に言及する文書または1つまたは複数の事業分野の財界指導者に言及する文書190Aに基づいて要約または分類を生成する分析エンジン130に入力することができる。
この現在好ましい実施形態では、CAS210は、単一継承をサポートする階層タイプ・システムによる一般的なオブジェクトベースの文書表現を提供する。継承構造1000の一例は図11に示されている。図11のタイプ・システム1010は、示されている非制限的な例の注釈1020、品詞(POS)1030、言語ID1040、旅行計画1050などの様々なサブタイプを含む。これらのタイプ(またはサブタイプ)1020、1030、1040、1050はさらに、適宜、分解することができる(たとえば、言語IDサブタイプ1040の変形としては、さらに米国、英国、およびオーストラリアを含む英語サブタイプ1040Aを含む)。一般に、タイプ・システム1010は、CAS210を使用するテキスト文書の分析のためのデータ・モデルを提供する。
しかし、CAS210は単一継承の使用に制限されず、図12は多重継承を使用するデータ・モデリングの一例を示している。この場合の構造は継承ツリーではなく、有向非周期サイクルである。多重継承のための操作および宣言セマンティクスを指定するために、C++または人工知能などにおける標準的な技法を使用することができる。
いずれの場合も(単一継承または多重継承)、アノテータの例は、たとえば、会話における語用論上の効果を分類するためにもう1組のアノテータを呼び出すために、センテンス境界およびタイプを見つけることのみに関心がある可能性がある。
単一継承をサポートする階層タイプ・システムによるオブジェクトベースの表現は、TAE130同士の間ならびにTAE130と他のUIMAコンポーネントまたはアプリケーションとの間の分析結果の効率のよい表現、アクセス、および転送のために設計されたデータ作成メソッド、アクセス・メソッド、および直列化メソッドを含む。CAS210内の諸要素には高速アクセスのために索引を付けることができる。CAS210は、バイナリ用として直列化メソッドによりならびに効率と相互運用性との兼ね合いを管理するためにXMLフォーマットにより、C++およびJava(R)で実現されている。CAS210とUIMA100のコンポーネントとの関係の一例は図13に示されている。図13には、CAS210に加えて、反復子(Iterator)1125と同様にタイプ・システム1110と索引リポジトリ1120が示されている。一般に、タイプ・システム1110は本質的にアノテータの順序ではなくワークフローに関する制約を指定するものであり、たとえば、図4では言語IDアノテータ410は品詞(POS)アノテータ440より先行しなければならない。索引リポジトリ1120は、現行文書190A内の日付および固有名詞の位置を指定することなどにより、所与の情報を文書190A内で突き止められるようにするポインタ用の記憶域を提供する。後述する分析構造ブローカ(ASB)320だけでなく、他のUIMAコンポーネント1130、1140、1150も示されている。
II.B.集合レベル分析
好ましくは、文書はアプリケーション170によって収集され、図1に示す集合190などの集合に構成される。好ましくは、UIMA100は、CPM150の一部を形成する集合リーダ(Collection Reader)・インターフェースを含む。集合リーダの実現例は、集合要素190、集合メタデータ、および要素メタデータへのアクセスを可能にする。UIMA100の実現例としては、集合リーダ・インターフェースと協力し、複数の集合およびその要素を管理する文書/集合/メタデータ・ストア(Document, Collection and Meta-data Store)120を含む。しかし、それ自体の集合を管理したいと希望するアプリケーション170は、集合データへのアクセスを必要とするUIMA100のコンポーネントに対し、集合リーダの実現例を提供することができる。
集合190を分析して、集合レベル分析結果を生成することができる。このような結果は、1つの集合190内の文書190Aの全部または一部のサブセットに関して計算したアグリゲート推論を表現するものである。集合全体190を分析するアプリケーション170のコンポーネントは集合分析エンジン(CAE)160である。CAE(複数も可)160は通常、個々の文書190Aなどの集合の要素に要素レベル分析またはより具体的には文書レベル分析を適用し、その後、アグリゲート計算を実行する際に要素分析を考慮する。
集合レベル分析結果の例としては、諸要素が所与のフィーチャ(特徴)、その変形および頻度が付いた用語集、分類法、統計カテゴライザ用のフィーチャ・ベクトル、抽出した関係(リレーション)のデータベース、トークンおよびその他の検出エンティティのマスタ索引を含む部分集合を含む。
集合分析エンジン(複数も可)160をサポートして、UIMA10は集合処理マネージャ(CPM)コンポーネント150を含む。CPM150は主に、ストア120内の集合リーダによりアクセス可能な各文書190Aに対する指定のTAE130の適用の管理を課せられている。集合分析エンジン160は、CPM150への入力として、TAE130および集合リーダ(図示せず)を提供することができる。CPM150は、TAE130を適用し、集合内の各要素190ごとにCAS210によって表現される分析を返す。このプロセスを制御するために、CPM150は、障害報告、休止、および再始動を含む管理機能を提供する。
アプリケーションの集合分析エンジン160の要求により、CPM150は、UIMアプリケーション・シナリオを代表する機能を実行するように任意選択で構成することができる。UIMアプリケーション機能の非制限的な例としては、メタデータ制約に基づいて所与の要素のみが処理されることを保証するフィルタリングと、要素レベル分析を記憶するパーシスタンスと、分析から抽出されたメタデータに基づいて指定の検索エンジン索引付けインターフェースを使用して文書に索引を付ける索引付けと、使用可能なコンピューティング・リソースを同時に使用して複数の文書を処理するためのTAE130の複数のインスタンスの作成および実行を管理する並列化とを含む。
II.C.セマンティック検索アクセス
本明細書で使用する「セマンティック検索」は、文書または集合レベル分析によって発見され、注釈として表現されるセマンティック・コンテンツに基づいて文書を突き止める機能を示している。セマンティック検索をサポートするために、UIMA100は検索エンジンの索引付けインターフェースと照会インターフェースとを含む。
索引付けインターフェースの一態様は、トークンの索引付けならびに注釈、特にクロスオーバ注釈のサポートである。2つまたはそれ以上の注釈は、文書の交差領域にリンクされている場合、互いにクロスオーバするものと見なされる。
照会インターフェースの他の態様は、トークンと注釈のブール組み合わせに加えて、注釈とトークンのネストされた構造を前提とする可能性のある照会のサポートである。
II.D.構造化知識アクセス
分析エンジン130がそれぞれの機能を実行するときに、多様な構造化情報ソース180を調べることができる。再利用性を高め、統合を容易にするために、UIMA100は知識ソース・アダプタ(KSA)インターフェース140を含む。
KSA140は、異種類の知識ソース180に対する均一アクセスの層を提供する。これは、データベース、辞書、知識ベース、および他の構造化ソース180で均一にエンコードされた知識を送達するのに必要な技術通信、表現言語、オントロジ・マッピングを管理する。この好ましい実施形態では、KSAへの基本インターフェースは、非制限的なフォーマットの一例として、XMLでエンコードされた知識交換フォーマット(KIF)を使用して、インスタンス生成された述部として構造化知識180を提示する。
KSA140のアーキテクチャの一態様は、KSAの登録および検索をサポートするKSAメタデータおよび関連サービスを含む。これらのサービスは、名前付きオントロジの記述および登録を含む。オントロジは一般に、それが含む概念と述部によって記述される。KSA140は、好ましくは自己記述性のものであり、調べた知識ソースの表示だけでなく、KSA140がインスタンス生成可能な登録済みオントロジに関連する述部シグニチャも、メタデータとして含むことができる。
好ましくは、アプリケーション開発者または分析エンジン開発者は、登録済みオントロジの述部をインスタンス生成するKSA140を検索し見つけるために、人間がブラウズ可能なKSAディレクトリ・サービスを調べることができる。このサービスは、ウェブ・サービスまたは埋込み可能なKSAコンポーネント140にハンドルを送達することができる。
III.アーキテクチャ・コンポーネントの概要
III.A.検索エンジン110
検索エンジン110は索引付けおよび照会処理を担当する。検索エンジン110は、検索アプリケーションとは区別される。検索アプリケーションは、検索エンジン110を使用して、たとえばページ・ランキングおよびプレゼンテーション機能を追加して基本検索アプリケーションを提供することになる。
UIMA100は、テキスト分析と検索の統合を利用するアプリケーションの開発をサポートする。基本ブール検索機能の実行に加えて、これらのアプリケーションは、「スパン」および「ビュー」という2つの拡張機能を提供するために検索エンジンを必要とする可能性がある。
スパン: イベント、場所、人、薬品、パーツなどのセマンティック・エンティティはトークンのシーケンスによってテキストで表現することができ、各トークンは1つまたは複数の英数字からなるストリングにすることができる。一般に、1つのトークンは、1つの数字、英字、音節、ワード、またはワード・シーケンスにすることができる。TAE130は、トークンのスパンに関する注釈を生成する。たとえば、「場所」というタイプの注釈を使用すると「1313 Mocking Bird Lane」というトークンのスパンに注釈を付けることができ、「人」というタイプの注釈を使用すると「Bob Smith」というトークンのスパンに注釈を付けることができる。
図15は、様々な注釈タイプを備えたトークンのネストされたスパンを示す注釈構造の一例を示している。図15では、たとえば、各トークンは1つのワードとして示されている。
注釈はフィーチャ(すなわち、プロパティ)を有することができる。たとえば、「場所」というタイプの注釈は「所有者」というフィーチャを有する可能性があり、その値はその場所におけるプロパティの所有者である。フィーチャの値はそれ自体のフィーチャを備えた複合タイプになる可能性があり、たとえば、ある場所の所有者は、「名前=John Doe」および「年齢=50」というフィーチャを備えた「人」というタイプのオブジェクトにすることができる。
UIMA準拠の検索エンジン110は、トークンのスパンに関する注釈または「スパン」の索引付けをサポートする。現在、後述するように、これを実施可能な2つの好ましい方法が存在する。簡単に言えば、インデクサ110によって理解される何らかのフォーマット(たとえば、XML)でCAS210にインライン注釈を挿入することができ、またはインデクサ110はCAS210で見つかる孤立注釈を理解することができる。
インライン注釈への変換: この手法では、アプリケーション170は検索エンジン110の入力要件に対処する。たとえば、Juruなどの検索エンジンは、XML文書に索引を付け、次に、そのXML要素を参照する照会を処理することができる。以下の例では、その文書に索引を付けることができることについて検討する。
Figure 2004362563
この例で仮にパリという都市を含むイベントについて照会が入力された場合、この文書はその照会に一致するだろう。
UIMA100でXML認識検索エンジン110を使用するために、アプリケーション170は、TAE130によって生成された孤立注釈を取り、それをXMLとしてインラインでエンコードする。CAS210は好ましくは、このXML表現を生成するための方法を定義する。この手法の恩恵は、どのXML認識検索エンジン110でも扱えるようにすることができることである。
孤立注釈を認識している検索エンジン: この手法では、検索エンジンのインターフェースは、ある文書に関する孤立(すなわち、非インライン)注釈の概念をサポートする。したがって、TAE130の出力は検索エンジン110に直接(またはほとんど直接)供給することができ、XMLなどの中間表現の必要性を回避する。一例として、文書フラグメントとそのトークンの位置について検討する。
Figure 2004362563
上記の例ではトークン(たとえば、「Washington」、「D.」、「C.」というトークン)は図15に示すものとは異なる位置定義を有することに留意されたい。UIMA100のこの好ましい実施形態は、両方のタイプのトークン位置定義をサポートする。
検索エンジン110とTAE130がこの文書用のまったく同じ位置空間について合意に達すると想定すると、この情報はTAE130によって以下のように表現することができる。
Figure 2004362563
しかし、TAE130と検索エンジン110が空白のカウント方法、句読点のアドレス指定方法について合意に達しないかまたは単に位置合せされていない場合、$Cityおよび$Countryという注釈には適切に索引を付けることができない。
したがって、以下のように同等のXML表現が提供される。
Figure 2004362563
XML構文解析は一般に、上記の代案より計算上高価なものになる。好ましくは、これは、これが前処理機能のうちの最も制限的なステップではない可能性があることを考慮する非妥当性検査パーサを使用することによって軽減される。
さらにXMLを考慮すると、一部の実施形態では、XML表現の欠点は、TAE130が重複注釈を生成する可能性があることである。換言すれば、注釈は適切にネストされない。しかし、XMLは自然に重複注釈を表現しないと思われ、他のメカニズムを使用して解決策を提供することができる。
また、「airbag」という文字のストリングについても検討する。これは、「air」と「bag」とを区別するTAE130からの注釈に索引を付けたいとアプリケーションが希望する可能性がある複合名詞である。検索エンジン110がある文書について1つのトークン化のみをサポートしており、「airbag」が単一トークンとして解釈されたが、TAE130は「air」と「bag」を明確に扱う異なるトークン化を使用した場合、この場合の検索エンジン110の最小索引付け単位が「airbag」であったので、アプリケーション170は「bag」に関する注釈とは別個に「air」に関する注釈に索引を付けることができないだろう。
上記の文書フラグメント例の場合、検索エンジン110に送られる注釈は以下のようになるだろう。
Figure 2004362563
「city」および「country」という注釈は、文字オフセット(CAS210内のそれぞれの内部表現である)を使用して指定されている。検索エンジン110が最終的にトークン番号を使用してそれらを指定することを選ぶことになる場合、アプリケーションまたは検索エンジン110のいずれか一方がその変換を実行することができるだろう。
一般に、トークンは単一文字である場合もあれば、複数文字の集合体である場合もあることに留意されたい。
この手法のいくつかの恩恵としては、孤立注釈モデルからインライン注釈モデルへの高価な変換およびその逆の変換を行う必要がないことを含む。また、重複注釈は問題を提起しない。
検索エンジン110と、TAE130と、一連のアノテータ1220、1221、1222との関係の一実施形態は図14に示されている。ASB320と、アプリケーション170用のユーザ・インターフェース(UI)170Aと、TAE130から出力を受け取るテキスト分析(TA)リソース・リポジトリ130Aも示されている。
図16は、文書レベルおよびワード・レベルで動作する図14の例示的なアノテータ1220、1221、1222の動作の表現を示している。この例では、文書レベル言語ID410の次にデタガー(detagger)415(HTMLタグを識別するためのもの)が続き、その次にトークナイザ420が続き、その次にPOSアノテータ440が続き、その次に位置IDアノテータ445が続く。
関係(リレーション)
図17はトークン1510、1520、1530とスパン1550、1560、1570に関する逆ファイルの表現を示しており、図18はスパン・オカレンスの代替表現を示す図である。図18では、オカレンス1610は、開始位置および終了位置1620または開始位置および長さ1630を有するものとして定義される。スパン1650は、少なくとも開始トークン1660と終了トークン1670を有するものとして定義され、これらのトークンはさらに位置について指定される。
図19、図20、および図21は、文書内の関係を発見するためにTAE130によって実行される前処理ステップ内のスパンとの関係を表現する例を提示している。図19に示す例では、「抑制する」という関係名を備えた関係引き数を含むスパンに注釈が付けられている。この例では、第1の化合物が抑制剤として識別され、第2の化合物が抑制されるものとして識別され、その関係は抑制するという関係である。このスパンの注釈は「抑制するもの」および「抑制されるもの」という引き数役割を備えた用語に対応し、このスパンに関する注釈には索引が付けられる。
このプロセスを記述する流れ図は図20に示されている。図20の第1のステップ1810は、関係テキストを発見すること、すなわち、ある関係が表現されている文書内のテキスト範囲を発見することを伴う。第2のステップ1820は、引き数テキストを発見する、すなわち、各引き数が表現されている文書内のテキスト範囲を発見する。各関係および引き数ごとに、ステップ1830でスパンが決定され、ステップ1840で引き数スパンに順序が付けられ、ステップ1850で関係スパンと、その引き数スパンのそれぞれについて注釈が作成される。ステップ1855でラベルが割り当てられて索引に追加され、ステップ1860で指定の順序で引き数注釈を関係注釈にリンクすることにより、関係が作成される。
図21はスパン索引との関係を図解している。図21の注釈索引1910は、各文書190Aが開始位置と終了位置によって線引きされたスパン1950を含む場合に、文書ID1940を含む関係引き数1930に関する関係索引1920を組み込んでいる。
位置および検索
一般に、1組のトークン位置は単調である。しかし、上記の説明に基づいて、1組のトークン位置は連続的または非連続的のうちの一方にすることができ、1つのトークンまたは1組のトークンに対して少なくとも2つの注釈が及ぶことができる。
注釈タイプは、任意のセマンティック・タイプまたはメタ値にすることができる。したがって、検索エンジン110は、注釈と、トークンと、注釈に関するトークンのうちの少なくとも1つを含む照会に対して応答することができる。
関係データ構造は、引き数の順に順序付けられた引き数からなる少なくとも1つの関係を含むことができ、1つの関係はそれぞれの注釈によって表現される。検索エンジン110は、データ・ストア120を検索するための特定の関係を含む照会に応答して、その特定の関係を有する少なくとも1つの文書を返すことができる。検索エンジン110はさらに、特定の関係にある少なくとも1つの引き数を返すことができる。検索エンジン110はさらに、複数の順序付き引き数を返すことができる。少なくとも1つの引き数は、注釈にリンクされた引き数注釈を含むことができる。また、検索エンジン110は、その照会によって明示的に指定されない照会に応答して少なくとも1つの引き数を返すこともできる。注釈は関係IDを含むことができ、その関係IDは少なくとも1つの引き数から構成することができる。その関係IDを含む1つの引き数は、例として、少なくとも1つの他の注釈と、1つのトークンと、1つのストリングと、1つのレコードと、1つのメタ値と、1つのカテゴリと、1つの関係と、少なくとも2つのトークン間の1つの関係と、少なくとも2つの注釈間の1つの関係とを含むことができる。この関係IDは論理述部も含むことができる。
同様に、それぞれの注釈によって表現された関係データ構造(1つの関係名と、引き数の順に順序付けられた複数の引き数とを含む)は、検索エンジン110の照会として現れる可能性がある。このような照会は、データ・ストア120を検索するための関係構造(またはその一部)を指定して、その指定された関係を有する少なくとも1つの文書を返す。検索エンジン110はさらに、指定された関係にある1つまたは複数の引き数を返すことができる。検索エンジン110が1つまたは複数の順序付き引き数を返す場合、各引き数は、その注釈にリンクされた引き数注釈を含むことができる。照会に応答して、検索エンジン110は、その照会によって明示的に指定されない少なくとも1つの引き数も返すことができることに留意されたい。
1つの関係の注釈は1つの関係ID、たとえば、論理述部を含むことができる。このような注釈は、1つまたは複数の引き数を取り込む可能性もある。1つの引き数は、例として、少なくとも1つの他の注釈と、1つのトークンと、1つのストリングと、1つのレコードと、1つのメタ値と、1つのカテゴリと、1つの関係と、少なくとも2つのトークン間の1つの関係と、少なくとも2つの注釈間の1つの関係とを含むことができる。
ビュー
異なるTAE130が同じ文書(複数も可)の種々のトークン化を生成できることを確認すると、UIMA準拠の検索エンジン110は、好ましくは、同じ文書についての種々のトークン化または種々の索引付けユニット・セットをサポートする。このような種々のトークン化の結果、1つの文書について異なる「ビュー」が発生する可能性がある。文書190Aの種々のトークン化に基づくかまたはそれから導出されたビューの一例は図22に示されており、同図では、第1の代替表現2010および第2の代替表現2020の結果、ビュー2050、2060、2070、2080として示す複数のビューが得られる可能性がある。
一般に、ビューはある文書190Aとトークン化との関連付けである。したがって、ビューは、文書190AのIDとトークン化の結果とを対にすることによって表現することができる。したがって、異なるビューは文書190Aの異なるトークン化を表現することが分かる。図23を参照すると、たとえば、単語を語幹と接尾部に分割することにより、TAE3がトークン・セット2のトークン化を拡張し、この結果、新しいビュー(ビュー3)が得られる。
図24は、単一ソース文書の種々のトークン化から発生する種々の文書ビューに関する検索式2110、2120、2130とともにブール演算子2100を使用するビューによる検索の諸態様を例示している。
TAE130の動作は好ましくは、TAE130によって生成されたコンテンツの関連性に関してアプリケーション17によって行われた既存のビューまたは決定を前提としていない。UIMA100は、TAE130が配備されるアプリケーション170とは無関係にTAE130を開発できることを保証する。したがって、好ましくは、ビューを作成することはアプリケーション170の責任である。好ましくは、2つのTAE130が同じ文書190A上で実行され、異なるトークン化に基づく結果を生成する場合、これらの結果はその文書の単一ビューにマージされない。したがって、アプリケーション170は別個のビューとして検索エンジン110に各TAE130の結果を提供する。
現在好ましい一実施形態では、検索エンジン110は、2つのレベルのうちの少なくとも一方のビューを同化するように構成される。第1のレベルは「浅い理解(Shallow Understanding)」レベルであり、その場合、検索エンジン110は1つの文書190Aの複数のビューを、最終的に同じ文書テキストを指し示すという点でのみ関連する完全に別個のエンティティとして扱う。理想的には、このような検索エンジン110は、その文書の複数のビューが1つの照会に一致した場合でも、その結果リストで1回だけ文書190Aを報告することになるだろう。第2のレベルは「深い理解(Deeper Understanding)」レベルであり、その場合、照会が文書190Aに関する複数のビューに及ぶように検索エンジン110はビューを認識している。たとえば、「XおよびY」という照会において、用語Xがある文書のビュー1に現れ、用語Yが同じ文書のビュー2に現れる場合、検索エンジン110によって文書190Aが返されることになるだろう。検索エンジン110の「浅い理解」の実施形態で同じ照会が同じ文書を返すわけではないことに留意されたい。
UIMA100のフィーチャは、従来のXML表現に対する大幅な改良を可能にする重複注釈を提供する能力である。「クロスオーバ・スパン」ともいうことができる重複注釈の一例は「IBM data warehousing products」というフレーズであり、「IBM data」、「datawarehousing」、「warehousing products」というすべての連続ワード対には「二重名詞」(double noun)注釈を付加することができる。このタイプのラベルを付加することは、たとえば、「storingdata created by IBM」対「IBM productfor storing data」の読み方を区別するために非常に有用である。
前述の通り、好ましくは、トークンを記憶するための少なくとも1つの逆ファイル・システム(図17を参照)と、それぞれのビューごとにその注釈と、それぞれの注釈のオカレンスを含むリストと、それぞれの注釈のリストされた各オカレンスごとに、所与のトークン位置に対して少なくとも1つの注釈が及ぶことができる複数のトークン位置からなるセットとを記憶するための少なくとも1つの逆ファイル・システム(図15を参照)が存在する。
明らかなように、逆ファイル・システムは、少なくとも個々のファイルにいかに索引付けし、アクセスするかという点において従来のファイル・システムとは異なっている。従来のファイル・システムでは単に個々のファイルそれぞれをリストするだけである可能性があり、逆ファイル・システムでは、トークンなどの何らかのコンテンツまたはメタデータが存在し、そのコンテンツまたはメタデータを含む1つまたは複数のファイルに何らかの方法で関連付けられている。たとえば、従来のファイル・システムでは、ファイルを検索するための索引としてのファイル名から始まる可能性があり、逆ファイル・システムでは、何らかのコンテンツまたはメタデータから始まって、そのコンテンツまたはメタデータを含む1つまたは複数のファイルを検索する可能性がある(すなわち、ファイルには、ファイル名とは対照的にコンテンツによって索引が付けられる)。
セマンティック検索エンジン110は、第1の述部が第1のビューに関係し、第2の述部が第2のビューに関係する少なくとも2つの述部の論理的組み合わせを含み、その述部の論理的組み合わせを満足する少なくとも1つの文書を返す照会に応答することができる。
本発明のこの好ましい実施形態では、このトークン化は、例として、プレーン・テキスト文書、文書の言語変換、文書の要約、マークアップされた文書のプレーン・テキスト変形、HTML文書のプレーン・テキスト変形、あるいはテキストとイメージ、テキストとグラフィカル・パターン、テキストとオーディオ、テキストとイメージとオーディオ、またはイメージとオーディオなどの様々なマルチメディア・オブジェクトを含むものなどのマルチメディア文書のうちの少なくとも1つに対応し、それから導出される。トークン化は、種々のデータ・タイプを有するオブジェクトに基づくことができる。また、トークン化は、ある文書のnグラム・トークン化から導出することもできる。たとえば、図40は文書テキストのトリグラム・トークン化の一例を示している。
UIMA100は、ある文書の複数ビューを作成するためにTAE130の複数インスタンスを必要としないことに留意されたい。その代わりに、1つのTAE130を使用して1つのビューを作成することができ、次に、1つまたは複数の異なるアノテータ(図2、図3、図4、および図5を参照)を選択すること、あるいはアノテータを再配置することによって再構成することができ、その文書をもう一度処理してその文書の他のビューを作成することができる。
III.B.文書ストア
ストア(または文書ストア)120は、文書および文書メタデータ用の主たる記憶メカニズムである。好ましくは(制限する意図ではなく)、ストア120はウェブ・ファウンテン(WF)モデルを使用し、文書メタデータを文書に関連するキー値対として記憶しアクセスできるようにする単純APIを想定する。
データ・ストア120内の文書190Aは好ましくは、データ・ストア120内の文書の特定の順序付けに関して逆ファイルとして表現される。
アプリケーションがテキスト分析エンジン130(分析構造)の最終結果または中間結果が存続することを要求する場合、その分析構造は好ましくは、ストア120内のメタデータとして文書190Aに関連するキー値構造に記憶される。他の形式も使用することができるが、この分析構造は、共通分析システム(CAS)210コンポーネントによって解釈可能なBLOBとしてバイナリ形式で表現することができる。一部の実施形態では、検索エンジンの索引用の記憶メカニズムが文書ストア120になっている。
III.C.分析エンジン
このセクションでは、TAE130の諸態様の概要を示し、次にTAE130用の他の動作原理について検討する。
前述の通り、図2は分析エンジン200としてTAE130を提示しており、同図では分析エンジン200のフレームワークの図が示されている。UIMA100は分析エンジン200用のインターフェースを指定し、おおざっぱに言えば、それは「CASイン」および「CASアウト」である。フィルタリング機能、管理機能、および自己記述性機能に使用する動作は他にもあるが、このメイン・インターフェースはCAS210を入力として受け取り、CAS210を出力として提供する。
以前にも紹介した図3はTAE130をアグリゲート分析エンジン300として提示しており、同図ではアグリゲート分析エンジン300のフレームワークの図が示されている。ランタイムでは、構成要素テキスト分析エンジン221、222、223を実行する順序がアグリゲート分析エンジン300に与えられる。分析構造ブローカ320は、各テキスト分析エンジン221、222、223が指定のシーケンスに応じてCAS210にアクセスできることを保証する。
好ましくは、図2に示すインターフェースを実現するどのプログラムも、UIMA100の実現例で分析エンジン・コンポーネントとして使用することができる。しかし、UIMA100の一部として、分析エンジン200は、多種多様なシステム・ミドルウェア・プラットフォーム上でのブリミティブ分析エンジン200およびアグリゲート分析エンジン300の作成、構成、およびフレキシブルな配備をサポートするフレームワークを含むことができる。次に、TAE130の諸態様についてより詳細に述べる。
テキスト分析エンジン(TAE)130は、テキスト状態のセマンティック・コンテンツを発見し表現することを担当するコンポーネントである。TAE130には、以下の例示的な活動、すなわち、文書内のテキスト・セグメントによって表現される構文エンティティおよびセマンティック・エンティティ(たとえば、センテンス、タイトル、パラグラフ、人、場所、イベント、時間、生物学的エンティティ、関係、化学的エンティティなど)を発見することと、テキスト状態の関係を発見することと、文書の要約を生成することと、文書を異なる言語に変換することと、分類法で文書を分類することを課すことができる。
好ましくは、TAE130は、文書190Aを入力として取り、文書のテキストから推論されたセマンティック情報を表現する分析構造を生成する。また、TAE130は、文書と、それが動作の結果として修正する初期分析構造から開始することもできる。
TAE130は通常、アノテータ220(互いに交換できるように「マイナ」(miner)ということもできる)の集合を調整することによって実現される。アノテータ220は、新しいセマンティック・コンテンツを発見して記録するために元の文書190Aあるいは前の分析結果を使用する明確な責任を有するコンポーネントである。アノテータ220は、好ましくはパイプライン・アーキテクチャ(たとえば、図4、図14、および図16を参照)として構成されるが、そのように構成する必要はなく、そのそれぞれは文書190Aおよびパイプライン内の前のアノテータ220の結果について操作する。このタイプの配置については図14に紹介されている。文書内の位置を識別するために使用する一連のアノテータ220の他の例は図16に現れている。しかし、前記した通り、図5に示すようにアノテータ220の並列配置も提供することができる。
ハイレベルには、TAE130が生テキストのセマンティック・コンテンツの発見を担当するコンポーネントであるものとして検討する。TAE130は、たとえば、場所、イベント、人、あるいは他の同様のタイプの情報を表現するコーパス内のセマンティック・エンティティを発見するために、アプリケーションの前処理フェーズで使用することができる。照会時にアプリケーション170は、その照会を分析して、特定の位置で所与の時期に発生した何らかのイベントに関係する情報をその照会がシークしていることを判断することができる。好ましくは、アプリケーション170は次に、所与の位置および時間を加えたイベントを含む文書を送達するために検索エンジン110に照会する。この照会を効率よく実行するために、アプリケーション170は、前処理フェーズで発見されたセマンティック・エンティティ(特に、この場合はイベント)が検索エンジン110で索引が付けられることを期待する。
アノテータ220は制御または通信の依存関係なしに開発されることが好ましく、さもなければ、アノテータ220は2つ以上のアプリケーション170によって理解し再利用することが困難になる可能性がある。
TAE130は、アノテータ・ロジックの絶縁を可能にする。したがって、TAE130は、アノテータ220が構成され配備されているコンテナと見なすことができる。好ましくは、アノテータ220間の制御の流れおよび通信を調整することと、テキスト分析リソース(たとえば、辞書)への均一インターフェースをアノテータ220に提供することと、アノテータ220の集合の複合機能性にアクセスするためにアプリケーション170用の単一インターフェースを公開することはTAE130の役割である。
TAE130は機能インターフェースを指定する。すなわち、TAE130は、文書190A(および任意選択で初期分析構造)を入力として受け入れ、その文書から推論されたセマンティック・コンテンツを表現する分析構造を生成する。TAE130自体は、この機能性への技術インターフェースを指定しない。TAE130へのアクセスは、様々な手段によって提供することができる。
TAE130はアプリケーション170内に直接含める(同じ場所に配置する)ことができるが、TAE130は分散サービス(たとえば、ウェブ・サービス)として配備することもできる。TAEサービスは、TAE130をラップし、TAE130への技術インターフェースを公開する。配備されたTAEサービスは、文書を処理するための要求を聞き取り、その文書をTAE130に渡し、TAE130が生成した分析構造を入手し、その分析構造を呼出し側に返す。
好ましくは、UIMA100は、いくつかの共通分散オブジェクト技術およびプロトコル(たとえば、SOAP、MQSeries、WebSphere、Mail)用のTAEサービス実現例を提供する。また、UIMA100は好ましくは、クライアントが必要なサービスを突き止めることができるように、TAEサービスを登録するための命名サービスも提供する。
一般に、プリミティブ200とアグリゲート300という2つのタイプのTAE130が存在する。プリミティブTAE200は1つのアノテータ220用のコンテナである。これは、制御および通信の詳細からアノテータ220を絶縁し、テキスト分析リソースへの均一インターフェースをアノテータ220に提供する。アグリゲートTAE300は、プリミティブ200またはアグリゲートTAE300のいずれかになる可能性のある1つまたは複数の他のTAEに自分の作業を委任する。アグリゲートTAE300は、構成要素TAE221、222、223間の通信を管理するために分析構造ブローカ(ASB)320を使用する。
共通分析システム210
共通分析システム(CAS)210は、分析構造にアクセスして修正するためにすべてのアノテータ220が使用する共通機能として提供される。したがって、CAS210は、アノテータ220間の調整を可能にし、種々のアプリケーション170および種々のタイプのアーキテクチャ(たとえば、疎結合対密結合)内でのアノテータ220の再利用を容易にする。もう一度、図16を参照すると、CAS210は、図13に示すタイプ・システム1110を介して様々なアノテータ410〜445の動作、すなわち、ワークフローを抑制するものと見なすことができる。
CAS210は主に、データ・モデリング機能、データ作成機能、およびデータ検索機能に備えるものである。データ・モデリングは、好ましくは、図11(図6も参照)に示したように複数タイプのツリー階層を定義する。これらのタイプはフィーチャ(図7)という属性またはプロパティを有する。好ましい実施形態では、整数(int)、浮動小数点(float)、および文字列(string)など、少数の組込み(定義済み)タイプが存在する。このデータ・モデルは、アノテータ記述子で定義され、他のアノテータと共用される。データ・モデリング例は図25に示されている。示されている例示的なデータ・モデル2200は、トップ2210と、注釈2220と、Int2230と、POS2240と、トークン2250と、センテンス2260と、前置詞2270と、名詞2280と、その他の追加タイプ2290とを含む、複数タイプのアセンブリを含んでいる。このデータ・モデル2200は、図11に開示された例示的な単一継承構造などの継承構造と、図8に開示された例示的なコンポーネント・リストなどのコンポーネント・リストとの組み合わせと見なすことができる。
CAS210のデータ構造は「フィーチャ構造」という場合もある。フィーチャ構造を作成するために、そのタイプを指定しなければならない(図6を参照)。注釈(およびその他のフィーチャ構造)は索引に記憶される。フィーチャ構造は索引に関する反復子(複数も可)1125を介してアクセスすることができる(再び図13を参照できる)。
図37および図38は、CAS210の動作を説明するために有用な例示的な疑似コードを示している。この疑似コードは、動詞タイプのフィーチャ構造を作成し、それをCAS210の索引に挿入するときのタイプ・システムとフィーチャ構造の使い方を示している。
CAS210は、抽象データ・タイプとして表現的オブジェクトベースのデータ構造を実現するメソッドの集合(たとえば、Java(R)またはC++ではクラスとして実現される)と見なすことができる。好ましくは、CAS210の設計は、主として、TAE130のフィーチャ/プロパティ構造に基づくものであり、この構造は、ユーザ定義オブジェクトと、フレキシビリティのためのプロパティおよび値と、効率のための静的タイプ階層と、1つまたは複数の反復子1125(図13を参照)の使用により記憶データにアクセスするためのメソッドとを提供する。
CAS210により実現された抽象データ・モデルは、他のフィーチャの中でも、プラットフォーム独立性(すなわち、タイプ・システムはプログラミング言語とは無関係に宣言的に定義される)と、パフォーマンス上の利点(たとえば、共通データ・モデルにより種々のプログラミング言語で書かれたアノテータ210を結合する場合)と、アノテータ210に関する入出力指定によるフロー構成(サービス・モデルとしてのアノテータ(TAE)のサポートだけでなく、タイプ・チェックおよびエラー検出を可能にする宣言指定を含む)と、セマンティック索引付け、探索、および検索による第三世代検索プロシージャのサポート(すなわち、セマンティック・タイプはキーワード・ベースではなく、宣言型である)をUIMA100に提供する。
CAS210は、効率よく分析構造を構築し検索するための機能をアノテータ220に提供する。この分析構造は主に、元の文書190Aのテキストのサブシーケンスを記述したメタデータから構成されるデータ構造である。分析構造内の例示的なタイプのメタデータは注釈である。注釈は、それ自体のプロパティを備えたオブジェクトであり、テキスト・シーケンスに注釈を付けるために使用する。任意の数の注釈タイプが存在する。たとえば、注釈は、文書の構造(たとえば、ワード、センテンス、パラグラフなど)内のそれぞれの役割に関してテキスト・シーケンスにラベルを付けるか、またはそれぞれの文法上の役割(たとえば、名詞、名詞句、動詞、形容詞など)に関してテキスト・シーケンスを記述することができる。本質的に、注釈の数または適用については何も制限はない。その他の例としては、固有名詞、位置、軍事標的、時間、イベント、機器、条件、時間条件、関係、生物学的関係、家族関係、あるいは、意義または関心のあるその他の項目として識別するために、テキスト・セグメントに注釈を付けることを含む。
通常、アノテータ220の一機能は、それを認識するためにアノテータが設計された注釈セットの新しいインスタンスを発見し、他のアノテータ220による追加処理への入力のためにその注釈を分析構造に追加するために、テキストならびに既存の分析構造を分析することである。たとえば、図19に関連して前述した抑制するという特定の関係は、このタイプの関係を識別するために具体的に設計されたアノテータ220によって(この場合は「may reduce the effectiveness of」というフレーズがそのフレーズの前後の2つの化合物名の間の抑制関係を暗示することを認識することによって)発見することができる。この特定のアノテータ220が抑制として認識可能な同様の性質の他のフレーズとしては、「reduces the effect of」(図27を参照)と「suppresses the operation of」が考えられる。
注釈に加え、CAS210は、元の文書テキストならびにアノテータ220によって生成可能な関連文書(たとえば、元の文書の変換あるいは要約)を記憶することができる。好ましくは、CAS210は、XMLなどの確立したフォーマットで分析構造の種々の態様(たとえば、1組の注釈セット)のエクスポートを容易にする拡張機能を含む。
簡単に言えば、TAE記述はTAE130を記述するオブジェクトである。好ましい実施形態では、TAE記述子は、TAE記述を表現するXML文書である。TAE記述は、TAEを開始して使用するために必要なすべての情報を含んでいる。しかし、TAE記述は、それ自体ではTAE130をどのように配備するか(たとえば、それが密結合になるかまたは疎結合になるか)を指定しない。
TAE記述は、異なる状態の完全度をもって存在することができる。たとえば、TAE130の開発者は、構成パラメータを定義するが、構成パラメータのいずれも設定しないTAE記述を提供することができる。その場合、アプリケーション開発者は、そのTAE記述を取り出して、そのパラメータの値をプログラムによって割り当てる。
共通分析システム210(CAS)の詳細について説明する。CAS210は、TAE130の一部分であって、テキストの注釈を定義して記憶する部分である。CAS APIは、注釈を作成してアクセスするために、アプリケーションとアノテータ220の両方が使用するものである。CAS APIは、好ましくは、少なくとも3通りの明確なインターフェースを含む。タイプ・システムは、新しいタイプの作成を制御し、タイプ間の関係(継承)およびタイプとフィーチャとの関係に関する情報を提供する。タイプ定義の非制限的な一例は図6に示されている。構造アクセス・インターフェースは、新しい構造の作成と、値のアクセスおよび設定とを処理する。構造照会インターフェースは、既存の構造の検索を扱う。次に、CAS210のサブコンポーネントに関する詳細を示す。
タイプ・システムは、オブジェクト指向プログラミングにおけるクラス階層と同様に、システムにとって既知のエンティティの分類を提供する。タイプはクラスに対応し、フィーチャはメンバ変数に対応する。好ましくは、タイプ・システム・インターフェースは、新しいタイプ(型)に名前を提供し、それを付加すべき階層内の場所を指定することにより新しいタイプを追加することと、新しいフィーチャに名前を提供し、そのフィーチャを付加すべきタイプならびに値タイプを示すことにより新しいフィーチャを追加することと、「どのタイプ(複数も可)がこのタイプから継承するか」など、既存のタイプおよびフィーチャとそれらの関係を照会することという機能性を提供する。
好ましくは、タイプ・システムは少数の組込みタイプを提供する。前述の通り、基本タイプはintと、floatと、stringである。Java(R)の実現例では、これらはそれぞれJava(R)のintタイプ、floatタイプ、stringタイプに対応する。注釈および基本データ・タイプのアレイもサポートされる。この組込みタイプは、構造アクセス・インターフェースにおける特殊APIサポートを有する。
構造アクセス・インターフェースは、新しい構造の作成ならびに既存の構造の値のアクセスと設定を可能にする。好ましくは、これは、所与のタイプの新しい構造の作成と、所与の構造上のフィーチャの値の取得および設定と、組込みタイプに関するメソッドのアクセスに備えるものである。図7を参照すると、同図では、ドメインに関する例示的なフィーチャ定義が示され、各フィーチャは所定の範囲を有している。
一部の実施形態では、フィーチャ構造に関するソート済み索引の作成および維持には、フィーチャ構造に関するコミット操作が必要になる場合がある。コミット時にシステムはフィーチャ構造に対する変更を適切な索引に伝搬する。
構造照会インターフェースは、所与の条件を満たす構造のリスト(反復)を可能にする。このインターフェースは、TAE130が生成した結果にアクセスするために、アノテータ220ならびにアプリケーション170によって使用することができる。好ましくは、このインターフェースは直観的であり、種々のアプリケーション170でのTAE130の再利用を容易にする。
CAS210内の構造に関する反復を構築するために種々の技法が存在する。第一に、フィルタリングされた反復において、フィーチャ構造に関する制約またはフィルタが構築される。好ましくは、これらは、不等式制約によってint値およびfloat値を抑制し、等式によってstring値を抑制し、構造のタイプを抑制し、経路の下に基本制約を埋め込み、制約とブール演算子AND、OR、およびNOTとを組み合わせる。
反復内のすべての要素がその制約を満たす場合、新しい反復子1125を使用することができる。注釈については特殊ケースの反復子1125が存在する可能性があり、その場合、何らかのタイプ(たとえば、センテンス)の注釈について反復し、その反復内の各要素について埋込み注釈のスパンに含まれる他のタイプ(たとえば、トークン)のすべての注釈をリストすることが好ましい。埋込み構造反復子はフィルタリングされた反復子によって構築することができる。この目的のために特殊APIを設けることは、便利であるとともに、最適化実現例を可能にする。
図38は、CAS210ベースのデータ・アクセスのための疑似コードの一例であり、トークンに関する反復の使用を示している。
一般に、TAE130の基礎設計では、コンポーネントの再利用を奨励して可能にし、システムおよび配備の詳細からアルゴリズム開発者を絶縁する明確な開発役割をサポートし、下位レベルのシステム・ミドルウェアAPIを絶縁することによってフレキシブルな様々な配備オプションをサポートする3つの基本原理を認識している。次に、この3つの原理の実現例の諸態様について述べる。
コンポーネントの再利用の奨励および可能化
コンポーネントの再利用を奨励し可能にすることは、所望の効率を達成し、クロスグループ・コラボレーションに備えるものである。TAE130用のフレームワークの3つの特性がこの目標に対処する。これらの特性は、再帰的構造(recursive structure)と、データ主導(data-driven)と、自己記述性(self-descriptive)である。それぞれについて説明する。
再帰的構造: 図2に示すように、プリミティブ分析エンジン200はアノテータ220とCAS210から構成される。アノテータ220は、分析ロジック(たとえば、トークン化、文法構文解析、エンティティ検出)を実現するオブジェクトである。アノテータ220は、CAS210から元の文書のコンテンツとメタデータを読み取る。次にアノテータ220は、新しいメタデータを計算し、それをCAS210に書き込む。ネストされたプログラミング・モデルと同様に、アグリゲート分析エンジン300は、それぞれの内部構造を絶縁しながら、コンポーネントを互いに組み合わせて再利用できることを保証する再帰的構造の一例である。
データ主導: 好ましくは、分析エンジン200の処理モデルは厳密にデータ主導型である。この好ましい実施形態では、これにより、アノテータ220の分析ロジックは、それと組み合わせることができる特定の分析エンジン(複数も可)200またはアノテータ220を埋め込むことができる制御シーケンスではなく、入力のコンテンツのみを前提とすることができることが示される。これは、アノテータの入力要件を満たしている限り、分析エンジン200が種々のアグリゲート構造および種々の制御環境で正常に再利用可能であることを保証する。
図3の分析シーケンサ310は、CAS210へのアクセス権を受け取るために次の分析エンジン221、222、223を動的に決定することを担当するフレームワーク内のコンポーネントである。分析シーケンサ310は分析構造ブローカ320とは別個のものであり、その責任は、それが何であれ、またそれがどこに位置していても、テキスト分析エンジン221、222、223のうちの適切なものにCAS210を送達することである。分析シーケンサ310の制御ロジックは好ましくは、アノテータ220に埋め込まれた分析ロジックから分離しており、CAS210の転送を保証あるいは最適化することに関連する分析構造ブローカ320の関心事から分離している。この機能性の分離により、種々の分析シーケンサ310のプラグ・アンド・プレイが可能になる。分析シーケンサ310により、宣言的に指定した静的フローに関する単純な反復が計画アルゴリズムを複雑にすることができる。分析シーケンサ310の実施形態は、分析エンジン221、222、223間の線形フローに制限することができるが、しかし、より高度なアプリケーションでは、動的かつ適応順序付けを実現することができる。したがって、とりわけ、どの程度の制御指定を宣言表現内に配置するかと、このような高度な要件に関して分析シーケンサ310内でどの程度実現するかはアプリケーションに依存する。
自己記述性: 分析エンジン221、222、223がアグリゲートを形成するために容易に構成でき、種々の制御シーケンスで再利用できることを保証することは、技術的再利用性を保証するために好ましいことである。しかし、これは、広範囲の開発者コミュニティ内での再利用を可能にし検証するために十分ではない可能性がある。再利用を促進するために、分析エンジン200の開発者は、それぞれの機能に関してどの分析エンジン221、222、223が使用可能であるかを発見できるようになっている。
好ましくは、各分析エンジン200のデータ・モデルはXMLで宣言され、ランタイム時にCAS210内で動的に認識される。UIMA100では、分析エンジン221、222、223はこの宣言データ・モデルに関するそれぞれの入力要件および出力指定を公開し、分析エンジン・ディレクトリ・サービスで分析エンジン221、222、223を登録するためにこの情報を使用する。このサービスは好ましくは、アプリケーション開発者がその要求を満たす分析エンジンをブラウズあるいは検索できるようにする人間向きインターフェースを含む。
明確な開発役割のサポート
UIMA100では、様々な開発役割が識別され、考慮されている。種々の開発者スキル・セットをサポートする複数の独立インターフェース・セットが含まれている。
たとえば、マルチリンガル機械翻訳を専攻する言語技術研究者は、高度に訓練されたソフトウェア・エンジニアではなく、フレキシブルでスケーラブルな配備に必要なシステム技術に熟練していない可能性がある。UIMA100の一態様は、堅固でスケーラブルなシステム・アーキテクチャにおけるそれぞれの作業の効率的配備に備えるものである。
もう1つの例として、種々のコンポーネントを組み合わせて調整する方法に関するアイディアを持っている研究者自身はアルゴリズム開発者またはシステム・エンジニアではない可能性があり、依然として既存のコンポーネントを組み合わせることによるアイディアを迅速に作成し検証する必要がある。さらに、分散され、使用可能性の高いサービスとして、またはアグリゲート・システム内の連結オブジェクトとして分析エンジン221、222、223を配備することは、さらに他のスキルを必要とする。
したがって、所与の開発役割が識別されている。このため、UIMA100は、上記のように種々のスキル・セットをサポートする複数の独立インターフェース・セットを使用することができる。次にこれらについて検討する。
アノテータ開発者: アノテータ開発者の役割は、統計的言語認識プログラムからルールベースの名前付きエンティティ検出プログラム、さらに文書分類プログラムに及ぶコア・アルゴリズムの開発に集中している。
このフレームワークの設計は、相互運用性、リカバリ、遠隔通信、分散配備などのようなアグリゲート・システム挙動またはシステム問題に対処するためのコードをアノテータ開発者が開発する必要がないことを保証する。その代わりに、このフレームワークは、アルゴリズム・ロジックおよび結果の論理表現に集中するという目標に備えるものである。
この目標は、分析エンジン200のフレームワークを使用することと、アノテータ開発者に対し3つのインターフェース、すなわち、アノテータ・インターフェースと、アノテータ・コンテキスト・インターフェースと、CASインターフェースのみを理解することを要求することにより、達成される。好ましくは、アノテータ開発者は、アノテータ・インターフェースを実現するステップと、入力を読み取り、結果を書き込むためのCASインターフェースと、リソースにアクセスするためのアノテータ・コンテキスト・インターフェースとを使用して分析アルゴリムをエンコードするステップと、分析エンジン記述子を作成するステップと、分析エンジン・ファクトリを呼び出すステップを実行する。
このフレームワークに分析アルゴリズムを埋め込むために、アノテータ開発者はアノテータ・インターフェースを実現する。好ましくは、このインターフェースは単純なものであり、初期設定のためのメソッドと文書を分析するためのメソッドという2つのメソッドのみの実現を必要とする。
アノテータ開発者が入力データにアクセスし、分析結果を登録するのは、CAS210のみによって行われる。前記した通り、CAS210は、前に実行された分析エンジン221、222、223によって提供されるメタデータを加えた元の文書(分析の主題)を含むことができる。このメタデータは、元の文書の諸要素に関する注釈を含むことができる。分析エンジン220へのCAS210の入力は、メモリ内に常駐し、遠隔で管理し、他のコンポーネントによって共用することができる。
好ましくは、アノテータが調べる必要がある辞書などのすべての外部リソースは、アノテータ・コンテキスト・インターフェースを介してアクセスされる。したがって、データの正確な物理的表明は、リソース・データをキャッシュするかどうかおよびそれをキャッシュする方法に関する決定のように、デプロイヤ(deployer)によって決定することができる。
好ましい一実施形態では、アノテータ開発者は、入力要件、出力仕様、および外部リソースの依存関係を識別するXML記述子を完成する。アノテータ・オブジェクトおよび記述子が与えられると、このフレームワークの分析エンジン・ファクトリは完全な分析エンジン220を返す。
分析エンジン・アセンブラについて説明する。分析エンジン・アセンブラは、コンポーネント分析エンジンの宣言調整によりアグリゲート分析エンジンを作成する。設計目標は、アセンブラがコードを作成せずにアグリゲート・エンジンを構築できるようにすることである。
分析エンジン・アセンブラは、その機能に関して使用可能なエンジンを考慮し、フロー制約を宣言的に記述する。これらの制約は、選択したコンポーネント・エンジンのIDとともに、アグリゲート・エンジンのXML記述子に収集される。このアセンブラはフレームワークの分析エンジン・ファクトリ・オブジェクトにこの記述子を入力し、アグリゲート分析エンジンが作成されて返される。
分析エンジン・デプロイヤについて説明する。分析エンジン・デプロイヤは、分析エンジンとそれが必要とするリソースを特定のハードウェアおよびシステム・ミドルウェア上にどのように配備するかを決定する。UIMA100は好ましくは、コンポーネントをどのように配備するかに関してそれ自体の指定を提供せず、特定のタイプのミドルウェアまたはミドルウェア製品の使用を義務づけることもない。その代わりに、UIMA100は、その要求を満たすミドルウェアを選択するためのフレキシビリティをデプロイヤに提供する。
下位レベルのシステム・ミドルウェアの絶縁
人間言語技術(Human Language Technologies:HLT)アプリケーションは、様々な要件を他のタイプのアプリケーションと共用することができる。たとえば、このアプリケーションはスケーラビリティ、セキュリティ、およびトランザクションを必要とする可能性がある。アプリケーション・サーバなどの既存のミドルウェアはこれらの要求のうちの多くを満たすことができる。これに対して、HLTアプリケーションは、デスクトップ・コンピュータまたはPDA上に配備できるように小さいフットプリントを持つ必要がある場合もあれば、それ自体のミドルウェアを使用する他のアプリケーション内に埋込み可能である必要がある場合もある。
UIMA100の設計目標の1つは、任意のタイプのミドルウェア上での分析エンジン221、222、223の配備をサポートし、これらの関心事からアノテータ開発者および分析エンジン・アセンブラを絶縁することである。これは、サービス・ラッパ(Service Wrappers)および分析構造ブローカ320の使用によって行われる。分析エンジン・インターフェースは、入力および出力がCAS210を介して行われることを指定するが、CAS210がコンポーネント分析エンジン間でどのように転送されるかを指定するわけではない。サービス・ラッパは特定の配備に必要なCASの直列化および非直列化を実現する。アグリゲート分析エンジン300内では、種々のサービス・ラッパを使用してコンポーネントを配備することができる。分析構造ブローカ320は、これらのコンポーネントがどのように配備されるかにかかわらず、これらのコンポーネント間でCAS210を転送するコンポーネントである。
CAS210は、疎結合または密結合のいずれかであると見なすことができる。疎結合のCAS210は、2つ以上のメモリ上に分散される1つのタイプ・システムを表現するものであり、たとえば、UIMA100のネットワーク化アプリケーション内で検出することができる。この場合、アノテータ410〜470などのアノテータは2つ以上のメモリ内で機能する。密結合のCAS210は、1つのメモリ(または1台のマシン)内に位置する1つの定義済みタイプ・システムを表現するものであり、その場合、アノテータ410〜470などのアノテータは同じメモリを共用する。
新しいタイプのミドルウェアをサポートするために、好ましくは新しいサービス・ラッパと分析構造ブローカ320の拡張機能が開発され、フレームワークにプラグインされる。分析エンジン200自体は決して修正する必要はない。
たとえば、ウェブ・サービスとメッセージ・キューイング・インフラストラクチャ両方の上にあるサービス・ラッパおよび分析構造ブローカ320が実現されている。各実現例は、配備シナリオの詳細に関する種々の態様およびフィーチャを伴う。一般に、ウェブ・サービスは、XMLメッセージを交換することによって通信するアプリケーションを含む。
一般に、UIMA100は、ユーザ・インターフェース(UI)をアプリケーション固有のコンポーネントとして扱う。アプリケーションがどのように入力を受け入れ、結果を通信し、ユーザとダイアログするかは、アプリケーション170によって決定される。
IV.システム・インターフェース
次に、UIMA100の最上位レベルのコンポーネント間の様々なインターフェースについて説明する。図26は図1と同様の図を示しているが、図26はUIMA100のインターフェースの諸態様をさらに含み、これらはひとまとめにしてテキスト・インテリジェンス・システム108として示されている。アプリケーション170と検索エンジン110との間のインターフェース115の諸態様のより詳細な様子は図27に示されている。他のインターフェースと、そのインターフェースによって運搬されるデータ・フローも示されている。たとえば、アプリケーション170と文書ストア120との間のインターフェース125と、アプリケーション170とTAE130との間のインターフェース135と、アプリケーション170と知識アクセス(構造化情報)180との間のインターフェース185と、アプリケーション170と、知識ディレクトリ・サービス106およびテキスト分析ディレクトリ・サービス107を含むディレクトリ・サービス105との間のインターフェース175が存在する。
インターフェース115の記述を助けるために、いくつかの条件を提示する。たとえば、ビューは複数のトークン化をサポートし、スパンは1つのビュー内の範囲に注釈を付けるために使用する。スパンベースの照会の一例は、「タイトル」フィールドが「抑制する」という関係を含んでいる文書を見つけるための照会を含む。例示的な結果は、「Ibuprofen reduces the effects of aspirin on vascular dilation」を含む文書190Aになるだろう。好ましい実施形態では、スパンベースの照会を定義するために様々な照会言語を使用することができる。好ましくは、アプリケーション170は、前処理およびランタイム(または照会時間)中に検索エンジン110を使用することができる。
前処理中にアプリケーション170は、テキスト・インテリジェンス・システム108を介してインターフェース125により文書ソース120から文書を検索し、その文書をインターフェース135によりTAE130のうちの1つまたは複数に渡すことができる。TAE130は、元のテキストや他のアグリゲート構造(たとえば、候補用語集項目、要約、またはカテゴリ化)内のトークンのスパンについて注釈の形の分析構造として結果を返す。この結果により、アプリケーション170は、発見したエンティティが照会時間中に容易にアクセス可能になるように、そのエンティティの全部または一部を検索エンジン110用の索引に追加することを選択することができる。
検索エンジン110はビューを識別するための手段をインターフェース115を介してアプリケーション170に提供し、アプリケーション170はインターフェース115を介して索引付けのために指定のフォーマットでエンティティを検索エンジン110に渡す。テキスト分析と検索の強力な統合をサポートするために、UIMA100は、検索エンジン110がスパンに関する注釈に索引を付ける能力を提供することを期待する。たとえば、「$US President」というセマンティック・エンティティを検討すると、検索エンジン110の索引付けインターフェースによりアプリケーション170は「John Quincy Adams」などのトークンのスパンに関して「$US President」というセマンティック・エンティティに索引を付けることができる。
照会時にはアプリケーション170は、ブール照会を指定するために検索エンジン110の照会インターフェース115を使用する。テキスト分析と検索の強力な統合をサポートするために、UIMA100は、検索エンジン110がスパンに関する照会言語を提供することを期待し、このインターフェースによりアプリケーション170は照会を実行することができる。たとえば、照会は、タイトル(注釈付きスパン)が米国大統領(注釈付きスパン)を含むすべての文書をシークするかまたは文書の要約(注釈付きスパン)が「抑制する」という関係(注釈付きスパン)を含み、その関係が「in vitro」というテキストを含む修飾子(注釈付きスパン)を含むすべての文書をシークすることができる。
TAE130と検索エンジン110との間のインターフェース135に移行すると、好ましくは、TAE130にはアプリケーション170によって1つまたは複数の文書が供給される。好ましくは、TAE130は文書を突き止めるために検索エンジン110を使用しない。TAE130は、アプリケーション170が索引を付けるためにシークする可能性のある注釈を生成するが、TAE130は何に索引を付けるかを決定せず、アプリケーション170の索引付け機能に対して直接通信することもない。
好ましくは、アプリケーション170とTAE130との関係は、どちらも相手の状態に影響を及ぼさないようなものになっている。アプリケーション170は、好ましくは、TAE130を呼び出すために結果全体の状態を管理するためのプログラミング・モデルおよび演算子を含む。共用/更新可能状態は好ましくは、TAE130によって直接ではなく、UIMインフラストラクチャによって管理される。たとえば、適切なルールの1つは、「TAEとアプリケーションの間には共用グローバル変数は一切存在しない」ということになる可能性がある。
V.2レベル検索
好ましくは、UIMA100は、2レベル評価プロセスまたはモデルを使用する検索技法によって支援される。このプロセスについて例示的に説明するが、このプロセスは本明細書において本発明を制限するものと解釈すべきではない。
一部の実施形態では、この評価モデルは、あらゆる索引語が1つのポスティング・リストに関連付けられている従来の逆索引を想定している。このリストは、索引語を含む集合内の各文書ごとに1つの項目を含む。この項目は、その文書固有の正のIDであるDIDだけでなく、文書内の用語のオカレンスの回数、オカレンスのオフセットなど、適用可能なスコアリング・モデルが必要とするその他の情報を含んでいる。好ましくは、ポスティング・リストは、文書IDの増加順に順序が付けられている。
プログラミングの観点から見ると、このような逆索引に関する複合照会をサポートするために、オブジェクト指向手法を使用することが好ましいと思われる。この手法を使用して、そのポスティング・リストについて順次反復することができる基本反復子1125オブジェクト(「ストリーム・リーダ」オブジェクト)に各索引語が関連付けられる。そのうえ、反復子1125は、ポスティング・リスト内の所与の項目にスキップすることができる。特に、この反復子は、それに関してDIDidになる最初のポスティング要素を返すnext(id)というメソッドを提供する。このような文書がまったくない場合、用語反復子1125は、索引内のすべての既存DIDより大きいIDであるLastIDを備えた特殊ポスティング要素を返す。
ブール演算子およびその他の演算子(または述部)は、基本反復子1125から構築された複合反復子1125に関連付けられる。たとえば、演算子A(OR)Bの場合のnextメソッドは以下の関係で定義される。
Figure 2004362563
(WAND)演算子:
本明細書に開示されている2レベル手法では、Weak(AND)またはWeighted(AND)を表し、便宜上、WANDとして参照されるブール述部を使用する。WANDは、引き数として、ブール変数X1、X2、・・・、Xkのリストと、関連する正の(positive)重みw1、w2、・・・、wkのリストと、しきい値θとを取る。定義によれば、
Figure 2004362563

である場合に、(WAND)(X1, w1, ...Xk,wk, θ)は真になる。ここで式中のxiはXiの標識変数であり、Xiが真であればxi=1であり、そうでなければxi=0である。
このWANDは、
Figure 2004362563
および
Figure 2004362563
を介して(AND)および(OR)を実現するために使用できることが認識できる。
(WAND)を表現するために他の規則を使用することができ、たとえば、しきい値は最初の引き数として現れる可能性があることに留意されたい。
したがって、しきい値を変化させることにより、(WAND)は実質的に(OR)関数から実質的に(AND)関数に移ることができる。xが任意の単調増加関数となってしきい値より大きくなることを要求するか、または特に任意の単調ブール公式が真になることを要求することにより(1)の条件を置換することにより、(WAND)を一般化することができることに留意されたい。
図28はWANDしきい値とパターンの関係を示しており、最後のパターンに重み2530が割り当てられるまで、所与のパターンに重み2510が割り当てられ、第2のパターンに所望の重み2520が割り当てられる。しきい重み2550を生成するために、割当て2510、2520、2530がひとまとめにして使用される。WAND技法2800の使い方の要約は図31に提示されている。図31では、第1のステップは、初期設定すること2810と、次にパターンの加重合計を評価すること2820と、その合計がしきい値より大きいかどうかを判定すること2830とを含む。その合計がしきい値以下である場合、ステップ2880でポインタが進められ、ステップ2820でもう一度、パターンの加重合計が評価される。その合計がしきい値より大きい場合、このメソッドはステップ2840で詳細な評価を実行し、ステップ2850でその値がヒープ(後述するように、上位n個の結果を追跡するためにサイズnのヒープ)内の最小値より大きいかどうかの判定を実行する。大きくない場合、制御はステップ2880に戻され、そうではない場合、ステップ2860で結果がヒープに挿入され、ステップ2870でしきい値あるいは重みが修正され、制御がステップ2880に戻される。
一般に、(WAND)は複数文書について反復する。何らかの点でWANDはプロシージャ呼出しと見なすことができるが、適切なメソッドおよび状態を備えたWF反復子のサブクラスであるとも見なさなければならない。このため、(WAND)は現行文書ならびにその他の属性を表現する「カーソル」を有する。
図28に示すように、WANDへの引き数はパターンと重みである。パターンpat1、pat2、・・・は、反復子1125として実現されたWFによってサポートされる典型的なパターンである。好ましくは、各パターンは、反復中に必ずしも同じにならない可能性のある関連の正の重みwを有する。また、しきい重みw0も存在する。
動作時に、WAND(w0,pat1,w1,pat2,w2,...)は、一致したパターンに関する重みの合計がw0より大きくなるように、pat1、pat2、・・・に十分一致する次の文書(現行カーソルに関して)を返す。
より一般的に、pat1、pat2、・・・のそれぞれは、文書のコンテンツのブール関数を表現する。その場合、動作時に、WAND(w0,pat1,w1,pat2,w2,...)は、一致したパターンに関する重みの合計がw0より大きくなるように、pat1、pat2、・・・を十分満足する次の文書(現行カーソルに関して)を返す。
上記の記述に基づいて、pat_iが文書190Aのコンテンツの任意のブール関数を表現する場合、返された文書は、満足した関数pat1、pat2、・・・に関する重みの合計がw0より大きくなるように、pat1、pat2、・・・を十分満足することが分かる。
重みの合計は必ずしもその文書のスコアではない。好ましくは、重みの合計は単純にプルーニング(pruning)・メカニズムとして使用する。実際の文書スコアは、すべての正規化要因とその他の同様の属性を考慮に入れて、ランキング・ルーチンによって計算される。好ましくは、合計の使用は任意であり、その代わりにどの増加関数を使用することもできる。
プルーニング重みとスコアが同じであると想定しながら、以下の例について検討する。
照会が<cat dog fight>であると想定する。
Figure 2004362563
上位100個の文書が所望されている。何らかの時点でスコア>=30である100個の文書が存在する場合、WAND(30, <cat>, 3, <dog>, 2, <fights>, 4, LA(<cat>, <dog>), 10,LA(<cat>, <fights>), 14, LA(<dog>, <fights>), 12)であり、LA(X,Y)がX NEAR Yを実現する呼出しが行われる。
実現に関しては、(WAND)の使用はANDの実現例に多少似ている。一部の実施形態では、「ジッピング」(zipping)のルールは以下のようになる可能性がある。
完全WAND反復子1125は、現行一致を表現するCUR_DOCというカーソルを有する。CUR_DOCを進めることが望ましい。
各パターンpat_iは、それがCUR_DOCを上回る位置で一致する場所を表現する関連のnext_doc_iを有する。
next_doc_i_1<=next_doc_i_2<=next_doc_i_3<=・・・になるように、すべてのnext_doc_iをソートする。
kは、w_i_1+w_i_2+・・・+w_i_k>w_0になるような最小索引とする。その場合、CUR_DOCをnext_doc_i_kに進め、他のすべてのカーソルをCUR_DOC以上の位置に進めることが可能であると主張する。次に、CUR_DOCにある十分な重みが使用可能である場合、CUR_DOCが返される。そうではない場合、もう一度、これらの位置がソートされる。
この動作を理解するために、パターンpat_iがnext_doc_iの後ろのあらゆる単一文書に一致すると想定する。この楽観的想定でも、next_doc_i_kより前のいかなる文書も十分な重みを持っていない。
以下の所見を示すことができる。
1.正規のAND(X,Y,Z)はWAND(3,X,1,Y,1,Z,1)とまったく同じである。2つの反復子1125は、まったく同じジャンプを行って、まったく同じ位置のリストにより内部でジッピングすることになる。
2.正規のOR(X,Y,Z)はWAND(1,X,1,Y,1,Z,1)とまったく同じである。2つの反復子は、まったく同じジャンプを行って、まったく同じ位置のリストにより内部でジッピングすることになる。
3.あらゆる文書が一致しなければならないという表現であるフィルタ式Fを使用する場合、これはWAND(large_number+threshold,F,large_number,pat1,w1,...)として実現することができる。
実際のスコアは単なる合計ではないので、プルーニング式を設定するために様々な技法を使用することができる。これらの技法は好ましくは、正規化に加えてTFを考慮に入れる。
スコアリング
文書の最終スコアは、その照会に対する文書のテキスト類似性に基づくテキスト・スコアを含む。この最終スコアには、ウェブ・ページの接続性、科学資料の引用カウント、Eコマース品目の目録などの他の照会独立(照会非依存)要因を含むが、解説を簡単にするために、このような照会独立要因はまったくないと想定する。さらに、付加的スコアリング・モデルが存在すると想定する。すなわち、各文書のテキスト・スコアは、その文書に属するすべての照会用語の寄与率(contribution)を合計することによって決定される。したがって、照会qに関する文書dのテキスト・スコアは以下のようになる。
Figure 2004362563
たとえば、tf×idfというスコアリング・モデルの場合、αtは照会に含まれる用語tのオカレンスの回数(発生数)に索引内のtの逆文書頻度(inverse document frequency)(idf)を掛けた関数であり、w(t,d)はd内のtの用語頻度(term frequency)(tf)を文書の長さ|d|で割った関数である。加えて、各用語は、以下のように、いずれかの文書スコアに対するその最大寄与率の上界UBtに関連付けられていると想定する。
Figure 2004362563
したがって、ある文書内に現れるすべての照会用語の上界を合計することにより、その文書の照会依存スコアの上界を以下のように決定することができる。
Figure 2004362563
照会用語は、単純用語、すなわちそれに関する静的ポスティング・リストが索引に記憶される用語、または複合用語、すなわちそれに関するポスティング・リストが照会評価中に動的に作成されるフレーズなどの用語にすることができることに留意されたい。このモデルは単純用語と複合用語とを区別せず、各用語は上界を提供し、実現のために各用語はポスティング反復子1125を提供する。これらの条件が与えられると、予備スコアリングは各文書dごとに以下のような評価を伴う。
Figure 2004362563
式中、Xiは文書d内の照会用語iの存在に関する標識変数であり、しきい値θは以下に説明するアルゴリズムの間に変化する。(WAND)が真であると評価された場合、文書dは完全評価を受ける。しきい値θは好ましくは、それまでに見つかった上位n個の結果のうちの最小スコアmに基づいて、アルゴリズムによって動的に設定される。nは要求した文書の数である。
しきい値が大きくなるほど、スキップされる文書が増加し、したがって、完全スコアが計算される文書は少なくなる。寄与率の上界が正確である場合、ある文書の最終スコアがその予備上界程度になることは容易に分かる。したがって、θ=mであるWANDによってスキップされるすべての文書は、同じ付加的スコアリング・モデルを使用する他の代替方式による上位スコアリング文書セット内に入らないだろう。
しかし、後で説明するように、(a)事例によっては、各用語の寄与率について近似上界のみが使用可能になる可能性があり、(b)そのスコアは照会独立要因を含む可能性があり、(c)実行される完全評価を少なくするために、しきい値を大きくすることが好ましい可能性がある。したがって、実際には、θ=F*mと設定することが好ましく、Fはその集合について正のエラーと負のエラーのバランスを取るために選択したしきい係数(threshold factor)である。これを効率よく実現するために、照会用語に関連する反復子の上に(WAND)反復子を配置することが好ましい。これについては以下に詳述する。
一般に、上記の手法は付加的スコアリングに制限されず、(WAND)の定義内の任意の単調関数を使用することができる。すなわち、唯一の制約事項は、好ましくは照会用語の存在によって文書の全スコアが減少されないことである。これは、すべての典型的な情報検索(IR)システムに該当する。
WAND反復子の実現
(WAND)述部は、完全評価のための候補文書を反復して見つけるために使用することができる。WAND反復子は、この述部を満足する文書を素早く見つけることができるプロシージャを提供する。
好ましくは、WAND反復子は、図29の疑似コードに示されているinit()関数を呼び出すことによって初期設定される。このメソッドは、照会用語のアレイを入力として受け取り、考慮すべき現行文書(curDoc)をゼロに設定する。また、このメソッドは、ポスティング・リスト内の最初のポスティング要素になるように現行ポスティングposting[t]も初期設定する。図29のinit()関数を呼び出した後、このアルゴリズムは、完全評価のための次の候補を取得するためにWANDのnext()メソッドを繰り返し呼び出す。next()関数は、しきい値θを入力として取り、その近似スコアがθより大きい次の文書を返す。その近似スコアがしきい値より小さい文書はスキップされる。図30は、next()関数を実現するための非制限的な疑似コードを示している。
WAND反復子はその実行中に以下のように2つのインバリアント(invariants)を維持する。
1.DIDcurDocであるすべての文書はすでに候補と見なされている。
2.どの用語tについても、tを含み、DID<posting[t].DIDである文書はすでに候補と見なされている。
init()関数はこれらのインバリアントを確立することに留意されたい。WAND反復子は、それが返すべき候補文書を見つけるまで、個々の用語反復子を繰り返し進める。これは、すべての反復子を一斉に次の文書に進め、DIDの順に候補文書のスコアを近似し、しきい値と比較することにより、単純素朴に実行しうる。しかし、このメソッドは非常に効率が悪いと思われ、いくつかのディスクI/Oと関連の計算を必要とするだろう。本明細書に開示されているアルゴリズムは、next()演算の数と近似評価の数を最小限にするように最適化される。これは、まずその現行ポスティングのDIDの増加順に照会用語をソートすることにより実施される。次に、このメソッドは、ピボット用語、すなわち、その順序内で、それを含みそれより先行するすべての用語の上界の累積合計が所与のしきい値を超えるような最初の用語を計算する(図30の行5およびその次を参照)。ピボットDIDは、候補になる可能性のある最小DIDである。このような用語がまったくない場合(すべての用語上界の合計がしきい値未満であることを意味する)、反復子は停止し、NoMoreDocsという定数を返す。
ピボット位置の意義を理解するために、init()後のnext()の最初の呼出しについて検討する。すべての用語がその現行ポスティングに続くすべての文書内に存在する場合でも、ピボット文書より先行する文書はいずれも、それがしきい値を超えるようになるのに十分な総寄与率を持っていない。ピボット変数は、ピボット用語の現行ポスティングに対応するDIDに設定される。このピボットが、最後に考慮した文書(curDoc)のDID以下である場合、WANDはピボット用語より先行する用語を選び出し、curDocを越して反復子を進めるが、その理由は、curDocより先行するすべての文書が(インバリアント1によって)すでに考慮されており、したがって、次にシステムはより大きいDIDを備えた文書を考慮しなければならないことである。これによりインバリアント2が保持されることに留意されたい。ピボットがcurDocより大きい場合、ピボット文書に対する寄与率の合計がしきい値より大きいかどうかの判定が行われる。2通りのケースがある。すなわち、ピボット用語より先行するすべての用語の現行ポスティングDIDがピボット文書に等しい場合、ピボット文書はしきい値より大きい累積上界を備えた1組の照会用語を含み、このため、next()はcurDocをそのピボットに設定し、完全評価のための候補としてこの文書を返す。そうではない場合、ピボット文書は先行するすべての用語を含む場合もあれば含まない場合もあり、すなわち、十分な寄与率を有する場合もあれば有していない場合もあり、WANDはこれらの用語のうちの1つを選択し、ピボット位置以上の位置までその反復子を進める。
next()関数は、curDoc以下のDIDを備えたすべての文書がすでに候補として考慮されているというインバリアント(インバリアント1)を維持することに留意されたい。定義によるピボット用語はDID順序内でその累積上界がしきい値を超える最初の用語であるので、そのDIDがピボットのDIDより小さい他の文書が有効な候補になることは不可能である。このため、ピボットのDIDより小さいDIDを備えたすべての文書は、ピボット用語より先行する用語のみを含むことができ、したがって、そのスコアに関する上界は厳密にしきい値未満になる。curDocは成功の場合、すなわち、その順序内で最初にある新しい有効候補を見つけた場合に、ピボット文書まで進められるだけなので、next()はそのインバリアントを維持することになる。
好ましくは、next()関数は、sort()、findPivotTerm()、pickTerm()という3つの関連関数を呼び出す。sort()関数は、その現行DIDの非減少順に用語をソートする。sort()に対する連続呼出しの間に1つの用語だけがその反復子を進めるので、いずれの段階でも用語を完全にソートする必要はないことに留意されたい。このため、適切なデータ構造を使用することにより、ソートした順序は1つの用語のみの位置を修正することによって維持される。第2の関数であるfindPivotTerm()は、ソートした順序内で、それより先行しそれを含むすべての用語の累積上界が所与のしきい値を超える最初の用語を返す。第3の関数であるpickTerm()は、1組の用語を入力として受け取り、その反復子が進められる用語を選択する。最適選択戦略は、最大予想スキップを生成することになる用語を選択する。用語反復子をできるだけ進めると、考慮すべき文書の数が削減され、このため、検索すべきポスティングの数も削減される。この方針は完全に評価される1組の文書に対し何も影響を及ぼさないことに留意することができる。そのスコア上界がしきい値より大きい文書は、いずれの戦略でも評価されることになる。したがって、pickTerm()方針が良好であればパフォーマンスが改善される可能性があるが、それは精度に影響を及ぼすものである。一実施形態のpickTerm()は、最も稀な用語が最大スキップを生成することになると想定して、最大逆文書頻度を備えた用語を選択する。他のpickTerm()方針も使用することができる。
これについては、K. Beyer、R. Lyle、S. Rajagopalan、およびE. Shekitaにより本出願と同一日付で「Pivot Join: A runtime operatorfor text search」という名称で出願され、本願譲受人に譲渡された米国仮出願第60/474877号に関係がある。たとえば、単調ブール公式は、前述の通り、明示的ではない可能性があるが、単調ブラック・ボックス評価によって示される可能性がある。
WANDしきい値の設定
ユーザが所与の照会について上位n個のスコアリング文書を検索したいと希望すると想定する。このアルゴリズムは、上位n個の結果を追跡するためにサイズnのヒープを維持する。WAND反復子のinit()関数を呼び出した後、このアルゴリズムは新しい候補文書を検索するためにnext()関数を呼び出す。WAND反復子によって新しい候補が返されると、この文書はシステムのスコアリング・モデルを使用して完全に評価され、その結果、この文書に関する精密なスコアが生成される。このヒープが一杯ではない場合、候補文書はこのヒープに挿入される。このヒープが一杯であって、新しいスコアがヒープ内の最小スコアより大きい場合、新しい文書はヒープ内に挿入され、最小スコアを備えた文書を置換する。
WAND反復子に渡されるしきい値は、現在ヒープ内にあるすべての文書の最小スコアに基づいて設定される。このしきい値は、候補と見なされる文書であって完全評価ステップに渡される文書について超えなければならない下界を決定することを想起されたい。
初期しきい値は照会タイプに基づいて設定される。たとえば、OR照会またはフリーテキスト照会の場合、初期しきい値はゼロに設定される。照会用語のうちの少なくとも1つを含むいずれかの文書の近似スコアは、このしきい値を超えるものと思われ、したがって、候補として返されることになるだろう。このヒープが一杯であり、より現実的なしきい値が設定されると、高いスコアをもたらすために十分な数の用語を有する文書のみが完全に評価される。AND照会の場合、初期しきい値はすべての用語上界の合計に設定することができる。すべての照会用語を含む文書のみが、候補文書と見なされるために十分な高さの近似スコアを有することになるだろう。
初期しきい値は、必須用語(「+」が前に付いているもの)に対処するためにも使用することができる。このような用語の上界は、他のすべての用語の上界の合計よりかなり大きい何らかの巨大な値Hに設定することができる。初期しきい値をHに設定することにより、必須用語を含む文書のみが候補として返されることになる。照会がk個の必須用語を含む場合、初期しきい値はk・Hに設定される。
そのうえ、完全評価のための候補文書の選択の点でより便宜的なものにすることにより評価プロセスを迅速化するために、このしきい値を使用することができる。この場合、しきい値は好ましくはヒープ内の最小スコアより大きい値に設定される。しきい値を増加することにより、アルゴリズムは、近似ステップ中に文書を動的にプルーニングし、したがって、完全に評価する全般的候補文書をより少なくすることができるが、可能性はより高くなる。動的プルーニングの代価はいくつかの高スコアリング文書を見落とす危険性であり、したがって、結果は正確なものであることが保証されない。しかし、多くの場合、これは非常に効果的な技法である可能性がある。たとえば、所与の照会時に費やされる最大時間を左右するシステムは、時間制限を超えそうなときにしきい値を増加することができ、その結果、より大きいスキップを施行して、最終結果リストを作成する可能性が高い文書のみを完全に評価する。実験結果は、動的プルーニングが効率ならびにこの技法を使用する照会評価の有効性にどのように影響を及ぼすかを示している。
用語上界の計算
WAND反復子では、各照会用語tがいずれかの文書スコアに対するその寄与率に関する上界UBtに関連付けられることを要求している。文書スコアに関する上界は、その文書が含むすべての用語の上界を合計することによって計算されることを想起されたい。したがって、その用語上界が正確である場合、すなわち、∀t, UBt > αtmaxd w(t,d)である場合、ある文書のスコアに関する上界も正確であり、すなわち、その最終スコアより大きくなる。この場合、アルゴリズムがいずれかの段階でのしきい値をこれまでに見られた最小文書スコアに設定すると想定すると、この2レベル・プロセスが正しいランキングおよび正確な文書スコアを返すことが保証される。
単純用語について真の上界を見つけることは簡単なことである。このような用語は、索引に明示的に記憶されるポスティング・リストに直接関連付けられる。上界を見つけるために、まず、その用語のポスティング・リストを詳しく検討し、各項目ごとに、この項目に対応する文書のスコアに対するこの用語の寄与率を計算する。次に、上界はすべてのポスティング要素に関する最大寄与率に設定される。この上界は、その用語のプロパティの1つとして索引に記憶される。
しかし、偽の正のエラーを回避するために、単純用語の場合でも、上界推定に対し特別な注意を払わなければならないということになる。さらに、フレーズまたは近接対などの複合照会用語の場合、用語上界は好ましくは、そのポスティング・リストが照会評価中に動的に作成されてから推定される。
以下の説明では、複合用語に関する上界を推定するための方式だけでなく、単純用語の上界推定のための代替方法について説明する。単純用語の場合、用語tに関する上界は、UBt = C・αtになるように近似値が取られる。αtは用語idfと照会内の用語頻度によって決定されることを想起されたい。C>1は、すべての用語に均一に使用される定数である。この推定では、文書のスコアに対する特定の用語の寄与率に通常影響を及ぼす他の要因を無視する。このような要因としては、文書内の用語頻度、オカレンスのコンテキスト(たとえば、文書タイトル内)、文書の長さなどを含む。
この推定の恩恵はその簡潔さである。その代償は、候補文書の計算した上界がその文書の真のスコアより小さくなる可能性があり、その結果、偽の負のエラーが発生することである。上位スコアリング文書は予備評価ステップに合格しない可能性があり、したがって、完全に評価されないので、このようなエラーの結果、正しくない最終ランキングが得られる可能性がある。しかし、偽の負のエラーは、ヒープが一杯であって、しきい値が高い値に設定された場合にのみ発生する可能性があることに留意されたい。
パラメータCは、偽の正のエラーと偽の負のエラーとのバランスを取るために、文書の所与の集合について微調整することができる。Cが大きくなるほど、予想される偽の正のエラーが多くなり、したがって、システム効率が低下する。Cを減少させると、その結果、より多くの偽の負のエラーが生成され、したがって、システムの有効性が低下する。実験データは、システム有効性が損なわれる前にCを比較的小さい値に設定できることを示している。
複合用語に関する上界の推定
前述の通り、照会用語に関する上界は、その逆文書頻度(idf)に基づいて推定される。単純用語のidfは、そのポスティング・リストの長さから容易に決定することができる。そのように索引に明示的に記憶されない複合用語のidfは好ましくは、そのポスティング・リストが照会評価中に動的に作成されてから推定される。次に、2通りのタイプの複合用語のidfを推定するためのプロシージャについて説明する。このプロシージャは、他のタイプの複合用語に拡張することができる。
フレーズ
フレーズは、通常、引用符で囲まれた照会用語のシーケンス、たとえば、「John Quincy Adams」である。文書は、フレーズ照会に現れるのと同じ順序でフレーズ内のすべての用語を含む場合にのみ、この照会を満足する。動的フレーズ評価をサポートするために、個々の用語のポスティングが文書内の用語のオフセットも含むことに留意されたい。そのうえ、フレーズ評価は、索引にストップワードを記憶することを必要とする。
各フレーズごとに反復子がWANDの外部に構築される。WANDの内部では、フレーズは通常、稀なものなので、フレーズは「出現必須(must appear)」用語として扱われ、すなわち、照会フレーズを含む文書のみが検索される。この方法は、そのidfにかかわらず、その上界を巨大な値Hに設定することによって必須用語を処理することに想起されたい。加えて、しきい値もHに初期設定される。したがって、そのフレーズを含む候補文書のみが詳細な評価ステップに合格することになる。
字句類似性
字句類似性(Lexical affinity:LA)は、小さいサイズのウィンドウ内で互いにきわめて接近して見つかった用語である。LA用語のポスティング反復子は、両方のLA用語のポスティング反復子を入力として受け取り、きわめて接近して両方の用語を含む文書のみを返す。LA(t1,t2)の文書頻度を推定するために、LAのポスティング・リストがその個々の用語のポスティング・リストのサブシーケンスであるという事実が利用される。これまでに詳しく検討したその用語の部分ポスティング・リスト内でのLAの出現の回数がカウントされ、ポスティング・リスト全体に外挿される。
より具体的には、LAの文書頻度はdf0(LA) = min(df(t1),df(t2))に初期設定され、追加のk個の文書を詳しく検討した後で繰り返し更新される。p(t1)は用語tiのポスティング・リストであり、p’(ti)はこれまでに詳しく検討したその部分ポスティング・リストであるとする。#(LA|p’(ti))はp’(ti)内のLAを含む文書の数であるとする。tiのポスティング・リスト全体でLAを含む文書の数は以下の外挿によって推定することができる。
Figure 2004362563
段階nにおけるLAの文書頻度の更新ルールは以下のようになる。
Figure 2004362563
収束速度は用語ポスティング・リストの長さによって決まる。LAの文書頻度推定は数回程度の反復の後で素早く収束することが分かっている。
結果
以下に示すのは、現在好ましい2レベル照会評価プロセスを評価するために実行された実験から得られた結果の説明である。これらの実験にはJava(R)検索エンジンを使用した。169万ページのHTMLページからなる10GBのデータを含む文書の集合に索引を付けた。短い照会と長い照会の両方を実現した。この照会は集合内のトピックから構築した。短い照会の構築のためのトピック・タイトル(照会当たり平均2.46ワード)を使用し、タイトルは長い照会の構築のためのトピック説明(照会当たり平均7.0ワード)と連結した。加えて、結果セットのサイズ(ヒープ・サイズ)を変数として使用した。ヒープが大きくなるほど、結果セットを入手するために必要な評価の数が増加する。
また、独立パラメータC、すなわち、文書スコア上界を入手するために照会用語上界の合計に掛ける定数も変化させた。WAND反復子に渡されるしきい値パラメータと文書のスコア上界とを比較することを想起することができる。その上界が所与のしきい値より大きい場合のみ、文書が完全に評価される。したがって、Cはパフォーマンスと精度との兼ね合いを左右し、Cが小さいほど、精度の低下という犠牲を払って、完全に評価される文書の数が少なくなり、逆の場合も同様である。実際的な理由で、Cを変化させる代わりにCを特定の値に固定する場合もあり、真のしきい値に掛けるしきい係数Fの値を変化させて、WAND反復子に渡すことができる。係数CはFに反比例し、したがって、Fを変化させることはCを変化させることと等価であり、反対の効果が得られる。すなわち、Fの値が大きい場合、その結果、完全評価の数が減少し、精度の損失が予想される。Fをゼロに設定すると、WANDに渡されるしきい値はいつでもゼロになり、したがって、照会用語のうちの少なくとも1つを含むすべての文書は候補と見なされ、完全に評価される。Fを無限値に設定すると、このアルゴリズムは、ヒープが一杯になるまで(θ=0である間)文書を完全に評価することになるだけである。その場合、θ・Fがすべての照会用語上界の合計より大きくなるので、文書の残りはしきい値を超えない。
しきい係数の値を変化させると、以下のパラメータを測定することができる。(a)照会当たりの完全評価の平均数。これは、検索パフォーマンスに影響を及ぼす主要パラメータである。明らかに、完全評価が増えるほど、システムの速度は遅くなる。(b)10の精度で測定した検索精度(P@10)および平均精度(MAP)。(c)偽の負のエラーがまったくない実行(基本実行)から得られた検索結果セットと、負のエラーを伴う実行(切り詰めた実行)から得られた結果セットとの差。完全エバリュエータが一般的であり、これが最終スコアを割り当てるので、文書が両方の実行において同一スコアを受け取ることに留意することができ、このため、基本セットBおよび切り詰めたセットP内の共通文書の相対順序が維持される。したがって、各実行がk個の文書を返す場合、切り詰めた実行によって返される最上位j個の文書は、何らかのjがk以下である場合に基本セットに入り、同じ相対順序になることになる。
2つの結果セット間の差は2通りの方法で測定した。まず、以下の公式によって与えられる相対差を使用して、その差を測定した。
Figure 2004362563
第2に、すべての文書が等しく重要であるわけではないので、MRR(平均逆数ランク)加重を使用して2つの結果セット間の差を測定した。基本セットB内で、その順序内の位置iにあるが、切り詰めたセットPのメンバではない文書は、MRR距離に1/iを与える。この考え方は、切り詰めたセット内の欠落文書が順序内のその位置に反比例する距離に寄与するということである。MRR距離は、セット全体のMRR重みによって正規化される。したがって、以下のようになる。
Figure 2004362563
有効性および効率
第1の実験では、しきい値パラメータFの関数として完全評価の数を測定した。Fをゼロに設定すると、少なくとも1つの照会用語を含むすべての文書を返す。次に、返された候補文書のセットをすべて完全に評価する。この技法を使用して基本実行を確立したが、その場合、平均して、長い照会当たり335500個の文書を評価し、短い照会当たり135000個の文書を評価することを条件とする。図32は、長い照会と短い照会について、ヒープ・サイズが100および1000の場合のしきい係数Fの関数として完全評価の数を示している。図32は、すべての実行について、Fが増加するにつれて、評価の数が必要な文書の数(ヒープ・サイズ)に素早く収束することを示している。そのうえ、Fの関数としての平均照会時間を測定し、これが完全評価の数に高度に相関することを示した(すべての実行について相関は0.98より高い)。たとえば、長い照会で、ヒープ・サイズが100で、F=0の場合、基本実行の照会当たりの平均時間は8.41秒である。この時間は、F値が大きい場合に0.4秒まで減少する。基本実行はプルーニングがまったく行われていない極端なケースであることに留意されたい。しきい値は実際には、何らかの負のエラーが発生する前に高い値に設定することができる。これらの実験に基づいて、しきい値が約0.8である場合、その結果、完全評価の数が大幅に切り詰められ、結果リストに対する影響はまったくないことが分かる。
図33は、MRR距離測定によって測定したのと同じ実行について、切り詰めた結果と基本結果との差を示している。Fの値が小さい場合、偽の負のエラーはまったくないので、その距離はゼロになる。Fを増加すると、偽の負のエラーの数が増加し、そのため、距離が増加する。
図34は、ヒープ・サイズが1000である短い照会および長い照会についてP@10およびMAPによって測定したのと同じ実行の精度を示している。プルーニングが増すにつれて(予想通り)MAPが減少するが、P@10は、非常に大幅なプルーニングの後でのみ、短い照会について適度に減少する。長い照会の場合、P@10の変化は取るに足らないものである。たとえば、F=6.0である場合、完全評価の数が1700未満であり(初めにヒープを満たすために必要な1000回の評価よりわずか700回だけ多い)、MRRが約0.5である間、長い照会と短い照会のいずれについてもP@10はまったく影響を受けない。
積極的なプルーニングの場合でも上位結果セット内の精度が高い理由は、高いしきい値によって本質的にWAND関数がANDのようになり、すべての照会用語を含む文書のみを返すことによって説明される。その場合、これらの文書は完全に評価され、高いスコアを受け取る可能性が最も高い。スコアは2レベル・プロセスの影響を受けず、これらの文書はまったく関連のあるものであり、いずれの場合も高いスコアを受け取るので、P@10は影響を受けない。これに対して、同じく再呼出しを考慮に入れるMAPは、多くのミスにより有害な影響を受ける。
したがって、すべての照会用語を含む文書のみを明示的に評価することにより、システムは上位結果セットにおいて高精度を達成できると想定することができる。すべての照会用語上界の合計に等しいしきい値をそれに渡すことにより、このような文書のみを返すよう、WANDに容易に指示することができる(便宜上、AllTermsプロシージャという)。この手法はP@10に関して真価を示すが、多くの照会について考慮される文書が少なすぎるので、再呼出しおよびしたがってMAPが減少する。修正した戦略(TwoPassプロシージャという)は、第1の「積極的な」パスが十分な数の結果を返さない場合、用語ポスティングに関して第2のパスの使用を可能にする。具体的には、しきい値はまず、すべての用語上界の合計に設定され、累積文書の数が必要な結果の数より少ない場合、しきい値は文書のコーパス内で少なくとも1回発現するすべての照会用語の最大上界まで削減されて、それに設定され、評価プロセスが再呼出しされる。
表1は、AllTermsおよびTwoPassの実行と比較して、いくつかの異なるしきい係数を使用するWANDの結果を示している。F=0の場合、WANDは照会用語のうちの少なくとも1つを含むすべての文書を返す。この実行の場合、偽の負のエラーはまったくないので、精度は最大になる。F=1.0の場合、完全評価の数は、長い照会については20だけ、短い照会については10だけ減少し、依然としていかなる偽の負のエラーもなく、そのため、精度の低下もまったくない。F=2.0の場合、評価の数は、精度の低下という犠牲を払って4だけさらに減少する。
AllTermsは短い照会と長い照会のいずれについてもWANDに比較して大幅にP@10を改善するが、MAPは大幅に低下することが分かる。上位結果の精度のみに関心があるシステムの場合、再呼出しを無視すると、AllTerms戦略は合理的かつ効果的な選択である。TwoPassの実行は、P@10およびMAPのいずれについても著しい結果を達成する。第2のパスについては実行時間の点でわずかな犠牲が発生するが、用語ポスティングは依然として第1のパスからメイン・メモリにキャッシュされる可能性が高いので、ほとんど場合、その犠牲は取るに足らないものである。いずれの場合も、このような結果は、この方法全般および特にWAND反復子の多様性およびフレキシビリティを立証する。しきい値を変化させることにより、この演算子の「強さ」はORからANDへ制御することができる。
Figure 2004362563
上記の記述は、一度に1つの文書の手法と、第1段階のプルーニングにWAND演算子を使用する2レベル照会評価方法とを使用して、効率の実質的な増加をもたらすことができ、精度および再呼出しの損失がまったくないことを実証している。さらに、ある程度のわずかな精度の損失を許容できる場合、この増加はさらに増すことができる。
上記のように、好ましくは文書内の用語のオカレンスに関して少なくとも1つの反復子が設けられ、好ましくはどの文書が特定のプロパティを満足するかを示すための少なくとも1つの反復子が存在する。WANDは、ブール述部X_1、X_2、・・・をそれぞれ満足する文書について少なくとも1つの反復子を使用し、WAND演算子は、どの文書がWAND述部を満足するかを示すための反復子を作成する。
WAND演算子は、WAND述部を満足しないことがまだ分かっていない第1の可能な文書を表現する現行文書変数を維持し、WAND述部が現行文書変数で満足されない場合に複数の反復子のうちのどの反復子を進めるかを示すために何らかのプロシージャを使用することができる。
VI.例示的な実施形態および考慮事項
図35〜37はUIMA100の例示的な一実施形態の例証を示しており、薬品発見のための生命科学アプリケーション170に関連して示されている。この非制限的な例では、それによってUIMA100が動作可能な多くのコンポーネントおよびインターフェースのうちの一部を示している。
例示した実施形態には、アプリケーション170に固有のリソース(たとえば、MEDLINE、UMLS、バイオメディカル・データ/テストベッド)を含む言語リソース3200コンポーネントが存在する。複数のアプリケーション・サポート・コンポーネント3220と同様に、様々な関連ローダ・ユーティリティ3210も設けられている。
UIMA100は、コア・テキスト分析アノテータおよび後処理アナライザ・アノテータ220を含むように備えがなされ、それらのうちの一部は、MEDTAKMIセマンティック・アナライザおよびバイオリレーション・アナライザなどの例示的な生命科学アプリケーション170に固有のものである。このコア・テキスト分析機能は、JTalentテキスト・アナライザTAE130を使って作業する。テキスト・データ・ストア120は、DB2(TM)と、DB2(TM)ローダおよびアクセス・モジュールによって実現することができる。テキスト検索エンジン110は、Java(R)で書かれたフルテキスト検索ライブラリであるJURUに基づくものにすることができる。
図35〜37を考慮すると理解できるように、諸問題を解決する(またはアプリケーションを構築する)ためにコンポーネントをどのように調整するかは、UIMA100の重要な一態様である。1組のコンポーネントを定義することに加え、UIMA100は好ましくは、効果的なアプリケーションを構築するためにこれらのコンポーネントについて可能な統合を決定する1組の制約を含む。
文書ストア120は、文書および文書メタデータをディスク上に記憶して管理できるようにするインターフェースを備えたコンポーネントと見なすことができる。たとえば、一実施形態では、回復性またはTAE結果への後処理アクセスのために、TAE130が文書メタデータをストア120に書き込むべきかどうかの判定をメイン・アプリケーション・ロジックが担当することを指図する制約はアーキテクチャ上の制御制約である。とりわけ、アプリケーションの全体的なパフォーマンスに対する影響は相当なものになる可能性があるので、この制約は、TAE130がアプリケーションの知らぬ間にデータをストアに書き込むことを任意に決定しないことを保証するためのものである。UIMA100は、そのアプリケーションの全体的な動作要件(たとえば、パフォーマンスと回復性との兼ね合い)に関してアプリケーション開発者が最もよく知らされ、したがって、それを制御しなければならないことを示唆する。次にこれにより、TAE130がその中間結果をストア120に書き込むというその要件をアプリケーション170が通信できるようにするために、TAEのインターフェースを拡張することが必要になる可能性がある。
他の実施形態では、注釈(アノテータまたはTAE)シーケンスを自動的に生成するためのソフトウェア・コンポーネントおよびユーザ要件をモデル化することができる。この手法は、コンポーネントのインターフェースレベルの詳細を知ることからユーザを絶縁し、アプリケーションの機能性要件のみに集中する可能性がある。そのうえ、自動順序付けは、既存のコンポーネントから新しいアプリケーションを費用効果的に構築する方法を決定する際にユーザを支援することができ、さらに、すでに構築したアプリケーションを維持する際に援助することもできる。
自動順序付けは、実行中の注釈フローの制御およびリカバリにおいて何らかの役割を有する。具体的には、フロー実行プログラムは、障害に関する詳細を備えたシーケンサを要請し、依然として新しい不測の状況においてフローを完了することができる代替シーケンスを要求することができる。再順序付けにより、アプリケーションは、UIMの分散配備の急変であるランタイム・エラーにとって透過的なものになることができる。
コンポーネント間通信方法の選択の基礎となる関心事の一部は、フレキシビリティ、パフォーマンス、スケーラビリティ、規格の準拠である。したがって、その技術インターフェースの説明の一部として、UIMA100は好ましくはコンポーネントの対話のための通信方法を識別する。UIMA100は、このアーキテクチャの様々な部分で必要な既存の分散コンピューティング技術のアプリケーションを活用することになる予定である。
一般に、UIMA100は、複数のコンポーネントが別々のマシン上の別個のアドレス空間内および種々の動作環境に存在し、サービス指向方法を介して通信することができる疎結合(すなわち、分散)アーキテクチャをサポートする。この手法は、フレキシビリティおよびスケーラビリティのために好ましいものである。しかし、密結合アーキテクチャも本発明の範囲内で適切なものであり、UIMA100は密結合システム・アーキテクチャ・モデルもサポートする。
たとえば、様々なコンポーネントは、高レベルのパフォーマンスを保証するために密結合通信を必要とする可能性がある。一例はTAE130であり、その場合、アノテータ220は通常、文書ストリームを処理するときに直列で機能する。
分析構造は、TAE130の動作の間中、頻繁にアクセスされ更新される。次のアノテータへの高速アクセス、更新、および伝送は、高速応答時間を必要とする埋込みテキスト分析アプリケーションの場合またはユーザが結果を待っている照会時間に分析が行われる場合、特に重大なものになるだろう。このような条件では、高く予測可能なパフォーマンス・レベルを達成するために、メモリ内分析構造によるアノテータ220間の密結合通信を使用することができる。
疎結合システムに関するもう1つの考慮事項は開発パラダイムである。この場合も、それぞれが独自に進化し、それぞれが分析構造に関して固有の前提条件を備えた多くのアノテータ220を含む可能性のあるTAE130について検討する。理想的には、UIMA100は、開発者がコンポーネント通信方法とは無関係に作業し、必須の開発または配備環境に対して理想的に適した種々のコンテナ内にアノテータを配置することができるようなアノテータ220の開発をサポートする。
UIMA100のコンポーネントが疎結合変形で通信するかまたは密結合変形で通信するかにかかわらず、その制御独立性は別個かつ重要な問題である。理想的には、UIMAインターフェースは、コンポーネント・ロジックが外部制御パターンに基づくことを禁止するものでなければならない。この主義の含意は、非同期制御環境で障害なしに動作するようにコンポーネントが作成されることである。UIMAは、それが埋め込まれる可能性のあるアプリケーション170の特定のフローにかかわらず動作しなければならない。
他の表現をすると、UIMA100は好ましくはデータ主導型である。コンポーネントは、入力データが所与の前提条件を満足しないという理由で入力を処理し損なう可能性があるが、そのコンポーネントは特定のプロセス・フローに依存してはならない。また、データ主導の焦点により一般に、UIMA100の実現のための高度に分散されたエージェントベースの手法も可能になる。
上記の説明に基づいて、UIMA100は、少なくとも1つの文書ストア120に結合された少なくとも1つの文書ストア・インターフェース125を含むアプリケーション・インターフェースを含むモジュラ・テキスト・インテリジェンス・システムを提供することが分かる。文書ストア・インターフェース125は、少なくとも1つのデータベース指定と、少なくとも1つのデータ・ソースを受け取り、少なくとも1つのデータベース照会コマンドを提供する。UIMA100は、少なくとも1つのテキスト分析エンジン130に結合された少なくとも1つの分析エンジン・インターフェース135をさらに提供する。分析エンジン・インターフェース135は、少なくとも1つの文書セットの少なくとも1つの文書セット指定を受け取り、テキスト分析エンジンの分析結果を提供する。アプリケーション・インターフェースにより、アプリケーション170は、少なくとも1つの文書ストア120にデータを取り込む方法を指定し、少なくとも1つの文書セットを選択するため、ならびに少なくとも1つのテキスト分析エンジン130による選択した文書セットの処理を指定するためのアプリケーション・ロジックを指定する。また、少なくとも1つのユーザ・インターフェースだけでなく、分析結果の処理も指定される。アプリケーション指定は、少なくとも1つのテキスト分析エンジンによる使用のための共通抽象データ・フォーマットの指定を含む少なくとも1つのパラメータを設定することによって行われる。また、少なくとも1つの検索エンジン110の少なくとも1つの検索エンジンIDおよび少なくとも1つの検索エンジン指定を受け取るための少なくとも1つの検索エンジン・インターフェース115も含まれている。検索エンジン・インターフェース115は、少なくとも1つの検索エンジン照会結果をさらに受け取る。
当業者は、本明細書の教示が例証にすぎず、したがって、本発明を制限するものと見なすべきではないことを認識することになる。すなわち、前述の通り、UIMA100は様々な情報ソースとともに使用することができ、その多くについてはここで説明しない。たとえば、文書は静的または動的いずれかのテキストとイメージをともに含むことができ、アノテータはテキストとイメージ・データの両方に備えることができる。
したがって、上記の説明は、例示的かつ非制限的な例として、本発明を実施するために本発明者が現在企図している最良の方法および装置に関する完全かつ有益な説明を提供していることが分かるはずである。しかし、様々な修正および適応は、添付図面および特許請求の範囲に関連して読んだときに、上記の説明を考慮して関連技術の当業者には明白になる可能性がある。しかし、本発明の教示のこのような修正はいずれも、依然として本発明の範囲内にあるだろう。さらに、本明細書に記載した方法および装置には所与の程度の特異性が設けられているが、本発明は、ユーザの要求に応じて、それ以上またはそれ以下の特異性でも実現することができるだろう。さらに、本発明の特徴の一部は、それに対応して他の特徴を使用せずに有利に使用することができるだろう。このため、本発明は特許請求の範囲によって定義されるので、上記の説明は、本発明の制限ではなく、本発明の原理の例証にすぎないものと見なすべきである。
本明細書に開示されている非構造化情報管理システムのアーキテクチャの概要を提示するブロック図である。 プリミティブ分析エンジンの諸態様を提示するブロック図である。 アグリゲート分析エンジンの諸態様を提示するブロック図である。 共通分析システム(CAS)内のワークフローの一例を示す流れ図であり、テキスト分析エンジンの一部を形成する複数の直列に結合したアノテータの一例として見ることもできる図である。 結合されたアノテータの代替実施形態の一例を示す図であり、少なくとも2つの並列アノテータ経路が存在する図である。 例示的なタイプ定義の表である。 例示的なフィーチャ定義の表である。 例示的なコンポーネント・リストを示す表である。 ワークフロー生成を示す流れ図である。 ワークフロー検証を示す流れ図である。 単一継承ツリー内の関係の一例を示す図である。 多重継承を使用するデータ・モデリング例を示す図である。 共通分析システムの諸態様の概要を提供するブロック図である。 テキスト分析エンジンの追加の関係を示すブロック図である。 例示的な注釈構造の図解描写である。 アノテータの動作を示すブロック図である。 トークンとスパンとの関係を示すブロック図であり、逆ファイル・システムの一例を示す図である。 スパン・オカレンスの代替表現を提供するブロック図である。 前処理段階のスパンとの関係を例示する図である。 テキスト内の関係を発見するための前処理を記述する流れ図である。 注釈索引と、関係索引と、スパンと、引き数との関係の諸態様を提示するブロック図である。 ある文書の代替表現のビューとそれに対応するトークン化の一例を提示するブロック図である。 ある文書の種々のトークン化による複数のビューの導出を示す図である。 ビューを使用する検索の諸態様を示す関係図である。 データ・モデルの諸態様を示す関係図である。 コンポーネント間のインターフェースの諸態様を示すブロック図である。 前処理およびランタイムの諸態様を提供するブロック図である。 パターンとしきい重みとの関係を示す流れ図である。 WAND反復子のinit()メソッド用の疑似コードの一例を示す図である。 WAND反復子のnext()メソッド用の疑似コードの一例を示す図である。 WANDプロセスの流れを要約する流れ図である。 WANDプロセスに関する効率結果を示すグラフである。 WANDプロセスに関する効率結果を示すグラフである。 WANDプロセスに関する効率結果を示すグラフである。 生命科学アプリケーションに関連して非構造化情報管理システムを示すブロック図である。 生命科学アプリケーションに関連して非構造化情報管理システムを示すブロック図である。 共通分析システム(CAS)の動作を説明するために有用なデータを作成するための例示的な疑似コードを示す図である。 共通分析システム(CAS)の動作を説明するために有用なデータを作成するための例示的な疑似コードを示す図である。 CASベースのデータ・アクセス用の疑似コードの一例を示す図であり、トークンに関する反復の使用を示す図である。 文書テキストのnグラム(トリグラム)トークン化の一例を示す図である。
符号の説明
100 非構造化情報管理アーキテクチャ
110 セマンティック検索エンジン
120 文書/集合/メタデータ・ストア
130 テキスト分析エンジン(TAE)
140 構造化知識ソース・アダプタ
150 集合処理マネージャ(CPM)
160 集合分析エンジン
170 アプリケーション・ロジック
180 構造化情報
190 文書の集合(非構造化情報)
190A 文書
195 関連知識

Claims (32)

  1. 記憶データを処理するためのデータ処理システムにおいて、
    データ単位の集合を記憶するためのデータ記憶域と、
    前記データ記憶域に結合され、前記データ記憶域からの少なくとも1つのデータ単位を検索するための照会に応答する検索エンジンとを含み、
    前記照会がそれぞれが関連重み値を有する複数の検索部分式からなる検索演算子を含み、前記検索エンジンがしきい重み値合計を超える重み値合計を有するデータ単位を返す、データ処理システム。
  2. 前記データ単位が文書である、請求項1に記載のデータ処理システム。
  3. 前記重み値およびしきい重み値のうちの少なくとも1つが検索中に可変である、請求項1に記載のデータ処理システム。
  4. 前記検索演算子が加重AND関数を含み、前記しきい重み値を変化させることにより、前記加重AND関数の演算が実質的な論理OR関数から実質的な論理AND関数に変化する、請求項1に記載のデータ処理システム。
  5. 前記データ処理システムが、文書データのトークン化から導出された注釈と、それぞれの注釈のオカレンスを含むリストと、それぞれの注釈のリストされた各オカレンスごとに、前記それぞれの注釈が及ぶ複数のトークン位置を含むセットとを記憶するための逆ファイル・システムを含む、請求項2に記載のデータ処理システム。
  6. 記憶文書データを処理するためのデータ処理システムにおいて、
    文書データの集合を記憶するためのデータ記憶域と、
    前記データ記憶域に結合され、前記データ記憶域からの少なくとも1つの文書を検索するための照会に応答する検索エンジンとを含み、
    前記照会が加重AND(WAND)として機能するブール述部を含み、前記WANDが、引き数として、ブール変数X1、X2、・・・、Xkのリストと、関連する正の重みw1、w2、・・・、wkのリストと、しきい値θとを取り、
    Figure 2004362563
    である場合に、
    Figure 2004362563
    が真になる(式中、xiはXiの標識変数であり、Xiが真であればxi=1であり、そうでなければxi=0である)、データ処理システム。
  7. 前記WANDが、
    Figure 2004362563
    および
    Figure 2004362563
    を介して(AND)関数または(OR)関数のうちの1つを実現するために使用される、請求項6に記載のデータ処理システム。
  8. が任意の単調増加関数となって前記しきい値より大きくなることを要求することにより、前記WANDが一般化される、請求項7に記載のデータ処理システム。
  9. 任意の単調ブール公式が真になることを要求することにより、前記WANDが一般化される、請求項7に記載のデータ処理システム。
  10. しきい重みをw0、WANDへの引き数となるパターンをpat_iとするとき、WAND(w0,pat1,w1,pat2,w2,...)を含む照会が、一致したパターンpat1、pat2、・・・に関する重みの合計がw0より大きくなるように、pat1、pat2、・・・に十分一致する少なくとも1つの文書を返す、請求項6に記載のデータ処理システム。
  11. 照会に含まれる各用語が、以下のように、いずれかの文書スコアに対するその最大寄与率の上界UBtに関連付けられ、
    Figure 2004362563
    ある文書内に現れるすべての照会用語の前記上界を合計して、前記文書の照会依存スコアの上界を以下のように決定し、
    Figure 2004362563

    予備スコアリングが各文書dごとに以下のような評価を伴う(ただし、Xiは文書d内の照会用語iの存在に関する標識変数であり、前記しきい値θはそれまでに前記検索エンジンによって見つかった上位n個の結果のうちの最小スコアmに基づいて演算中に変更され、nは要求した文書の数である)、
    Figure 2004362563
    請求項6に記載のデータ処理システム。
  12. 前記単調ブール公式が明示的に示されないが、ブラック・ボックス計算によって示される、請求項9に記載のデータ処理システム。
  13. 前記pat_iが前記文書のコンテンツの任意のブール関数を表現し、返された文書は、関数pat1、pat2、・・・に関する重みの合計がw0より大きくなるように、pat1、pat2、・・・を十分満足する、請求項10に記載のデータ処理システム。
  14. 前記データ記憶域内の前記文書が、前記データ記憶域内の前記文書の特定の順序付けに関して逆ファイルとして表現される、請求項6に記載のデータ処理システム。
  15. 文書内の用語のオカレンスに関する少なくとも1つの反復子をさらに含む、請求項6に記載のデータ処理システム。
  16. どの文書が特定のプロパティを満足するかを示すための少なくとも1つの反復子をさらに含む、請求項6に記載のデータ処理システム。
  17. 前記WANDが、前記ブール述部X_1、X_2、・・・をそれぞれ満足する文書について少なくとも1つの反復子を使用し、WAND演算子が、どの文書が前記WAND述部を満足するかを示すための反復子を作成する、請求項6に記載のデータ処理システム。
  18. 前記WAND演算子が、前記WAND述部を満足しないことがまだ分かっていない第1の可能な文書を表現する現行文書変数を維持し、前記WAND述部が現行文書変数で満足されない場合に複数の反復子のうちのどの反復子を進めるかをプロシージャが示す、請求項17に記載のデータ処理システム。
  19. コンピュータ可読媒体上で実施され、少なくとも1つのアプリケーションと協力してテキスト・インテリジェンス・システムの動作を指示するためのプログラム・コードを含むコンピュータ・プログラム記録媒体において、
    データ単位の集合を記憶するためのコンピュータ・プログラム・セグメントと、
    少なくとも1つの記憶データ単位を検索するための照会に応答する検索エンジンを実現するコンピュータ・プログラム・セグメントとを含み、
    前記照会がそれぞれが関連重み値を有する複数の検索部分式からなる検索演算子を含み、前記検索エンジンがしきい重み値合計を超える重み値合計を有するデータ単位を返す、コンピュータ・プログラム記録媒体。
  20. 前記データ単位が文書である、請求項19に記載のコンピュータ・プログラム記録媒体。
  21. 前記重み値およびしきい重み値のうちの少なくとも1つが検索中に可変である、請求項19に記載のコンピュータ・プログラム記録媒体。
  22. 前記検索演算子が加重AND関数を含み、前記しきい重み値を変化させることにより、前記加重AND関数の演算が実質的な論理OR関数から実質的な論理AND関数に変化する、請求項19に記載のコンピュータ・プログラム記録媒体。
  23. 文書データのトークン化から導出された注釈と、それぞれの注釈のオカレンスを含むリストと、それぞれの注釈のリストされた各オカレンスごとに、前記それぞれの注釈が及ぶ複数のトークン位置を含むセットとを記憶するための逆ファイル・システムを実現するためのコンピュータ・プログラム・セグメントをさらに含む、請求項19に記載のコンピュータ・プログラム記録媒体。
  24. 前記照会が加重AND(WAND)として機能するブール述部を含み、前記WANDが、引き数として、ブール変数X1、X2、・・・、Xkのリストと、関連する正の重みw1、w2、・・・、wkのリストと、しきい値θとを取り、
    Figure 2004362563
    である場合に、
    Figure 2004362563
    が真になる(ただし、xiはXiの標識変数であり、Xiが真であればxi=1であり、そうでなければxi=0である)、請求項19に記載のコンピュータ・プログラム記録媒体。
  25. 前記WANDが、
    Figure 2004362563
    および
    Figure 2004362563
    を介して(AND)関数または(OR)関数のうちの1つを実現するために使用される、請求項24に記載のコンピュータ・プログラム記録媒体。
  26. が任意の単調増加関数が前記しきい値より大きくなることを要求することにより、前記WANDが一般化される、請求項24に記載のコンピュータ・プログラム記録媒体。
  27. 任意の単調ブール公式が真になることを要求することにより、前記WANDが一般化される、請求項24に記載のコンピュータ・プログラム記録媒体。
  28. しきい重みをw0、WANDへの引き数となるパターンをpat_iとするとき、WAND(w0,pat1,w1,pat2,w2,...)を含む照会が、一致したパターンpat1、pat2、・・・に関する重みの合計がw0より大きくなるように、pat1、pat2、・・・に十分一致する少なくとも1つの文書データ単位を返す、請求項24に記載のコンピュータ・プログラム記録媒体。
  29. 前記pat_iが前記文書のコンテンツの任意のブール関数を表現し、返された文書データ単位は、関数pat1、pat2、・・・に関する重みの合計がw0より大きくなるように、pat1、pat2、・・・を十分満足する、請求項28に記載のコンピュータ・プログラム記録媒体。
  30. 照会に含まれる各用語が、以下のように、いずれかの文書データ単位のスコアに対するその最大寄与率の上界UBtに関連付けられており、
    Figure 2004362563
    ある文書データ単位内に現れるすべての照会用語の前記上界を合計して、前記文書の照会依存スコアの上界を以下のように決定し、
    Figure 2004362563

    予備スコアリングが各文書dごとに以下のような評価を伴う(ただし、Xiは文書データ単位d内の照会用語iの存在に関する標識変数であり、前記しきい値θはそれまでに前記検索エンジンによって見つかった上位n個の結果のうちの最小スコアmに基づいて演算中に変更され、nは要求した文書の数である)、
    Figure 2004362563
    請求項24に記載のコンピュータ・プログラム記録媒体。
  31. 文書データを処理するための方法において、
    照会を受け取るステップと、
    データ記憶域から少なくとも1つの文書を検索するために前記照会に応答するステップとを含み、
    前記照会が加重AND(WAND)として機能するブール述部を含み、前記WANDが、引き数として、ブール変数X1、X2、・・・、Xkのリストと、関連する正の重みw1、w2、・・・、wkのリストと、しきい値θとを取り、
    Figure 2004362563
    である場合に、
    Figure 2004362563
    が真になる(ただし、xiはXiの標識変数であり、Xiが真であればxi=1であり、そうでなければxi=0である)、方法。
  32. 前記WANDが、
    Figure 2004362563
    および
    Figure 2004362563
    を介して(AND)関数または(OR)関数のうちの1つを実現するために使用される、請求項31に記載の方法。
JP2004155234A 2003-05-30 2004-05-25 非構造化情報管理および自動テキスト分析を実行するためのシステム、方法、およびコンピュータ・プログラム記録媒体 Pending JP2004362563A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/449,265 US7146361B2 (en) 2003-05-30 2003-05-30 System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)

Publications (1)

Publication Number Publication Date
JP2004362563A true JP2004362563A (ja) 2004-12-24

Family

ID=33451728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004155234A Pending JP2004362563A (ja) 2003-05-30 2004-05-25 非構造化情報管理および自動テキスト分析を実行するためのシステム、方法、およびコンピュータ・プログラム記録媒体

Country Status (3)

Country Link
US (3) US7146361B2 (ja)
JP (1) JP2004362563A (ja)
CN (1) CN1297935C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224772B2 (en) 2006-12-08 2012-07-17 Nec Corporation Data management apparatus, method and program
JP2016024619A (ja) * 2014-07-18 2016-02-08 富士通株式会社 情報処理方法、情報処理装置および情報処理プログラム

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035864B1 (en) 2000-05-18 2006-04-25 Endeca Technologies, Inc. Hierarchical data-driven navigation system and method for information retrieval
US7617184B2 (en) * 2000-05-18 2009-11-10 Endeca Technologies, Inc. Scalable hierarchical data-driven navigation system and method for information retrieval
US6556991B1 (en) * 2000-09-01 2003-04-29 E-Centives, Inc. Item name normalization
US20040117366A1 (en) * 2002-12-12 2004-06-17 Ferrari Adam J. Method and system for interpreting multiple-term queries
US7146361B2 (en) * 2003-05-30 2006-12-05 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)
US7610313B2 (en) 2003-07-25 2009-10-27 Attenex Corporation System and method for performing efficient document scoring and clustering
US7505964B2 (en) 2003-09-12 2009-03-17 Google Inc. Methods and systems for improving a search ranking using related queries
US7346839B2 (en) 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
US7797316B2 (en) 2003-09-30 2010-09-14 Google Inc. Systems and methods for determining document freshness
US7293005B2 (en) 2004-01-26 2007-11-06 International Business Machines Corporation Pipelined architecture for global analysis and index building
US8296304B2 (en) 2004-01-26 2012-10-23 International Business Machines Corporation Method, system, and program for handling redirects in a search engine
US7499913B2 (en) 2004-01-26 2009-03-03 International Business Machines Corporation Method for handling anchor text
US7424467B2 (en) 2004-01-26 2008-09-09 International Business Machines Corporation Architecture for an indexer with fixed width sort and variable width sort
US7191175B2 (en) 2004-02-13 2007-03-13 Attenex Corporation System and method for arranging concept clusters in thematic neighborhood relationships in a two-dimensional visual display space
US7836083B2 (en) * 2004-02-20 2010-11-16 Factiva, Inc. Intelligent search and retrieval system and method
US7565368B2 (en) * 2004-05-04 2009-07-21 Next It Corporation Data disambiguation systems and methods
US7698333B2 (en) 2004-07-22 2010-04-13 Factiva, Inc. Intelligent query system and method using phrase-code frequency-inverse phrase-code document frequency module
US7702618B1 (en) 2004-07-26 2010-04-20 Google Inc. Information retrieval system for archiving multiple document versions
US7711679B2 (en) 2004-07-26 2010-05-04 Google Inc. Phrase-based detection of duplicate documents in an information retrieval system
US7567959B2 (en) * 2004-07-26 2009-07-28 Google Inc. Multiple index based information retrieval system
US7461064B2 (en) 2004-09-24 2008-12-02 International Buiness Machines Corporation Method for searching documents for ranges of numeric values
US7496567B1 (en) * 2004-10-01 2009-02-24 Terril John Steichen System and method for document categorization
US20080077570A1 (en) * 2004-10-25 2008-03-27 Infovell, Inc. Full Text Query and Search Systems and Method of Use
EP1825395A4 (en) * 2004-10-25 2010-07-07 Yuanhua Tang FULL TEXT INTERROGATION AND RESEARCH SYSTEMS AND METHODS OF USE
US7418445B1 (en) * 2004-11-08 2008-08-26 Unisys Corporation Method for reducing the scope of the K node construction lock
US7404151B2 (en) 2005-01-26 2008-07-22 Attenex Corporation System and method for providing a dynamic user interface for a dense three-dimensional scene
US7356777B2 (en) 2005-01-26 2008-04-08 Attenex Corporation System and method for providing a dynamic user interface for a dense three-dimensional scene
US7650320B2 (en) * 2005-02-24 2010-01-19 Nahava Inc. Method and system for efficient indexed storage for unstructured content
US7788293B2 (en) * 2005-03-02 2010-08-31 Google Inc. Generating structured information
US7533088B2 (en) * 2005-05-04 2009-05-12 Microsoft Corporation Database reverse query matching
US7467155B2 (en) * 2005-07-12 2008-12-16 Sand Technology Systems International, Inc. Method and apparatus for representation of unstructured data
US8417693B2 (en) 2005-07-14 2013-04-09 International Business Machines Corporation Enforcing native access control to indexed documents
US20070022108A1 (en) * 2005-07-22 2007-01-25 Nec Corporation Predicate-logic retrieval system
US8019752B2 (en) * 2005-11-10 2011-09-13 Endeca Technologies, Inc. System and method for information retrieval from object collections with complex interrelationships
US9495349B2 (en) * 2005-11-17 2016-11-15 International Business Machines Corporation System and method for using text analytics to identify a set of related documents from a source document
CA2540058A1 (en) * 2005-12-06 2007-06-08 Emeka Akaezuwa Portable search engine
US7487174B2 (en) * 2006-01-17 2009-02-03 International Business Machines Corporation Method for storing text annotations with associated type information in a structured data store
US20070179940A1 (en) * 2006-01-27 2007-08-02 Robinson Eric M System and method for formulating data search queries
US20070208722A1 (en) * 2006-03-02 2007-09-06 International Business Machines Corporation Apparatus and method for modification of a saved database query based on a change in the meaning of a query value over time
US20070233679A1 (en) * 2006-04-03 2007-10-04 Microsoft Corporation Learning a document ranking function using query-level error measurements
EP2013778A1 (en) * 2006-04-19 2009-01-14 Raython Company Multilingual data querying
US7853555B2 (en) * 2006-04-19 2010-12-14 Raytheon Company Enhancing multilingual data querying
US7991608B2 (en) 2006-04-19 2011-08-02 Raytheon Company Multilingual data querying
US8171462B2 (en) * 2006-04-21 2012-05-01 Microsoft Corporation User declarative language for formatted data processing
US7827155B2 (en) * 2006-04-21 2010-11-02 Microsoft Corporation System for processing formatted data
US8549492B2 (en) 2006-04-21 2013-10-01 Microsoft Corporation Machine declarative language for formatted data processing
US7711546B2 (en) 2006-04-21 2010-05-04 Microsoft Corporation User interface for machine aided authoring and translation
US20070271231A1 (en) * 2006-05-22 2007-11-22 Jimmy Jong-Yuan Lin Search method on the Internet
WO2007149216A2 (en) * 2006-06-21 2007-12-27 Information Extraction Systems An apparatus, system and method for developing tools to process natural language text
US20080019281A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Reuse of available source data and localizations
US7593934B2 (en) * 2006-07-28 2009-09-22 Microsoft Corporation Learning a document ranking using a loss function with a rank pair or a query parameter
US7610315B2 (en) * 2006-09-06 2009-10-27 Adobe Systems Incorporated System and method of determining and recommending a document control policy for a document
US9892111B2 (en) 2006-10-10 2018-02-13 Abbyy Production Llc Method and device to estimate similarity between documents having multiple segments
US9495358B2 (en) 2006-10-10 2016-11-15 Abbyy Infopoisk Llc Cross-language text clustering
US9075864B2 (en) 2006-10-10 2015-07-07 Abbyy Infopoisk Llc Method and system for semantic searching using syntactic and semantic analysis
US9069750B2 (en) 2006-10-10 2015-06-30 Abbyy Infopoisk Llc Method and system for semantic searching of natural language texts
US9189482B2 (en) 2012-10-10 2015-11-17 Abbyy Infopoisk Llc Similar document search
US9098489B2 (en) 2006-10-10 2015-08-04 Abbyy Infopoisk Llc Method and system for semantic searching
US9110975B1 (en) 2006-11-02 2015-08-18 Google Inc. Search result inputs using variant generalized queries
US8661029B1 (en) 2006-11-02 2014-02-25 Google Inc. Modifying search result ranking based on implicit user feedback
US8488839B2 (en) * 2006-11-20 2013-07-16 Videosurf, Inc. Computer program and apparatus for motion-based object extraction and tracking in video
US20080120290A1 (en) * 2006-11-20 2008-05-22 Rexee, Inc. Apparatus for Performing a Weight-Based Search
US8379915B2 (en) * 2006-11-20 2013-02-19 Videosurf, Inc. Method of performing motion-based object extraction and tracking in video
US20080120291A1 (en) * 2006-11-20 2008-05-22 Rexee, Inc. Computer Program Implementing A Weight-Based Search
US8059915B2 (en) * 2006-11-20 2011-11-15 Videosurf, Inc. Apparatus for and method of robust motion estimation using line averages
US20080120328A1 (en) * 2006-11-20 2008-05-22 Rexee, Inc. Method of Performing a Weight-Based Search
US7698259B2 (en) * 2006-11-22 2010-04-13 Sap Ag Semantic search in a database
US8399573B2 (en) * 2006-11-22 2013-03-19 Sabic Innovative Plastics Ip B.V. Polymer blend compositions
US8676802B2 (en) 2006-11-30 2014-03-18 Oracle Otc Subsidiary Llc Method and system for information retrieval with clustering
US8631005B2 (en) * 2006-12-28 2014-01-14 Ebay Inc. Header-token driven automatic text segmentation
US20080162526A1 (en) * 2006-12-28 2008-07-03 Uma Kant Singh Method and system for managing unstructured data in a structured data environment
US8938463B1 (en) * 2007-03-12 2015-01-20 Google Inc. Modifying search result ranking based on implicit user feedback and a model of presentation bias
US8694374B1 (en) 2007-03-14 2014-04-08 Google Inc. Detecting click spam
US9092510B1 (en) 2007-04-30 2015-07-28 Google Inc. Modifying search result ranking based on a temporal element of user feedback
US8359309B1 (en) 2007-05-23 2013-01-22 Google Inc. Modifying search result ranking based on corpus search statistics
US7903899B2 (en) * 2007-05-23 2011-03-08 Videosurf, Inc. Method of geometric coarsening and segmenting of still images
US7920748B2 (en) * 2007-05-23 2011-04-05 Videosurf, Inc. Apparatus and software for geometric coarsening and segmenting of still images
US8122032B2 (en) * 2007-07-20 2012-02-21 Google Inc. Identifying and linking similar passages in a digital text corpus
US9323827B2 (en) * 2007-07-20 2016-04-26 Google Inc. Identifying key terms related to similar passages
US8694511B1 (en) 2007-08-20 2014-04-08 Google Inc. Modifying search result ranking based on populations
US7877344B2 (en) * 2007-10-10 2011-01-25 Northern Light Group, Llc Method and apparatus for extracting meaning from documents using a meaning taxonomy comprising syntactic structures
US8909655B1 (en) 2007-10-11 2014-12-09 Google Inc. Time based ranking
US7856434B2 (en) 2007-11-12 2010-12-21 Endeca Technologies, Inc. System and method for filtering rules for manipulating search results in a hierarchical search and navigation system
CN101861722A (zh) * 2007-11-16 2010-10-13 法国电信公司 用于对分组进行归类的方法和装置
US7895232B2 (en) * 2007-12-25 2011-02-22 International Business Machines Corporation Object-oriented twig query evaluation
US9746985B1 (en) 2008-02-25 2017-08-29 Georgetown University System and method for detecting, collecting, analyzing, and communicating event-related information
US8881040B2 (en) 2008-08-28 2014-11-04 Georgetown University System and method for detecting, collecting, analyzing, and communicating event-related information
US9529974B2 (en) 2008-02-25 2016-12-27 Georgetown University System and method for detecting, collecting, analyzing, and communicating event-related information
US9489495B2 (en) 2008-02-25 2016-11-08 Georgetown University System and method for detecting, collecting, analyzing, and communicating event-related information
US20090265607A1 (en) * 2008-04-17 2009-10-22 Razoss Ltd. Method, system and computer readable product for management, personalization and sharing of web content
US8364660B2 (en) * 2008-07-11 2013-01-29 Videosurf, Inc. Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
WO2010006334A1 (en) 2008-07-11 2010-01-14 Videosurf, Inc. Apparatus and software system for and method of performing a visual-relevance-rank subsequent search
US8462394B2 (en) * 2008-08-05 2013-06-11 Xerox Corporation Document type classification for scanned bitmaps
US8965881B2 (en) * 2008-08-15 2015-02-24 Athena A. Smyros Systems and methods for searching an index
US8214734B2 (en) * 2008-10-09 2012-07-03 International Business Machines Corporation Credibility of text analysis engine performance evaluation by rating reference content
US8037053B2 (en) * 2008-10-31 2011-10-11 Yahoo! Inc. System and method for generating an online summary of a collection of documents
US8396865B1 (en) 2008-12-10 2013-03-12 Google Inc. Sharing search engine relevance data between corpora
US8346701B2 (en) * 2009-01-23 2013-01-01 Microsoft Corporation Answer ranking in community question-answering sites
EP2394228A4 (en) * 2009-03-10 2013-01-23 Ebrary Inc METHOD AND APPARATUS FOR REAL-TIME TEXT ANALYSIS AND NAVIGATION IN TEXT
US8433559B2 (en) * 2009-03-24 2013-04-30 Microsoft Corporation Text analysis using phrase definitions and containers
US9009146B1 (en) 2009-04-08 2015-04-14 Google Inc. Ranking search results based on similar queries
CN101876981B (zh) * 2009-04-29 2015-09-23 阿里巴巴集团控股有限公司 一种构建知识库的方法及装置
US20110004588A1 (en) * 2009-05-11 2011-01-06 iMedix Inc. Method for enhancing the performance of a medical search engine based on semantic analysis and user feedback
US8533213B2 (en) * 2009-06-17 2013-09-10 Sap Portals Israel Ltd. Apparatus and method for integrating applications into a computerized environment
US9342607B2 (en) 2009-06-19 2016-05-17 International Business Machines Corporation Dynamic inference graph
US10726083B2 (en) 2010-10-30 2020-07-28 International Business Machines Corporation Search query transformations
US10007705B2 (en) 2010-10-30 2018-06-26 International Business Machines Corporation Display of boosted slashtag results
US8661404B2 (en) * 2009-07-15 2014-02-25 Infosys Limited Method for improving execution efficiency of a software package customization
US20110016107A1 (en) * 2009-07-19 2011-01-20 Harumi Kuno Execution of query plans for database query within environments of databases
US8447760B1 (en) 2009-07-20 2013-05-21 Google Inc. Generating a related set of documents for an initial set of documents
US8572084B2 (en) 2009-07-28 2013-10-29 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via nearest neighbor
CA2772082C (en) 2009-08-24 2019-01-15 William C. Knight Generating a reference set for use during document review
US8498974B1 (en) 2009-08-31 2013-07-30 Google Inc. Refining search results
CN102023989B (zh) * 2009-09-23 2012-10-10 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
US8972391B1 (en) 2009-10-02 2015-03-03 Google Inc. Recent interest based relevance scoring
US8874555B1 (en) 2009-11-20 2014-10-28 Google Inc. Modifying scoring data based on historical changes
US8775160B1 (en) 2009-12-17 2014-07-08 Shopzilla, Inc. Usage based query response
US8428933B1 (en) 2009-12-17 2013-04-23 Shopzilla, Inc. Usage based query response
US8244706B2 (en) * 2009-12-18 2012-08-14 International Business Machines Corporation Method and apparatus for semantic just-in-time-information-retrieval
US8615514B1 (en) 2010-02-03 2013-12-24 Google Inc. Evaluating website properties by partitioning user feedback
US8924379B1 (en) 2010-03-05 2014-12-30 Google Inc. Temporal-based score adjustments
US8959093B1 (en) 2010-03-15 2015-02-17 Google Inc. Ranking search results based on anchors
US8838587B1 (en) 2010-04-19 2014-09-16 Google Inc. Propagating query classifications
US9858338B2 (en) * 2010-04-30 2018-01-02 International Business Machines Corporation Managed document research domains
US9508011B2 (en) 2010-05-10 2016-11-29 Videosurf, Inc. Video visual and audio query
US9623119B1 (en) 2010-06-29 2017-04-18 Google Inc. Accentuating search results
US8832083B1 (en) 2010-07-23 2014-09-09 Google Inc. Combining user feedback
US9262390B2 (en) * 2010-09-02 2016-02-16 Lexis Nexis, A Division Of Reed Elsevier Inc. Methods and systems for annotating electronic documents
US8417710B2 (en) 2010-09-20 2013-04-09 International Business Machines Corporation Public relations and reputation mining via semantic analytics
US9069842B2 (en) * 2010-09-28 2015-06-30 The Mitre Corporation Accessing documents using predictive word sequences
CN103339597B (zh) * 2010-10-30 2017-02-15 国际商业机器公司 转换搜索引擎查询
US9251123B2 (en) 2010-11-29 2016-02-02 Hewlett-Packard Development Company, L.P. Systems and methods for converting a PDF file
US9002867B1 (en) 2010-12-30 2015-04-07 Google Inc. Modifying ranking data based on document changes
US9959326B2 (en) * 2011-03-23 2018-05-01 International Business Machines Corporation Annotating schema elements based on associating data instances with knowledge base entities
US20140222773A1 (en) * 2011-06-15 2014-08-07 Trinity College Dublin A network system for generating application specific hypermedia content from multiple sources
US9218390B2 (en) 2011-07-29 2015-12-22 Yellowpages.Com Llc Query parser derivation computing device and method for making a query parser for parsing unstructured search queries
CN102622920B (zh) * 2011-10-19 2014-12-10 北京中科希望软件股份有限公司 一种基于技能学习的智能解答方法与系统
US9122673B2 (en) * 2012-03-07 2015-09-01 International Business Machines Corporation Domain specific natural language normalization
US8996532B2 (en) * 2012-05-21 2015-03-31 International Business Machines Corporation Determining a cause of an incident based on text analytics of documents
US9678948B2 (en) 2012-06-26 2017-06-13 International Business Machines Corporation Real-time message sentiment awareness
CN102779186B (zh) * 2012-06-29 2014-12-24 浙江大学 一种非结构化数据管理的全过程建模方法
US9104656B2 (en) 2012-07-03 2015-08-11 International Business Machines Corporation Using lexical analysis and parsing in genome research
US9424233B2 (en) 2012-07-20 2016-08-23 Veveo, Inc. Method of and system for inferring user intent in search input in a conversational interaction system
US8983991B2 (en) * 2012-07-27 2015-03-17 Facebook, Inc. Generating logical expressions for search queries
US9262511B2 (en) * 2012-07-30 2016-02-16 Red Lambda, Inc. System and method for indexing streams containing unstructured text data
BR112015005059A2 (pt) * 2012-09-07 2017-07-04 American Chemical Soc avaliador de composição automatizado
CN102890714B (zh) * 2012-09-24 2015-04-15 华为技术有限公司 数据索引方法及装置
US9753986B2 (en) 2012-12-17 2017-09-05 International Business Machines Corporation Multi-dimensional feature merging for supporting evidence in a question and answering system
US9460083B2 (en) 2012-12-27 2016-10-04 International Business Machines Corporation Interactive dashboard based on real-time sentiment analysis for synchronous communication
US9690775B2 (en) 2012-12-27 2017-06-27 International Business Machines Corporation Real-time sentiment analysis for synchronous communication
CN104035927B (zh) * 2013-03-05 2020-03-03 百度在线网络技术(北京)有限公司 一种基于用户行为的搜索方法及系统
US9183499B1 (en) 2013-04-19 2015-11-10 Google Inc. Evaluating quality based on neighbor features
DK2994908T3 (da) * 2013-05-07 2019-09-23 Veveo Inc Grænseflade til inkrementel taleinput med realtidsfeedback
US20150006514A1 (en) * 2013-06-28 2015-01-01 Jiun Hung Method and Computer System for Searching Intended Path
US9984066B2 (en) * 2013-12-19 2018-05-29 Arturo Geigel Method and system of extracting patent features for comparison and to determine similarities, novelty and obviousness
US9589277B2 (en) 2013-12-31 2017-03-07 Microsoft Technology Licensing, Llc Search service advertisement selection
US9426258B1 (en) * 2014-02-03 2016-08-23 Emc Corporation Expression based declarative data service execution chaining
US10380253B2 (en) * 2014-03-04 2019-08-13 International Business Machines Corporation Natural language processing with dynamic pipelines
US9734046B2 (en) * 2014-04-01 2017-08-15 International Business Machines Corporation Recording, replaying and modifying an unstructured information management architecture (UIMA) pipeline
US9280340B2 (en) 2014-04-01 2016-03-08 International Business Machines Corporation Dynamically building an unstructured information management architecture (UIMA) pipeline
JP6444494B2 (ja) 2014-05-23 2018-12-26 データロボット, インコーポレイテッド 予測データ分析のためのシステムおよび技術
US10558924B2 (en) 2014-05-23 2020-02-11 DataRobot, Inc. Systems for second-order predictive data analytics, and related methods and apparatus
WO2015183246A1 (en) * 2014-05-28 2015-12-03 Hewlett-Packard Development Company, L.P. Data extraction based on multiple meta-algorithmic patterns
US20150378985A1 (en) * 2014-06-26 2015-12-31 Dhanyamraju S U M Prasad Method and system for providing semantics based technical support
CN104199803B (zh) * 2014-07-21 2017-10-13 安徽华贞信息科技有限公司 一种基于组合理论的文本信息处理系统及方法
US9880997B2 (en) * 2014-07-23 2018-01-30 Accenture Global Services Limited Inferring type classifications from natural language text
US9575961B2 (en) 2014-08-28 2017-02-21 Northern Light Group, Llc Systems and methods for analyzing document coverage
US9881166B2 (en) * 2015-04-16 2018-01-30 International Business Machines Corporation Multi-focused fine-grained security framework
US11886477B2 (en) 2015-09-22 2024-01-30 Northern Light Group, Llc System and method for quote-based search summaries
US11544306B2 (en) 2015-09-22 2023-01-03 Northern Light Group, Llc System and method for concept-based search summaries
US9916296B2 (en) * 2015-09-24 2018-03-13 International Business Machines Corporation Expanding entity and relationship patterns to a collection of document annotators using run traces
CN105512232B (zh) * 2015-11-30 2020-02-28 北京金山安全软件有限公司 数据存储方法及装置
CN105512230B (zh) * 2015-11-30 2020-05-22 北京金山安全软件有限公司 数据存储方法及装置
US10515424B2 (en) * 2016-02-12 2019-12-24 Microsoft Technology Licensing, Llc Machine learned query generation on inverted indices
US10678827B2 (en) * 2016-02-26 2020-06-09 Workday, Inc. Systematic mass normalization of international titles
US11226946B2 (en) 2016-04-13 2022-01-18 Northern Light Group, Llc Systems and methods for automatically determining a performance index
US10878190B2 (en) 2016-04-26 2020-12-29 International Business Machines Corporation Structured dictionary population utilizing text analytics of unstructured language dictionary text
WO2017210618A1 (en) 2016-06-02 2017-12-07 Fti Consulting, Inc. Analyzing clusters of coded documents
US10459959B2 (en) * 2016-11-07 2019-10-29 Oath Inc. Top-k query processing with conditional skips
US10387900B2 (en) 2017-04-17 2019-08-20 DataRobot, Inc. Methods and apparatus for self-adaptive time series forecasting engine
US10209985B2 (en) * 2017-05-25 2019-02-19 Sap Se Descriptor-transformer framework in an integration platform
CN108416124B (zh) * 2018-02-13 2022-03-25 西安理工大学 一种基于谓词逻辑的规范重构表示方法
US11734285B2 (en) * 2018-03-22 2023-08-22 Verizon Patent And Licensing Inc. System and method for top-k searching using parallel processing
CN110390094B (zh) * 2018-04-20 2023-05-23 伊姆西Ip控股有限责任公司 对文档进行分类的方法、电子设备和计算机程序产品
US11074517B2 (en) * 2018-05-25 2021-07-27 International Business Machines Corporation Predicting keywords in an application
CN110555070B (zh) * 2018-06-01 2021-10-22 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
US10949219B2 (en) 2018-06-15 2021-03-16 Sap Se Containerized runtime environments
WO2019241630A1 (en) * 2018-06-15 2019-12-19 Deep Insight Solutions, Inc. Systems and methods for an artificial intelligence data fusion platform
US10747506B2 (en) * 2018-06-15 2020-08-18 Sap Se Customizing operator nodes for graphical representations of data processing pipelines
US11275485B2 (en) 2018-06-15 2022-03-15 Sap Se Data processing pipeline engine
US10866831B2 (en) 2018-06-15 2020-12-15 Sap Se Distributed execution of data processing pipelines
US10733034B2 (en) 2018-06-15 2020-08-04 Sap Se Trace messaging for distributed execution of data processing pipelines
US11163833B2 (en) 2018-09-06 2021-11-02 International Business Machines Corporation Discovering and displaying business artifact and term relationships
CN109492100B (zh) * 2018-10-31 2021-07-30 武汉雨滴科技有限公司 一种非结构信息处理与资源管理系统
US11461672B2 (en) * 2019-02-08 2022-10-04 International Business Machines Corporation Plug-and-ingest framework for question answering systems
CN109858165A (zh) * 2019-02-12 2019-06-07 安徽工程大学 一种二级圆柱齿轮减速器设计方法
US10963490B2 (en) * 2019-02-27 2021-03-30 International Business Machines Corporation Text extraction and processing
CN110347785A (zh) * 2019-05-30 2019-10-18 平安科技(深圳)有限公司 非结构化文书搜索方法、装置、计算机设备和存储介质
EP3754445A1 (en) * 2019-06-17 2020-12-23 Siemens Aktiengesellschaft Computer-assisted configuration of a technical system
US11176158B2 (en) * 2019-07-31 2021-11-16 International Business Machines Corporation Intelligent use of extraction techniques
US11709877B2 (en) * 2020-01-20 2023-07-25 International Business Machines Corporation Systems and methods for targeted annotation of data
CN111680508B (zh) * 2020-06-08 2023-05-26 北京百度网讯科技有限公司 文本的处理方法和装置
US11410447B2 (en) 2020-06-19 2022-08-09 Bank Of America Corporation Information security assessment translation engine
US11574131B2 (en) * 2021-05-21 2023-02-07 Google Llc Machine-learned language models which generate intermediate textual analysis in service of contextual text generation

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US378A (en) * 1837-09-08 Ho t-aijr strcjve
US5778A (en) * 1848-09-19 Window-sash fasteneb
JPS6270974A (ja) 1985-09-24 1987-04-01 Nec Corp テキスト・サ−チ・エンジンとその制御方式
JP2943447B2 (ja) * 1991-01-30 1999-08-30 三菱電機株式会社 テキスト情報抽出装置とテキスト類似照合装置とテキスト検索システムとテキスト情報抽出方法とテキスト類似照合方法、及び、質問解析装置
JPH0823869B2 (ja) 1992-08-21 1996-03-06 日本電気株式会社 データベース類似検索方法
US5715445A (en) * 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US5577241A (en) * 1994-12-07 1996-11-19 Excite, Inc. Information retrieval system and method with implementation extensible query architecture
US6470306B1 (en) * 1996-04-23 2002-10-22 Logovista Corporation Automated translation of annotated text based on the determination of locations for inserting annotation tokens and linked ending, end-of-sentence or language tokens
US5778378A (en) 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US5987446A (en) * 1996-11-12 1999-11-16 U.S. West, Inc. Searching large collections of text using multiple search engines concurrently
US5966126A (en) * 1996-12-23 1999-10-12 Szabo; Andrew J. Graphic user interface for database system
KR100224379B1 (ko) * 1997-05-29 1999-10-15 박호군 공정 제어 알고리즘 생성 방법
US5933822A (en) * 1997-07-22 1999-08-03 Microsoft Corporation Apparatus and methods for an information retrieval system that employs natural language processing of search results to improve overall precision
US6105023A (en) * 1997-08-18 2000-08-15 Dataware Technologies, Inc. System and method for filtering a document stream
US6081774A (en) * 1997-08-22 2000-06-27 Novell, Inc. Natural language information retrieval system and method
US5983267A (en) * 1997-09-23 1999-11-09 Information Architects Corporation System for indexing and displaying requested data having heterogeneous content and representation
EP1025517A1 (en) * 1997-10-27 2000-08-09 Massachusetts Institute Of Technology Image search and retrieval system
JP3586549B2 (ja) 1997-12-08 2004-11-10 株式会社日立製作所 画像検索方法およびその装置
JPH11232303A (ja) 1998-02-19 1999-08-27 Fuji Xerox Co Ltd テキスト検索装置
US6236987B1 (en) * 1998-04-03 2001-05-22 Damon Horowitz Dynamic content organization in information retrieval systems
US6553385B2 (en) * 1998-09-01 2003-04-22 International Business Machines Corporation Architecture of a framework for information extraction from natural language documents
US6453312B1 (en) * 1998-10-14 2002-09-17 Unisys Corporation System and method for developing a selectably-expandable concept-based search
US6523028B1 (en) * 1998-12-03 2003-02-18 Lockhead Martin Corporation Method and system for universal querying of distributed databases
US6731788B1 (en) * 1999-01-28 2004-05-04 Koninklijke Philips Electronics N.V. Symbol Classification with shape features applied to neural network
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
GB2352915A (en) * 1999-08-06 2001-02-07 Television Monitoring Services A method of retrieving text data from a broadcast image
US6507846B1 (en) * 1999-11-09 2003-01-14 Joint Technology Corporation Indexing databases for efficient relational querying
US6772141B1 (en) * 1999-12-14 2004-08-03 Novell, Inc. Method and apparatus for organizing and using indexes utilizing a search decision table
US6424975B1 (en) * 2000-01-07 2002-07-23 Trg Products, Inc. FAT file system in palm OS computer
US6542889B1 (en) * 2000-01-28 2003-04-01 International Business Machines Corporation Methods and apparatus for similarity text search based on conceptual indexing
US6910029B1 (en) * 2000-02-22 2005-06-21 International Business Machines Corporation System for weighted indexing of hierarchical documents
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6738759B1 (en) * 2000-07-07 2004-05-18 Infoglide Corporation, Inc. System and method for performing similarity searching using pointer optimization
US6621930B1 (en) * 2000-08-09 2003-09-16 Elron Software, Inc. Automatic categorization of documents based on textual content
US7130848B2 (en) * 2000-08-09 2006-10-31 Gary Martin Oosta Methods for document indexing and analysis
US6718323B2 (en) * 2000-08-09 2004-04-06 Hewlett-Packard Development Company, L.P. Automatic method for quantifying the relevance of intra-document search results
WO2002046916A2 (en) * 2000-10-20 2002-06-13 Polexis, Inc. Extensible information system (xis)
JP3934325B2 (ja) * 2000-10-31 2007-06-20 株式会社日立製作所 文書検索方法、文書検索装置及び文書検索プログラムの記憶媒体
US20020091671A1 (en) * 2000-11-23 2002-07-11 Andreas Prokoph Method and system for data retrieval in large collections of data
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US6697798B2 (en) * 2001-04-24 2004-02-24 Takahiro Nakamura Retrieval system of secondary data added documents in database, and program
AU2003205166A1 (en) * 2002-01-14 2003-07-30 Jerzy Lewak Identifier vocabulary data access method and system
US6847966B1 (en) * 2002-04-24 2005-01-25 Engenium Corporation Method and system for optimally searching a document database using a representative semantic space
US6763354B2 (en) * 2002-05-10 2004-07-13 Agentarts, Inc. Mining emergent weighted association rules utilizing backlinking reinforcement analysis
US20040024756A1 (en) * 2002-08-05 2004-02-05 John Terrell Rickard Search engine for non-textual data
US6968338B1 (en) * 2002-08-29 2005-11-22 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Extensible database framework for management of unstructured and semi-structured documents
US20040049505A1 (en) * 2002-09-11 2004-03-11 Kelly Pennock Textual on-line analytical processing method and system
US7313754B2 (en) * 2003-03-14 2007-12-25 Texterity, Inc. Method and expert system for deducing document structure in document conversion
US20040194009A1 (en) * 2003-03-27 2004-09-30 Lacomb Christina Automated understanding, extraction and structured reformatting of information in electronic files
US20040243556A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and including a document common analysis system (CAS)
US7146361B2 (en) * 2003-05-30 2006-12-05 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)
US8868405B2 (en) * 2004-01-27 2014-10-21 Hewlett-Packard Development Company, L. P. System and method for comparative analysis of textual documents
US7240176B2 (en) * 2004-05-01 2007-07-03 Intel Corporation Apparatus and methods for placing a managed heap

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224772B2 (en) 2006-12-08 2012-07-17 Nec Corporation Data management apparatus, method and program
JP2016024619A (ja) * 2014-07-18 2016-02-08 富士通株式会社 情報処理方法、情報処理装置および情報処理プログラム

Also Published As

Publication number Publication date
US7146361B2 (en) 2006-12-05
US20090222441A1 (en) 2009-09-03
CN1573744A (zh) 2005-02-02
US8280903B2 (en) 2012-10-02
US7512602B2 (en) 2009-03-31
US20040243557A1 (en) 2004-12-02
CN1297935C (zh) 2007-01-31
US20070112763A1 (en) 2007-05-17

Similar Documents

Publication Publication Date Title
US7139752B2 (en) System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
US7512602B2 (en) System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a weighted and (WAND)
Asim et al. A survey of ontology learning techniques and applications
US20040243556A1 (en) System, method and computer program product for performing unstructured information management and automatic text analysis, and including a document common analysis system (CAS)
US20040243554A1 (en) System, method and computer program product for performing unstructured information management and automatic text analysis
US20040243560A1 (en) System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching
Wong et al. Ontology learning from text: A look back and into the future
McBride Jena: Implementing the rdf model and syntax specification
Kowalski Information retrieval architecture and algorithms
Kiyavitskaya et al. Cerno: Light-weight tool support for semantic annotation of textual documents
Abulaish et al. A concept-driven biomedical knowledge extraction and visualization framework for conceptualization of text corpora
Rodrigues et al. Advanced applications of natural language processing for performing information extraction
Siefkes et al. An overview and classification of adaptive approaches to information extraction
Nielsen et al. An architecture for complex clinical question answering
Rugaber et al. Knowledge extraction and annotation for cross-domain textual case-based reasoning in biologically inspired design
Halioui et al. Bioinformatic workflow extraction from scientific texts based on word sense disambiguation
Rao et al. Enhancing multi-document summarization using concepts
Li et al. Natural language interfaces to databases
Klieber et al. Knowledge discovery using the KnowMiner framework
Shi et al. Ontology-based code snippets management in a cloud environment
Tiwari et al. Mold-a framework for entity extraction and summarization
Cotter et al. Pro Full-Text Search in SQL Server 2008
QasemiZadeh Towards technology structure mining from text by linguistics analysis
Canim et al. A knowledge and reasoning toolkit for cognitive applications
Marjalaakso Implementing Semantic Search to a Case Management System

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070814

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070814

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071226

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080206

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101005

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20101005