Gensim-documents-and-corpus

提供:Dev Guides
移動先:案内検索

Gensim-ドキュメントとコーパス

ここでは、ドキュメントとコーパスに主に焦点を当てて、Gensimのコアコンセプトについて学習します。

Gensimのコアコンセプト

以下は、Gensimを理解して使用するために必要なコアコンセプトと用語です-

  • ドキュメント-ZItはテキストを参照します。
  • コーパス-ドキュメントのコレクションを指します。
  • Vector -ドキュメントの数学的表現はベクターと呼ばれます。
  • モデル-ベクトルをある表現から別の表現に変換するために使用されるアルゴリズムを指します。

ドキュメントとは何ですか?

説明したように、それはいくつかのテキストを指します。 少し詳しく説明すると、Python 3では _ ‘str’ _ と呼ばれるテキストシーケンスタイプのオブジェクトです。 たとえば、Gensimでは、ドキュメントは次のようなものになります-

  • 140文字の短ツイート
  • 単一の段落、つまり 記事または研究論文の要約
  • ニュース記事
  • Book
  • 小説
  • 論文

テキストシーケンス

テキストシーケンスタイプは、Python 3では一般的に _ ‘str’ ' として知られています。 Pythonでは、テキストデータは文字列またはより具体的には ' ‘str’ _ オブジェクトで処理されることがわかっています。 文字列は基本的にユニコードコードポイントの不変のシーケンスであり、次の方法で書くことができます-

  • 一重引用符-たとえば、* ‘Hi! お元気ですか?'。 また、二重引用符を埋め込むことができます。 たとえば、 ‘Hi! "お元気ですか?'*
  • 二重引用符-たとえば、* "Hi! お元気ですか?"。 また、単一引用符を埋め込むことができます。 たとえば、「こんにちは! 'お元気ですか?"*
  • 三重引用符-* 'Hi! お元気ですか?'。 または、 "" "のような3つの二重引用符 'お元気ですか?"""*

すべての空白は文字列リテラルに含まれます。

以下はGensimのドキュメントの例です-

Document = “finddevguides.com is the biggest online tutorials library and it’s all free also”

コーパスとは何ですか?

コーパスは、自然なコミュニケーション環境で生成された、機械で読み取れるテキストの大きく構造化されたセットとして定義できます。 Gensimでは、ドキュメントオブジェクトのコレクションはコーパスと呼ばれます。 コーパスの複数形は corpora です。

Gensimにおけるコーパスの役割

Gensimのコーパスは次の2つの役割を果たします-

モデルのトレーニングの入力として機能します

コーパスがGensimで果たす最初で重要な役割は、モデルをトレーニングするための入力としてです。 モデルの内部パラメーターを初期化するために、モデルはトレーニング中に、トレーニングコーパスからいくつかの一般的なテーマとトピックを探します。 上記で説明したように、Gensimは教師なしモデルに焦点を当てているため、人間の介入は一切必要ありません。

トピック抽出機能を提供

モデルがトレーニングされると、新しいドキュメントからトピックを抽出するために使用できます。 ここで、新しいドキュメントは、トレーニングフェーズでは使用されないドキュメントです。

コーパスには、特定の人物によるすべてのツイート、新聞のすべての記事のリスト、または特定のトピックに関するすべての研究論文などを含めることができます。

コーパスの収集

以下は、5つのドキュメントを含む小さなコーパスの例です。 ここで、すべてのドキュメントは、1つの文で構成される文字列です。

t_corpus = [
   "A survey of user opinion of computer system response time",
   "Relation of user perceived response time to error measurement",
   "The generation of random binary unordered trees",
   "The intersection graph of paths in trees",
   "Graph minors IV Widths of trees and well quasi ordering",
]

収集コーパスの前処理

コーパスを収集したら、コーパスを単純に保つためにいくつかの前処理手順を実行する必要があります。 「the」などの一般的に使用される英語の単語を単に削除できます。 コーパス内で1回だけ出現する単語を削除することもできます。

たとえば、次のPythonスクリプトは、各ドキュメントを小文字にして、空白で分割し、ストップワードを除外するために使用されます-

import pprint
t_corpus = [
   "A survey of user opinion of computer system response time",
   "Relation of user perceived response time to error measurement",
   "The generation of random binary unordered trees",
   "The intersection graph of paths in trees",
   "Graph minors IV Widths of trees and well quasi ordering",
]
stoplist = set('for a of the and to in'.split(' '))
processed_corpus = [[word for word in document.lower().split() if word not in stoplist]
   for document in t_corpus]

pprint.pprint(processed_corpus)
]

出力

[[survey', 'user', 'opinion', 'computer', 'system', 'response', 'time'],
['relation', 'user', 'perceived', 'response', 'time', 'error', 'measurement'],
['generation', 'random', 'binary', 'unordered', 'trees'],
['intersection', 'graph', 'paths', 'trees'],
['graph', 'minors', 'iv', 'widths', 'trees', 'well', 'quasi', 'ordering']]

効果的な前処理

Gensimは、コーパスのより効果的な前処理のための機能も提供します。 このような前処理では、ドキュメントを小文字のトークンのリストに変換できます。 短すぎるトークンや長すぎるトークンも無視できます。 そのような関数は gensim.utils.simple_preprocess(doc、deacc = False、min_len = 2、max_len = 15) です。

  • gensim.utils.simple_preprocess()機能*

Gensimはこの関数を提供して、ドキュメントを小文字のトークンのリストに変換し、短すぎるまたは長すぎるトークンを無視します。 次のパラメータがあります-

doc(str)

これは、前処理を適用する必要がある入力ドキュメントを指します。

deacc(bool、オプション)

このパラメーターは、トークンからアクセント記号を削除するために使用されます。 これを行うには、* deaccent()*を使用します。

min_len(int、オプション)

このパラメーターを使用して、トークンの最小長を設定できます。 定義された長さより短いトークンは破棄されます。

max_len(int、オプション)

このパラメーターを使用して、トークンの最大長を設定できます。 定義された長さより長いトークンは破棄されます。

この関数の出力は、入力ドキュメントから抽出されたトークンになります。