文書-用語行列は、コレクション内の各文書に出現する用語の頻度を表す数学的な行列です。文書-用語行列では、行はコレクション内の文書に対応し、列は用語に対応します。この行列は、文書-特徴行列の特定の例であり、「特徴」は用語以外の文書の他のプロパティを指す場合があります。[ 1 ]また、文書が列、用語が行となる転置行列、つまり用語-文書行列に遭遇することもよくあります。これらは、自然言語処理や計算テキスト分析の分野で役立ちます。[ 2 ]
セルの値は一般的に特定の用語の生のカウントですが、行正規化(つまり相対頻度/割合)やtf-idfなど、生のカウントに重み付けするためのさまざまなスキームがあります。
用語は通常、空白または句読点で区切られた単語(ユニグラムとも呼ばれる)で構成されます。このような場合、個々の単語の出現回数は保持されますが、文書内の単語の順序は保持されないため、「単語の袋」表現とも呼ばれます。
文書コーパスに現れる用語のデータセットを作成する場合、文書-用語行列には、文書に対応する行と用語に対応する列が含まれます。したがって、各ijセルは、文書iにおける単語jの出現回数です。このように、各行は、その行に対応する文書の内容を表す用語カウントのベクトルです。たとえば、次の 2 つの (短い) 文書があるとします。
すると、文書-単語行列は次のようになります。
これは、どの文書にどの用語が何回出現するかを示します。文書を単なるトークン数のリストとして表現する場合とは異なり、文書-用語行列にはコーパス内のすべての用語(つまり、コーパス語彙)が含まれるため、特定の文書に出現しないコーパス内の用語はカウントがゼロになります。このため、文書-用語行列は通常、疎行列形式で保存されます。
ほぼすべてのコーパスにおいてトークンの分布がべき乗則に従うため(ジップの法則を参照)、カウントに重み付けを行うのが一般的です。これは、カウントを文書内のトークンの総数で割る(相対頻度または比率と呼ばれる)、各文書内の最大頻度で割る(プロップマックスと呼ばれる)、または頻度の対数を取る(ログカウントと呼ばれる)といった簡単な方法で行うことができます。コーパス全体と比較して、個々の文書に最も固有の単語に重み付けをしたい場合は、単語頻度をその単語の文書頻度で割るtf-idfを使用するのが一般的です。
文書-単語マトリックスは、テキストのコンピュータ化が始まった初期の頃に登場しました。文書の保存容量が増加するにつれて、特定の文書を効率的に検索するという課題が生じました。以前は分類と索引付けは手作業で行われていましたが、研究者たちは単語の出現頻度情報を用いてこれを自動的に行う可能性を探りました。
最初に発表された文書用語マトリックスの1つは、ハロルド・ボルコの1962年の論文「経験に基づいた数学的に導出された分類システムの構築」(282ページ、1965年の論文[ 3 ]も参照)に掲載されている。ボルコは、システム開発会社のジョン・C・オルニーが作成した「FEAT」(「Frequency of Every Allowable Term」の略)と、同じくシステム開発会社のアイリーン・ストーンが作成した記述語索引プログラムという2つのコンピュータプログラムに言及している。
実験ライブラリを構成する文書を選択した後、次のステップは、コンピュータ処理の準備としてテキスト全体をキーパンチすることであった。この分析に使用されたプログラムは FEAT (Frequency of Every Allowable Term) であった。これは System Development Corporation の John C. Olney によって作成され、個々の単語および単語ペアの頻度と要約カウントを実行するように設計されている。このプログラムの出力は、テキストに出現したすべての単語タイプを出現頻度順にアルファベット順に並べたリストである。and、the、at、a などの特定の機能語は「禁止語リスト」テーブルに配置され、これらの単語の頻度は別のリストに記録された。この情報を提供し、因子分析プログラムへの入力に適した形式で文書-単語マトリックスを作成するために、記述語索引プログラムと呼ばれる特別なコンピュータプログラムが作成された。記述語索引プログラムは System Development Corporation の Eileen Stone によって作成された。[ 4 ]
その後間もなく、ジェラード・サルトンは1963年に「自動文書検索のためのいくつかの階層モデル」を発表し、その中には文書-用語マトリックスの視覚的表現も含まれていた。[ 5 ]サルトンは当時ハーバード大学に在籍しており、彼の研究は空軍ケンブリッジ研究所とシルバニア・エレクトリック・プロダクツ社の支援を受けていた。この論文で、サルトンは単語間の類似性を測定するために使用される一種の用語-文脈マトリックスと比較することで、文書-用語マトリックスを紹介している。
単語の関連付けではなく、文書の関連付けや文書のクラスタを生成したい場合は、少し変更を加えた同じ手順を使用できます。単語-文行列Cから始める代わりに、文書 D jにおける単語 W iの出現頻度をリストした単語-文書行列Fを構築する方が便利です。文書の類似性は、行のペアを比較し、指定された文書に含まれる内容語の共起頻度に基づいて類似性係数を取得することによって、以前と同様に計算できます。この手順により、文書-文書類似性行列が生成され、これは文書クラスタの生成に使用できます。[ 5 ]
ボルコとサルトンに加えて、1964年にFWランカスターは自動索引付けと検索に関する包括的なレビューを発表した。この研究は彼がワシントンDCのハーナー・アンド・カンパニーに勤務していたときに発表されたものだが、論文は「AslibでAslibクランフィールド・プロジェクトに関する研究に従事していた」ときに書かれたものである。[ 6 ]ランカスターは文書-用語マトリックスをボルコの功績としている。
システム開発会社のハロルド・ボルコは、この手法をさらに発展させた。実験用語彙集から重要な手がかり語群を選び出す。これらの語は文書/用語マトリックスに配置され、各文書における各用語の出現頻度を示す。…次に、文書セットにおける共起に基づいて、各単語ペアの相関係数を計算する。得られた用語/用語マトリックスを因子分析し、一連の因子を分離する。これらの因子は、各因子に現れる高負荷の用語に基づいて解釈および命名されると、経験的分類のクラスとなる。各因子で高負荷の用語は、カテゴリの手がかり語または予測語となる。
行列に関する一つの見方は、各行が文書を表すというものです。通常、文書-用語行列を計算する際に用いられるベクトル意味モデルでは、意味的に重要な用語の出現頻度によって文書の主題を表現することが目的です。用語は文書の意味単位です。インド・ヨーロッパ語族においては、名詞、動詞、形容詞がより重要なカテゴリであり、これらのカテゴリの単語を用語として保持すべきであると想定されることが多いです。共起語を用語として追加することで、特に文書間の類似性を計算する際に、ベクトルの質が向上します。
潜在意味解析(LSA、文書-単語行列に対して特異値分解を行う)は、多義語の曖昧性を解消し、クエリの同義語を検索することで検索結果を改善できます。しかし、高次元の連続空間での検索は、検索エンジンの標準的なトライ木データ構造での検索よりもはるかに時間がかかります。
文書-単語行列の多変量解析により、コーパスのトピック/テーマを明らかにすることができます。具体的には、潜在意味解析やデータクラスタリングが用いられ、近年では、確率的潜在意味解析とその一般化である潜在ディリクレ配分、および非負行列因子分解が、このタスクにおいて優れた性能を発揮することが分かっています。
{{cite book}}ISBN /日付の不一致(ヘルプ)