2つのフレーズの意味的類似性
1. 序章
テキストの類似性は、自然言語処理における活発な研究と応用のトピックの1つです。 このチュートリアルでは、テキストの類似性の定義とタイプを示してから、テキストの意味的類似性の定義、メソッド、およびアプリケーションについて説明します。
2. テキストの類似性
自然言語処理(NLP)では、「2つの単語/フレーズ/ドキュメントは互いにどのように類似していますか?」に対する答えです。 研究とアプリケーションにとって重要なトピックです。 テキストの類似性は、2つの単語/フレーズ/ドキュメントが互いにどの程度近いかを計算することです。その近さは、語彙または意味である可能性があります。
意味的類似性は意味の近さについてであり、語彙の類似性は単語セットの近さについてです。
例として、次の2つのフレーズを確認してみましょう。
- 犬が男を噛む
- 男は犬を噛む
語彙の類似度によると、これら2つのフレーズは非常に近く、同じ単語セットを持っているため、ほとんど同じです。 意味的類似性については、単語セットの類似性にもかかわらず意味が異なるため、完全に異なります。
テキストの類似性の計算は、テキストを特徴のベクトルに変換することに依存します。次に、アルゴリズムはTF-IDFなどの適切な特徴表現を選択します。 最後に、類似性はテキストの表現ベクトルに作用します。
意味関係を考慮に入れるかどうかにかかわらず、テキストの類似性を計算するための多くの手法があります。 これらのテクニックに加えて:
- ジャッカードの類似性
- コサイン類似性
- K-Means
- 潜在的セマンティックインデックス(LSI)。
- 潜在的ディリクレ割り当て(LDA)に加えて、Jaccardなどの任意の距離アルゴリズム
- 単語埋め込みアルゴリズム( Word2Vec など)と組み合わせた以前の手法のほとんどは、優れた結果を示しています
3. 意味的類似性
Google検索を使用した例から始めます。 次の2つのフレーズを見てみましょう。
- 観光産業は崩壊しつつある
- 旅行業界は、Covid-19の危機により、より多くのホリデー企業が崩壊することを恐れています
下の画像のように、Google検索で最初のフレーズを使用した場合、上位5つの結果に2番目のフレーズが表示されます。 語彙の類似性の場合、これら2つのステートメントは互いに近くありませんが、意味の類似性の場合、単語セットの違いにもかかわらず、意味が非常に近いため、非常に近くなります。
イベントは検索結果に影響を与えるため、結果(2番目のフレーズ)は時間とともに変化します。 しかし、確かなことは、結果は異なる単語セットを持ちますが、非常に近い意味を持つということです。
2つのテキスト間の意味的類似性は、それらの意味がどの程度近いかを測定します。この測定値は通常、0から1の間のスコアです。 0はまったく閉じないことを意味し、1はそれらがほぼ同じ意味を持つことを意味します。
4. 意味的類似性の種類
4.1. 知識ベースの類似性
このタイプを使用して、概念間の意味的類似性を判別します。 このタイプは、オントロジーグラフのノードによって各概念を表します。 この方法は、グラフがコーパスの概念の表現として使用されるため、トポロジカル方法とも呼ばれます。
2つの概念(ノード)間のエッジの数が最小であるということは、それらの意味がより近く、意味的にもより近いことを意味します。
次のグラフは、概念がトポロジを形成する方法の例を示しています。このグラフの結果、「コイン」は「クレジットカード」よりも「お金」に近くなります。
4.2. 統計ベースの類似性
このタイプは、コーパスから特徴のベクトルを学習することに基づいて意味的類似性を計算します。
ベクトル表現は、潜在意味解析(LSA)のカウントまたはTF-IDF、明示的意味解析(ESA)のWikipedia概念の重み、自己相互情報量(PMI)の同義語、およびHyperspace Analogue to Langauge(HAL)の事前定義された単語のセット。
このタイプでは、単語の埋め込みは単語間の意味関係をキャプチャするため、以前の手法のほとんどを単語の埋め込みと組み合わせてより良い結果を得ることができます。
4.3. 文字列ベースの類似性
意味的類似性の測定は、このタイプに個別に依存するのではなく、他のタイプと組み合わせて、特徴の非ゼロベクトル間の距離を測定します。
このタイプで最も重要なアルゴリズムは、マンハッタン距離、ユークリッド距離、コサイン類似度、ジャッカードインデックス、およびソーレンセン-ダイスインデックスです。
ユークリッド距離は次のように計算されます。
ここで、は特徴ベクトルのサイズです。
コサイン類似性は次のとおりです。
ここで、は特徴ベクトルのサイズです。
4.4. 言語モデルベースの類似性
科学界は、2016年に、構文的に正しいことを前提として、2つの英語のフレーズ間の新しいタイプの意味的類似性測定としてこのタイプを導入しました。
このタイプには、5つの主要なステップがあります。
- ストップワードの削除
- 品詞(POS)アルゴリズムを使用して2つのフレーズにタグを付ける
- タグ付けステップの出力から、このタイプは各フレーズの構造ツリーを形成します(解析ツリー)
- 解析ツリーを使用して無向加重グラフを作成する
- 最後に、類似性はノード(単語)間の最小距離パスとして計算されます
5. 例
この記事で説明したすべてのアルゴリズムは、さまざまなプログラミング言語、主にPythonとJavaですでに実装され、最適化されています。
Sematch は、意味的類似性を測定するためのPythonの最新ツールの1つです。 それは知識ベースの類似性タイプに依存します。 次のコードスニペットは、0.5の出力で英語の2つの基本的な単語間の意味的類似性を簡単に測定できることを示しています。
from sematch.semantic.similarity import WordNetSimilarity
wns = WordNetSimilarity()
wns.word_similarity('dog', 'cat', 'li')
6. セマンティックテキストの類似性の適用
テキストの意味的類似性は、自然言語処理および言語学の分野で活発に研究されている分野です。 また、自然言語処理や情報科学の多くのアプリケーションに関与しています。
自然言語処理(NLP)では、感情分析、自然言語理解、機械翻訳、質問応答、チャットボット、検索エンジン、情報検索など、多くのアプリケーションで意味的類似性を使用します。
情報科学では、生物医学分野と地球情報学に応用できます。 生物医学情報学は、主に意味的類似性手法を使用して生物医学オントロジー(Genes Ontology)を構築します。 地球情報学、地理的特徴タイプのオントロジーは、意味的類似性のトポロジー的および統計的タイプに依存します。 このタイプのアプリケーションで最もよく知られているツールの1つは、OpenStreetMapのタグのセマンティック類似性を計算するために使用されるOSMセマンティックネットワークです。
7. 結論
この記事では、テキストの類似性を簡単に説明しました。 次に、意味的類似性の定義、タイプと手法、およびアプリケーションを示しました。 また、セマンティック類似性のための最新のPythonライブラリの1つの使用法を示しました。