1. 序章

このチュートリアルでは、特定のテキストでキーワードとキーフレーズを抽出するための手法とアルゴリズムについて説明します。 通常、これらは情報検索(IR)のより大きな傘下にあり、多くの場合、自然言語処理(NLP)技術を使用して実行されます。

キーワードは基本的にテキストの本質を説明する単語です。 キーフレーズも同様の意味ですが、単一の単語ではなく、複数の単語で構成されています。 キーフレーズ抽出は、特定のテキスト内のキーフレーズを自動的に識別するプロセスです。

2. IRとNLPとは何ですか?

情報検索(IR)は、情報ニーズに関連するリソースを取得するプロセスです。 たとえば、Web検索エンジンでの検索クエリは情報の必要性である可能性があります。 検索エンジンは、関連するリソースを表すWebページを返すことができます。

自然言語処理(NLP)の手法の1つを使用してIRを実行することがよくあります。 NLPは、人間の言語の機械的解釈に関係する人工知能のサブフィールドです。 実際、それは言語学、コンピューターサイエンス、人工知能の相互作用に位置しています。

マシンは、文法に厳密に従うため、プログラミング言語をより理解することができます。 逆に、人間の言語は多くのあいまいさと不正確な特性を持っている傾向があります。 これにより、人間の言語の処理が機械にとって困難になります。

NLPは、自然言語でテキストの構文的および意味的分析を実行するための多くの技術とアルゴリズムを提供します。 利用可能なアルゴリズムを使用して、重要なデータを収集し、スペルや文法の修正、言語の翻訳、テキストの要約、キーフレーズの抽出などの高度なタスクを実行できます。

3. 基本的な概念

キーフレーズ抽出のためのNLPの手法とアルゴリズムについて説明する前に、いくつかの基本的な概念を見ていきましょう。

3.1. 言語学における専門用語

NLPは言語学と大部分が重複しているため、かなりの専門用語を共有しています。 このチュートリアルで私たちが興味を持ついくつかの用語を理解しましょう。

英語のような自然言語のテキストは文で構成されています。 文はさらに単語と句読点で構成されます。 これらの単語と句読点をトークンと呼びます。 トークンは言語学においてより一般的な意味を持っていることに注意してください。 さらに、それぞれの個別のトークンはタイプとして知られています。

言語の単語のセットは、語彙として知られています。 一連のトークンは、計算言語学でしばしば重要になります。 1トークンのシーケンスはユニグラムと呼ばれ、2つのトークンのシーケンスはバイグラムと呼ばれます。 同様に、n個のトークンのシーケンスはn-gramとして知られています。

言語からの構造化された原則的なテキストのコレクションは、コーパスとして知られています。 コーパスの複数形はコーパスです。コーパスはコーパス言語学において計り知れない価値があります。 私たちがオンラインで利用できる英語や他の言語のコーパスがいくつかあります。

3.2. 言語モデル

言語モデリングは、確率モデルの開発であり、シーケンス内の次の単語の前にある単語を予測できます。 言語モデルは、コーパスなどのテキストの例に基づいて単語の出現確率を学習します。

言語モデルは、語彙から引き出された文字列に確率測度を置きます。 これらの文字列は、単一の単語、単語の短いシーケンス、完全な文、または段落にすることができます。

言語モデルを作成する従来の方法は、統計的言語モデリングです。 たとえば、確率の連鎖律を使用して、一連の単語の確率を計算できます。

先行する単語の長いシーケンスで確率を計算することは非現実的であることがわかる場合があるため、近似を使用することがよくあります。 n-gram言語モデルは、先行する単語の数をn-1に近似することにより、特定の単語の確率を予測します。

最近では、ニューラルネットワークを使用して言語モデルの作成を達成することが多く、したがってそれらをニューラル言語モデリングと呼んでいます。

3.3. 関連関数

多くのNLPアルゴリズムでは、一連のトークンとテキストの関連性を判断する必要があります。 それを決定するために使用できるいくつかの統計的および確率的尺度があります。

用語頻度-逆ドキュメント頻度、略して TF-IDFは、単語がコーパス内のテキストにどの程度関連しているかを示す統計的尺度です。 用語頻度とは、単語がテキストに表示されるインスタンスの数を指します。 逆文書頻度とは、この単語がコーパス内のすべてのテキストでどれほど一般的であるかを指します。

コーパス(D)の一部としてのテキスト(d)内の単語(t)のTF-IDFスコアは、これら2つの統計、用語頻度、および逆文書頻度の乗算です。

用語頻度と逆文書頻度を数学的に定義するいくつかの方法がありますさまざまな重み付けおよび正規化スキームを使用します。

Okapi Best Match 25、または単にBM25は、確率的検索フレームワークに基づくランキング関数であり、従来のTF-IDFメジャーを改善します。 基本的に、近接度に関係なく、各テキストに表示されるクエリ用語に基づいてテキストのセットをランク付けします。

3.4. 単語の類似性

いくつかのNLPタスクでは、2つの単語またはフレーズが互いにどの程度類似しているかを判断できる必要があります。 この文脈では、類似性は複数のことを意味する可能性があります。 語彙の類似度または意味の類似度に関心を持つことができます。

単語の語彙の類似度を決定するためのいくつかの一般的なアルゴリズムには、Jaccardの類似度、レーベンシュタイン距離、および余弦の類似度が含まれます。 たとえば、正弦波の類似性は、多次元空間に投影された2つのベクトル間の角度の正弦波を測定することによって機能します。

ここでのベクトルは、テキストの数値表現です。 テキストを数値ベクトルとして表現する方法はいくつかあります。 最も単純なアプローチの1つは、ワンホットエンコーディングです。 ただし、これらの方法では、テキストの意味値をキャプチャできません。

単語の埋め込みは、単語の意味をキャプチャすることにより、単語を数値ベクトルとして表すのにより効率的であることが証明されています。 よく引用される例は次のとおりです。

Word2Vec は、ニューラルネットワークを使用して大きなテキストコーパスから単語の埋め込みを生成する、TomasMikolovによって開発された人気のあるアルゴリズムです。 言語モデルは、単語の埋め込みを生成するのにも非常に効果的です。

4. データのクリーンアップと準備

アルゴリズムの1つを適用する前に、入力データをクリーンアップして準備する必要があることがよくあります。 これは、自然言語のテキストがかなり乱雑になり、アルゴリズムがそれを効率的に解析および処理して、期待する結果を得ることが困難になる可能性があるためです。

キーフレーズ抽出のタスクに使用できるNLPの一般的な手法のいくつかを紹介します。

4.1. トークン化

トークン化とは、テキストをより小さなトークンに分割するプロセスを指します。 これには、段落を文に分割したり、文を単語、単語の一部、さらには文字に分割したりすることが含まれる場合があります。 これは、NLPでタスクを実行するために必要な語彙を作成するための基本的なステップです。

トークン化における最も重要な考慮事項の1つは、境界の識別です。 たとえば、英語では、単語は空白で区切られますが、他の言語ではそうではない場合があります。 テキストを分割するレベルに応じて、単語トークン化、文字トークン化、またはサブ単語トークン化を選択できます。

4.2. ステミングとレマタイゼーション

自然言語では、単語は文法的な用法を変えるさまざまな形をとることができますが、意味的な価値は変えません。 たとえば、 travel travelling travels 、および traveled の使用法は異なりますが、意味は似ています。 NLPの分野では、これらの語形は語形変化として知られています。 IRの場合、これらの単語をすべて基本形に減らすことが望ましい場合がよくあります。

ステミングとレンマ化の両方の目的は、テキスト内の語尾変化した単語の基本形を生成することです。 ステミングは、単語の末尾を切り取って基本形を取得することにより、ヒューリスティックなアプローチを採用する際に粗雑になります。 レマタイゼーションはより洗練されており、語彙と形態素解析を使用して同じことを実現します。

4.3. 品詞タグ付け(POST)

品詞、または単にPoSは、同様の文法特性を持つ単語のカテゴリです。 英語では、通常、名詞、動詞、冠詞、形容詞などの9つの品詞を識別します。 文中の同じ単語を名詞または動詞として使用できます。 たとえば、次の文のparkという単語の使用法を参照してください。

品詞タグ付けは、基本的に使用法に応じて、特定の品詞に対応するものとしてテキスト内の単語をマークアップするプロセスです。 通常、これを自動的に実現するために、ルールベースまたは確率的タガーアルゴリズムを使用します。 PoSタグ付けには、NLPにいくつかのアプリケーションがあります。

4.4. 固有表現抽出(NER)

名前付きエンティティは、都市、人、組織などの実世界のオブジェクトを指します。 たとえば、Baeldung、London、Jack Danielなど、これらはすべて、任意のテキストで名前付きエンティティと呼ぶことができます。 場合によっては、名前付きエンティティには、400海里や2020年などの時間的および数値的な表現が含まれることもあります。 たとえば、次の文を分析してみましょう。

名前付きエンティティの認識は、非構造化テキストで名前付きエンティティを識別するプロセスです。 自動名前付きエンティティ認識には、いくつかのルールベースの統計アルゴリズムがあります。 統計的固有表現抽出には、通常、教師ありおよび半教師あり機械学習モデルが含まれます。 これには、コンテンツの分類、インデックス作成、推奨事項など、IRで多くのアプリケーションがあります。

4.5. コロケーション抽出

コロケーションとは、基本的に、偶然の一致として却下できるものよりもコーパスに一緒に現れることが多いトークンのシーケンスを指します。 これは、文法的な方向性よりも文化的な意味合いがあります。 たとえば、一般的には「ストロングティー」や「パワフルコンピューター」などのフレーズをよく使用します。 コロケーションには主に6つのタイプがあります。

コロケーション抽出は、アルゴリズムを使用してテキスト内のすべてのコロケーションを自動的に識別するタスクです。 コロケーションを識別する最も簡単なアルゴリズムの1つは、コーパス内の頻度を使用します。 より洗練されたアルゴリズムでは、平均および分散ベースの方法、および自己相互情報量を使用できます。 これは、IRタスクで役立つアプリケーションになります。

5. キーフレーズ抽出のアルゴリズム

大まかに言えば、自動キーフレーズ抽出のプロセスを候補者の識別とキーフレーズの選択に分割できます。 まず、テキストのトピックコンテンツを伝える可能性のある単語やフレーズのセットを特定します。 次に、スコアリングメカニズムに基づいてランク付けし、最適な候補を選択します。

5.1. キーフレーズの識別

テキストからキーフレーズを抽出するための最初のステップは、潜在的な候補を特定することです。 明らかに、関心のあるテキストのトークン化を実行することから始めます。 総当たり攻撃のアプローチは、nの特定の制限に対して可能なすべてのnグラムを選択することです。 たとえば、すべてのユニグラム、バイグラム、およびトリグラムを検索することに関心がある場合があります。

適度なサイズのテキストであっても、これにより膨大な量の候補者を通過させることができます。 もちろん、これらの候補者のほとんどが私たちにとって興味がないことを理解するのは難しいことではありません。 幸いなことに、前に説明した1つ以上のNLP手法を適用して、可能性のある候補のサイズを制限することができます

たとえば、語尾変化のある単語を、語幹変化と語彙化の手法を使用して基本形に制限することから始めることができます。 ストップワードと句読点は、タスクに必要ない場合があるため、削除することもできます。 ただし、これらのテクニックのいくつかは、特定のフレーズのセマティックロスにつながる可能性があることに注意する必要があります。

さらに、PoSタグ付けを使用して、特定の品詞を含む単語を除外できます。 PoSパターンを使用して、候補フレーズを特定のパターンに制限することもできます。 たとえば、任意の数の形容詞の後に少なくとも1つの名詞が続くようなパターンに関心がある場合があります。

以前に学んだもう1つの重要なトリックは、エンティティ認識という名前です。 これは、潜在的な候補フレーズを識別するための便利なツールになります。 さらに、コロケーション抽出を使用して、より一般的に表示される傾向のあるフレーズを識別することができます。 結果として、そのようなフレーズはテキストを説明するより良いチャンスを持っています。

5.2. キーフレーズの選択

候補となるキーフレーズを特定する予備段階では、いくつかのキーフレーズが生じる可能性があります。 もちろん、それらのすべてが適切であり、テキストの意味を同様に伝えるわけではありません。 私たちがしなければならないのは、残りのキーフレーズから最良のものを選択することです。

どのキーフレーズが他のキーフレーズよりもテキストとの関連性が高いかを判断する最も簡単な方法の1つは、統計的尺度の1つを使用することです。 この目的のためにTF-IDFやBM25などの手段をどのように使用できるかを以前に学びました。 残念ながら、頻度ベースの統計は、必ずしもキーフレーズ選択の関連性の最良の尺度ではありません。

関連するキーフレーズを選択するためのより洗練された方法では、教師なしおよび教師なしの機械学習モデルを使用します。 監視対象のメソッドは、適切にラベル付けされたトレーニングデータに依存して機能します。 これらの方法ではパフォーマンスが向上しますが、トレーニングデータの生成は簡単な作業ではありません。 それどころか、教師なしメソッドは、ラベル付けされたトレーニングデータなしで基礎となる構造を発見しようとします。

5.3. 教師なしメソッド

監視されていないキーフレーズ抽出に向けた人気のあるアプローチには、グラフベースのランク付け方法が含まれます。 グラフベースのランキングアルゴリズムは、グラフ内の頂点に重要度を割り当てることで機能します。 頂点の重要性は、グラフの構造から導き出されます。 人気のあるグラフベースのランキングアルゴリズムには、 TextRank HITS Positional Power Function 、およびPageRankが含まれます。

キーフレーズ抽出のコンテキストでは、テキストをグラフに変換します。ここで、ノードは候補のキーフレーズを表し、頂点はそれらの関係を表します。 ここで、候補キーフレーズ間の関係は、それらが一緒に表示される頻度、またはそれらが意味的にどれだけ近いかによって決定できます。

有向グラフを作成するとします。ここで、は頂点のセットであり、はエッジのセットです。 頂点のスコアまたは重要度は次のように定義されます。

これは、を指す頂点のセットであり、を指す頂点のセットです。 また、は0と1の間に設定された減衰係数です。

テキストをグラフに変換したら、グラフベースのランキングアルゴリズムの1つを使用して、このグラフを実行し、最高スコアの用語を指定できます。 この分野のアルゴリズムはグラフベースのランキングアルゴリズムだけではなく、トピックベースのクラスタリング手法などの代替手段があることに注意してください。

5.4. 監視対象メソッド

監視されたキーフレーズ抽出方法は、通常、キーフレーズ抽出の問題を分類またはランク付けの問題に再定式化することによって機能します。 分類アプローチでは、候補のキーフレーズがテキストを表すのに適しているかどうかを知ることに関心があります。 ただし、これは単純なタスクではないため、ランク付けアプローチでは、関連性に基づいて候補者をペアごとにランク付けしようとします。

問題を再定式化したら、次の重要なタスクは、私たちの決定に最も関連する機能を選択することです。 ここでは、頻度に関連する統計的測定値が重要な役割を果たしますが、フレーズの長さやフレーズの位置など、重要になる可能性のある他のいくつかの機能があります。

ここで使用できる教師あり学習用の従来の機械学習アルゴリズムがいくつかあります。 たとえば、 Naive Bayes Decision Trees Support VectorMachinesなどです。 ただし、一部の特定の実装は、他の実装よりも法案に適合します。 たとえば、 KEAは、キーフレーズを選択するためにとを使用するバイナリ分類法です。

KEAは、単純ベイズ手法を使用して、特徴値を使用してクラスを予測するためのモデルを生成します。 これは、特徴値から2セットの数値の重みを学習することで機能します。

最初のセットは肯定的な例(「キーフレーズです」)に適用され、2番目のセットは否定的な例(「キーフレーズではない」)に適用されます。 最後に、これらの重みに基づいて、候補キーフレーズの全体的な確率が計算されます。 次に、候補のキーフレーズがこの確率に基づいてランク付けされます。

6. 結論

この記事では、IRとNLPの基本的な概念について説明しました。 私たちは主に、自動キーフレーズ抽出で最も頻繁に使用される手法とアルゴリズムに焦点を当てました。 最後に、キーフレーズの識別と選択に使用できるプロセスとアルゴリズムについて説明しました。