Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

コンセプトの概要

iKnow 意味分析エンジンは、構造化されていないデータ、つまり、英語やフランス語などの人間の言語でテキストとして記述されたデータの分析に使用されます。iKnow はこの種のデータにすばやくアクセスして分析することができるため、ユーザはすべてのデータを取り扱うことが可能になります。iKnow では、このデータのコンテンツに関する予備知識は一切必要とされません。また、iKnow がサポートする言語の 1 つで記述されている限り、どの言語で記述されているかを知っておく必要もありません。

構造化されていないデータは一般的に、複数のソース・テキスト (多くの場合は非常に多数のテキスト) から構成されます。ソース・テキストは通常、句読点によって文に分割されたテキストから構成されます。ファイル、SQL 結果セットのレコード、一連のブログ・エントリといった Web ソースなどがソース・テキストになります。

シンプルな使用事例

以下の文を例にとって、構造化されていないデータを iKnow がどのように処理するかを見てみましょう。

General Motors builds their Chevrolet Volt in the Detroit-Hamtramck assembly plant.

iKnow は最初にテキストを文に分割し、次にそれぞれの文を意味的に分析します。文中の単語を “理解“ したり調べたりする必要はありません。iKnow は次に、この文の意味的分析結果のエンティティにインデックスを作成します (文字を小文字に正規化します)。

[general motors] {builds} (their) [chevrolet volt] {in} the [detroit-hamtramck assembly plant]

iKnow は、最初の文から以下のエンティティを識別しています。

  • 3 つのコンセプト : [general motors] [chevrolet volt] [detroit-hamtramck assembly plant]

  • 2 つのリレーション : {builds} {in}

  • 1 つのパス関係 : (their)(パス関係はパス分析で考慮されますが、インデックスは作成されません。)

  • 1 つの無関係 : the (無関係なエンティティは破棄されて、以降の iKnow 分析からは除外されます。)

Note:

この例では図示するために、各コンセプトを角括弧で、各リレーションを中括弧で、各パス関係を丸括弧で区切っていますが、iKnow 内ではこのような区切り文字は使用されません。

iKnow は各エンティティに一意の ID を割り当てます。また、iKnow は、コンセプト - リレーション - コンセプト (CRC) というパターンに従うエンティティのシーケンスを識別します。この例では、以下の 2 つの CRC が識別されています。

[general motors] {builds} [chevrolet volt]
[chevrolet volt] {in} (their) [detroit-hamtramck assembly plant]

iKnow は、CRC ごとに一意の ID を割り当てます。

また、iKnow は、この文に連続するエンティティのシーケンス (ここでは、シーケンス CRCRC) が含まれていることを認識します。全部で 1 つのステートメントを表す、文内のエンティティのシーケンスをパスと呼びます。文全体が 1 つのパスになることも、文全体に複数のパスが含まれていることもあります。iKnow は、パスごとに一意の ID を割り当てます。

これで、iKnow はテキストに含まれる文、各文の関連するエンティティ、どのエンティティがコンセプトでどのエンティティがリレーションか、どのエンティティが CRC のシーケンスを形成するか、また、どのエンティティのシーケンスがパスを形成するかを識別しました。iKnow はこれらの意味的ユニット (意味的単位) を使用することで、ソース・テキストのコンテンツに関するさまざまなタイプの意味ある情報を返すことができます。

iKnow とは何か

iKnow は、関連付けられたリレーショナル・エンティティにテキストを分割し、これらのエンティティのインデックスを生成することで、構造化されていないデータへのアクセスを提供します。これはテキストを文に分割し、次にそれぞれの文をコンセプトやリレーションのシーケンスに分割します。iKnow は、テキストの言語 (英語など) を識別してから、対応する iKnow 言語モデルを適用することで、この処理を実行します。

  • リレーションとは、2 つのコンセプトの関係を指定することでそれらのコンセプトを結合する単語や単語のグループです。iKnow には、文のリレーションを識別できるコンパクトな言語モデルが含まれています。

  • コンセプトとは、リレーションによって関連付けられる単語や単語のグループです。iKnow は、リレーションを判別することで、関連付けられるコンセプトを識別できます。このようにして、iKnow 分析エンジンは、コンセプトのコンテンツを “理解“ しなくても、コンセプトを意味的に識別できます。

Note:

説明するならば、動詞は一般的にはリレーションになり、形容詞が関連付けられた名詞は一般的にはコンセプトになります。ただし、リレーションとコンセプトの言語モデルは、単なる動詞と名詞の区別よりはるかに高度で包括的です。

このように、iKnow はコンセプト (C) とリレーション (R) に文を分割します。言語モデルは、リレーションを識別するための一連のコンテキスト・ルールと関係用の単語を含む比較的小さな固定ディクショナリを使用します。リレーションと識別されないものは、すべてコンセプトと見なされます(iKnow は “the“ や “a“ のような無関係な単語も識別して、以降の分析からは除外します)。

リレーションとコンセプトは総称してエンティティと呼ばれます。ただし、関連付けられたコンセプトなしでリレーションが意味を持つことはほとんどありません。このため、iKnow エンティティ分析では、コンセプトおよびリレーションによって関連付けられたコンセプトを含むシーケンスに重点を当てます。

iKnow はリレーションの識別に焦点を当てた小さく安定した言語モデルを使用してテキストを分析するため、どのような内容を含むテキストのインデックスも迅速に作成できます。iKnow はコンセプトを識別するためにディクショナリやオントロジを使用する必要はありません。

iKnow が 1 つまたは (より一般的には) 多数のテキストの各文のコンセプトとリレーションを識別すると、この情報を使用して以下のタイプの処理を実行できます。

  • スマート・インデックス作成 : 構造化されていない大量のテキスト本文から、何が関係性があり、何が関連し、何が代表的かに対する洞察を提供します。

  • スマート・マッチング : ソース・テキスト内のエンティティを、リストやディクショナリといった外部項目と関連付けるための方法を提供します。これらのリストには、完全一致 (同一) と部分一致のための単語、語句、または文を含むことができ、形式によるマッチングのためのテンプレートを含むことができます。

iKnow が提供しない機能

iKnow は検索ツールではありません。検索ツールでは、テキスト内にあると既に確信しているものだけを見つけることができます。インターシステムズは、SQL テーブルにある未構造化テキスト・データの検索ツールとして iFind ツールを提供しています。iFind では、iKnow の機能を多く使用することにより、インテリジェントなテキスト検索を実現しています。

iKnow とは、コンテンツ分析ツールのことです。iKnow を使用すると、コンテンツがまったく未知のテキストを含めて、テキスト・データのコンテンツ全体を使用できます。

iKnow はディクショナリに基づいたコンテンツ・アナライザではありません。ディクショナリに基づいたツールとは異なり、個々の単語に文を区切ってからこれらの単語を “理解“ してコンテキストの再構成を試みることはありません。iKnow は単純にエンティティを意味的に識別します。iKnow がこれらのエンティティをディクショナリやオントロジで調べる必要はありません。このため、その言語モデルはコンパクトで安定し、多目的に使用できるものとなっており、分析するテキストの種類 (医療分野や法務分野など) に関する情報を指定したり、関連用語の別個のディクショナリを提供する必要はありません。iKnow は、用語のディクショナリやオントロジを関連付けることで拡張できますが、基本的な機能ではこれは必要とされません。したがって、iKnow では、ディクショナリの作成、カスタマイズ、または定期的な更新は必要とされません。

iKnow は、語幹解析をサポートしていますが、既定では語幹解析ツールではありません。既定では、語幹形式へのリレーションやコンセプトの縮小は行いません。その代わりに、各要素を別個のエンティティとして取り扱って、他の要素に対する類似性の程度を識別します。iKnow は、オプション機能として語幹解析をサポートします。この機能は、主にロシア語とウクライナ語のテキスト・ソースに使用することをお勧めします。"インターシステムズ・クラス・リファレンス" で説明されているように、Caché は、%TextOpens in a new tab パッケージという語幹解析の実行のために使用できる一連のクラスも提供します。%TextOpens in a new tab%iKnow は、互いに完全に独立しており、異なる目的に使用されます。

iKnow が識別する論理テキスト・ユニット

iKnow は言語モデルを使用して、ソース・テキストを文に分割します。iKnowでは通常、文ターミネータ (通常は句読点記号) とそれに続く最低 1 つの空白または改行により終わるテキスト単位として文を定義します。次の文は、次の非空白文字で始まります。文の開始を示すための大文字と小文字の区別は不要です。

ほとんどの言語において、文ターミネータには、ピリオド (.)、疑問符 (?)、感嘆符 (!)、およびセミコロン (;) が使用されます。また、省略記号 (...) または強調句読点 (??? または !!!) など、ターミネータを複数使用することもできます。任意のターミネータの組み合わせ (...!?) も使用できます。文ターミネータ間の空白は新しい文を示すので、省略記号に空白が含まれていると (. . .)、実際には 3 つの文になります。文ターミネータの次には、空白文字 (スペース、タブ、または改行) が続くか、または一重引用符か二重引用符に空白文字が続くかのいずれかとなります。例えば、"Why?" he asked. は 2 つの文ですが、"Why?", he asked. は 1 つの文となります。

2 行改行は、文ターミネータ文字の有無とは関係なく、文ターミネータとして機能します。したがって、タイトルやセクション見出しは、空白行が続いた場合、個別の文と見なされます。また、ファイルの終わりも文ターミネータとして扱われます。したがって、ソースに 1 つでもコンテンツ (空白を除く) が含まれている場合、文ターミネータの存在とは無関係に、少なくとも 1 つの文が含まれることになります。同様に、ファイルの最後のテキストは、文ターミネータの存在とは関係なく、個別の文として扱われます。

通常、ピリオド (.) に空白が続く場合は文の区切りを示しますが、iKnow 言語モデルはこの規則の例外を認識します。例えば、英語モデルでは “Dr.“ や “Mr.“ などの一般的な省略形が認識され (大文字と小文字の区別なし)、文区切りを実行するのではなく、ピリオドを削除します。英語モデルでは、“No.“ は省略形として認識されますが、小文字の “no.“ は文ターミネータとして扱われます。

構成の UserDictionary オプションを使用して、特定の場合に文を終了させたり、文の終了を回避することができます。例えば、“Fr.” という Father または Friar の省略形は、英語モデルでは認識されません。これは文の区切りとして処理されます。UserDictionary を使用すると、ピリオドを削除するか、またはこのピリオドの使い方では文区切りが起こらないように指定できます。UserDictionary はソースがロードされるときに適用されます。既にロードされているソースは影響を受けません。

エンティティ

エンティティとは、テキストの最小限の論理ユニット (論理単位) です。エンティティは、単語または単語のグループです。単語のグループとは、1 つの概念または関係に iKnow が単語を論理的にまとめたものです。電話番号や電子メール・アドレスなどの他の論理ユニットも、エンティティと見なされます (そして概念として扱われます)。

Note:

日本語のテキストは、コンセプトとリレーションに分別できません。その代わりに、iKnow は、助詞の付いたエンティティのシーケンスとして、日本語のテキストを解析します。日本語の “エンティティ“ の定義は、その他の iKnow 言語におけるコンセプトとほぼ同じです。iKnow 日本語サポート (日本語で記述) の説明については、"iKnow Japanese の概要Opens in a new tab" を参照してください。

iKnow は比較やカウントを行うことができるように、エンティティを正規化します。また、無関係な単語を除去します。そしてエンティティを小文字に変換します。さらに、ほとんどの句読点や一部の特殊文字をエンティティから除去します。

既定では、iKnow はエンティティの分析をコンセプトに制限します。既定では、リレーションは、コンセプトを連結するという役割によってのみ分析されます。この既定はオーバーライドすることが可能です。詳細は "iKnow クエリ" の章の “ポジションによる制限“ のセクションを参照してください。

パス関係の単語

iKnow は各言語で特定の単語を文およびパスの分析における主要部分として識別しますが、それ以外は無関係と見なします。文またはパスのコンテキスト以外では、これらの単語には情報を提供する内容がほとんど含まれていません。以下は、一般的なパス関係の単語です。

  • あらゆるタイプの代名詞 : 定代名詞、不定代名詞、所有代名詞。

  • 時間、頻度、または場所に関する曖昧な表現。例えば、“then”、“soon”、“later”、“sometimes”、“all”、“here”。

単語は、概念または関係の一部ではない場合、パス関係としてのみ見なされます。例えば、“He said this was his” にはパス関係が含まれています。“His teacher said this signature was his name” にはパス関係は含まれていません。

パス関係の単語はコンセプトと見なされず、頻度または優位性の計算でもカウントされません。パス関係の単語は否定マーカまたは時刻属性マーカである場合もあります。パス関係の単語は語幹抽出されません。

無関係な単語

iKnow は、各言語の特定の単語を無関係な単語として識別し、これらの単語を iKnow のインデックス作成から除外します。様々な種類の無関係な単語があります。

  • iKnow 言語モデルによって意味的な重要性がほとんどまたはまったくないと見なされる冠詞 (“the“ や “a“ など) やその他の単語。

  • “And”、“Nevertheless”、“However”、“On the other hand” など、文頭の前置きの単語や語句。

  • スペースまたは文の句読点で分割されていない 150 文字を超える文字列。この長さの “単語“ は、テキスト・エンティティではない可能性が非常に高く、したがって iKnow のインデックス作成から除外されます。まれな状況 (化学の専門用語や URL 文字列など) ではこれらの 150 文字を超える単語が意味を持つため、iKnow はこれらに属性 “nonsemantic“ というフラグを付けます。

無関係な単語は、iKnow のインデックス作成から除外されますが、文が表示されるときには保持されます。

CRC と CC

iKnow はコンセプト (C) とリレーション (R) に文を分割すると、こうした基本エンティティ間の「つながり」のタイプを判別できます。

  • CRC は、コンセプト - リレーション - コンセプトのシーケンスです。CRC は、マスタ・コンセプト - リレーション - スレーブ・コンセプトのシーケンスとして扱われます。エンティティが、マスタ、リレーション、またはスレーブのいずれであるかは、ポジションと呼ばれます。場合によっては、CRC のシーケンス・メンバ (CR または RC) の 1 つの文字列値が空になることもあります。これは、例えば、“Robert slept“ など、CRC のリレーションが自動詞の場合に起こります。

  • iKnow は各コンセプトのポジションを保持しますが、2 つのコンセプトのリレーションは無視します。CC は、2 つの関連付けられたコンセプトとして扱うことも、マスタ・コンセプト/スレーブ・コンセプトのシーケンスとして扱うことも可能です。CC ペアを使用して、マスタ/スレーブのポジションやリンクするリレーションにかかわらず、関連付けられたコンセプトを識別することができます。これはコンセプトのネットワーク、つまり、どのコンセプトが他のどのコンセプトとつながっているかを判断する際に特に役立ちます。また、CC ペアはマスタ/スレーブのシーケンスとしても使用できます。

Note:

日本語は、CRC や CC に関して意味的に分析することはできません。これは、iKnow が日本語のエンティティをコンセプトとリレーションに分別しないためです。

パス

パスは、1 つの文におけるエンティティの意味のあるシーケンスです。西洋語では、一般に、パスは連続する CRC に基づいています。そのため、結果としてのパスには、原文の順序でエンティティ (コンセプトとリレーション) が含まれます。通常、これは、連続する CRC のシーケンスを形成します (例外もあります)。例えば、一般的なパスのシーケンスでは、1 つの CRC のスレーブ・コンセプトが、次の CRC のマスタ・コンセプトになります。この結果、C-R-C-R-C という 5 つのエンティティから成るパスが形成されます。コンセプトとリレーションの他の意味のあるシーケンスもパスとして扱われます。例えば、コンセプトの代役としてパス関係の代名詞を含むシーケンスなどです。

日本語の場合、パスは原文のエンティティのシーケンスに基づくことができません。それでも、iKnow は、日本語テキストで意味を持つエンティティのシーケンスとしてパスを識別します。日本語の iKnow 意味分析には、エンティティ・ベクトルを作成するためのエンティティ・ベクトル・アルゴリズムが使用されます。iKnow が日本語の文をエンティティ・ベクトルに変換するときは、どのエンティティが結び付いているのかと、その結び付きの強さを示すために、通常は原文と異なる順序でエンティティをリストします。その結果としてのエンティティ・ベクトルが、パスの解析に使用されます。

パスは少なくとも 2 つのエンティティを含んでいる必要があります。すべての文がパスであるわけではありません。非常に短い文は、パスと見なされるために必要な最小数のエンティティを含まない場合があります。

パスは常に 1 つの文の中に収まります。ただし、1 つの文に複数のパスが含まれる場合があります。これは、連続しないシーケンスが文中に識別された場合に起こります。パス・シーケンスを含むエンティティは、識別されると、区分けと正規化が施され、パスには一意の ID が割り当てられます。意味を持って関連付けられた一定エンティティを識別できるほど CRC のみの分析が大規模でない場合は、パスが役立ちます。特に、幅広いコンテキストの小さな言語単位が返される場合には、パスは有用となります。

スマート・インデックス作成

スマート・インデックス作成とは、構造化されていないテキストを、コンセプトとリレーションのリレーショナル・ネットワーク (関係網) に変換するプロセスです。構造化されていない複数のテキストのコンテンツにインデックスを作成し、頻度の順に概念をリストするなど、結果として作成されたインデックス付きのエンティティをユーザが定義したクエリ条件に従って分析できます。それぞれのインデックス付きエンティティは、そのソース・テキスト、ソース文、およびリレーショナル・エンティティ (CRC シーケンスにおけるポジションなど) を参照できます。スマート・インデックス作成の一部として、iKnow はインデックスが作成されたそれぞれの概念に、テキストにおけるその概念の合計出現数 (頻度) と、その概念が出現するテキストの数 (分散) を示す 2 つの値を割り当てます。

複数のテキストについてスマート・インデックス作成を実行すると、iKnow はこの情報を使用してソース・テキストを分析できます。例えば、iKnow はインテリジェント・コンテンツ参照を実行できます。iKnow がインデックスを作成した任意の選択項目から、項目の類似性の程度に基づいて、他の項目を参照できます。インテリジェント参照は、1 つのソース・テキスト内またはインデックスが作成された全ソース・テキスト上で実行できます。

テキストのインデックスを作成すると、iKnow は個々のテキストの要約を生成できます。ユーザは元のテキストのパーセンテージとして要約の長さを指定します。iKnow は、インデックス統計に基づいて、全体に最も関連性がある元のテキストの文から構成される要約テキストを返します。例えば、100 の文から構成されるテキストに対して 50% の要約を指定した場合は、iKnow は最も関連性がある 50 の文から構成される要約テキストを元のテキストから生成します。

スマート・マッチング

iKnow がテキストのコレクションにインデックスを作成すると、ユーザが定義した 1 つ以上の一致リストに対してテキスト内の項目をマッチングさせ、一致した項目にタグを付けることができます。スマート・マッチングは概念と語句に対して、完全なコンテキストの意味的理解に基づいた高精度のタグ付けを実行します。一致は、類似する概念や語句の間で発生する場合と、完全一致 (同一) の場合があります。このタグ付けは意味的一致の検出に基づくため、スマート・マッチングではテキスト・コンテンツを理解する必要は一切ありません。

テキスト内の一致する語句の各出現箇所がタグ付けされると、タグ・テキストとの関連付けが維持されます。これらの語句は、1 つのエンティティ、CRC、またはパスとしてマッチングできます。例えば、国名のリストを指定して、テキストにおける国名の各出現箇所にタグ付けし、迅速なアクセスを実現できます。アナリスト・レポートとマッチングするための会社名のディクショナリを作成することで、関心のある会社の最新ニュースを迅速に見つけることが可能になります。また、指定の医療処置の各出現箇所 (多様な言い回しで出現) を医療診断コードにマッチングさせるためのディクショナリを作成することもできます。

ディクショナリ・マッチングは単純なエンティティだけに制限されず、ディクショナリの用語自体が 1 つのエンティティの枠を超える場合は、CRC やパスに拡張します。iKnow はソース・テキストにインデックスを作成するのと同じようにディクショナリ用語にインデックスを作成するため、ディクショナリ・エントリは 1 つの文と同じ長さになる可能性があります。類似する情報を見つけるには、ソースに対してディクショナリ・エントリの文をマッチングさせるのが便利な場合もあります。

FeedbackOpens in a new tab