Gensim-creating-lda-topic-model
Gensim-LDAトピックモデルの作成
この章では、Gensimで潜在ディリクレ配分(LDA)トピックモデルを作成する方法について説明します。
NLP(自然言語処理)の主要なアプリケーションの1つで、大量のテキストからトピックに関する情報を自動的に抽出します。 大量のテキストは、ホテルのレビューからのフィード、ツイート、Facebookの投稿、その他のソーシャルメディアチャネルからのフィード、映画のレビュー、ニュースストーリー、ユーザーのフィードバック、電子メールなどです。
このデジタル時代では、人々/顧客が何について話しているのかを知り、彼らの意見や問題を理解することは、ビジネス、政治キャンペーン、および管理者にとって非常に価値があります。 しかし、そのような大量のテキストを手作業で読み、トピックから情報を抽出することは可能ですか?
いいえ、ちがいます。 これらの大量のテキストドキュメントを読み、そこから必要な情報/トピックを自動的に抽出できる自動アルゴリズムが必要です。
LDAの役割
LDAのトピックモデリングへのアプローチは、ドキュメント内のテキストを特定のトピックに分類することです。 ディリクレ分布としてモデル化されたLDAビルド-
- ドキュメントモデルごとのトピックと
- トピックモデルごとの単語
LDAトピックモデルアルゴリズムを提供した後、トピックキーワード分布の良い構成を得るために、それは再配置します-
- ドキュメント内のトピックの分布と
- トピック内のキーワード分布
処理中に、LDAによって行われたいくつかの仮定は、
- すべてのドキュメントは、トピックの多目的分布としてモデル化されています。
- すべてのトピックは、単語の多目的分布としてモデル化されます。
- LDAでは、テキストの各チャンクに関連する単語が含まれていると想定しているため、データの正しいコーパスを選択する必要があります。
- LDAは、ドキュメントがトピックの混合から作成されていることも想定しています。
Gensimによる実装
ここでは、LDA(潜在ディリクレ配分)を使用して、データセットから自然に議論されたトピックを抽出します。
データセットを読み込んでいます
使用するデータセットは、ニュースレポートのさまざまなセクションからの数千のニュース記事を含む* ’20ニュースグループ ’のデータセットです。 *Sklearn データセットで利用できます。 私たちは次のPythonスクリプトの助けを借りて簡単にダウンロードできます-
次のスクリプトの助けを借りて、サンプルニュースのいくつかを見てみましょう-
前提条件
NLTKのストップワードとScapyの英語モデルが必要です。 どちらも次のようにダウンロードできます-
必要なパッケージのインポート
LDAモデルを構築するには、次の必要なパッケージをインポートする必要があります-
ストップワードの準備
ここで、ストップワードをインポートして使用する必要があります-
テキストを整理する
次に、Gensimの* simple_preprocess()を使用して、各文を単語のリストにトークン化する必要があります。 また、句読点や不要な文字を削除する必要があります。 これを行うために、 sent_to_words()*という名前の関数を作成します-
バイグラムおよびトライグラムモデルの構築
ご存知のように、バイグラムはドキュメント内で頻繁に出現する2つの単語であり、トライグラムはドキュメント内で頻繁に出現する3つの単語です。 Gensimの Phrases モデルの助けを借りて、これを行うことができます-
ストップワードを除外する
次に、ストップワードを除外する必要があります。 それに加えて、バイグラム、トリグラムを作成し、見出し語化するための関数も作成します-
トピックモデルの辞書とコーパスの構築
次に、辞書とコーパスを作成する必要があります。 私たちは前の例でもそれをしました-
LDAトピックモデルの構築
LDAモデルのトレーニングに必要なものはすべて実装済みです。 ここで、LDAトピックモデルを作成します。 私たちの実装例では、次のコード行の助けを借りて行うことができます-
実装例
LDAトピックモデルを構築するための完全な実装例を見てみましょう-
これで、上記で作成したLDAモデルを使用してトピックを取得し、モデルの複雑さを計算できます。