トピックモデル(LDA)に効果的なpyLDAvisのインストール

トピックモデル(LDA)に効果的なpyLDAvisのインストール プログラミング

トピックモデル(LDA)で役に立つpyLDAvisを説明していきます。
試行錯誤する際に、効果的なライブラリと言えます。

本記事の内容

  • pyLDAvisとは?
  • pyLDAvisのシステム要件
  • pyLDAvisのインストール
  • pyLDAvisの動作確認

それでは、上記に沿って解説していきます。

pyLDAvisとは?

pyLDAvisは、トピックモデルをインタラクティブに可視化するためのPythonライブラリです。
「百聞は一見に如かず」であるため、次のデモを確認してみてください。

トピックモデルのインタラクティブなデモ
https://self-development.info/etc/html/movies.html

pyLDAvisを使えば、このようなhtmlをさくっと作成できます。
pyLDAvisは学習済みのモデルを読み込んでhtmlを作成するだけです。

その学習済みモデルの作成は、別途行う必要があります。
あと、学習する際に必要となるテキストデータも用意しないといけません。
さらには、テキストデータを形態素解析することも必要になります。

トピックモデル(LDA)自体が、そもそも機械学習による自然言語分析ですからね。
ちゃんとやろうとしたら、それなりに大掛かりになってしまいます。

この記事では、あくまでpyLDAvisについての解説となります。
そのため、動作確認には学習済みのモデルを利用します。

よって、みなさんも構えずに読み進めてください。

以上、pyLDAvisについて説明しました。
次は、pyLDAvisのシステム要件を確認します。

pyLDAvisのシステム要件

現時点(2021年7月)でのpyLDAvisの最新バージョンは、3.3.1となります。
この最新バージョンは、2021年3月24日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応と思われます。

  • Windows
  • macOS
  • Linux

そもそも、サポートOSが記載されていません。
ただ、ソースを見る限りでOS依存はありません。
このような場合は、ほぼクロスプラットフォーム対応です。

そして、サポート対象となるPythonのバージョンは以下。

  • Python 3.7
  • Python 3.8
  • Python 3.9

Python 3.6をサポート対象外にするライブラリが増えてきました。
以下のPython公式開発サイクルをもとに判断しているのでしょう。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

このPythonバージョン以上に注意すべきは、依存ライブラリです。
以下は、requirements.txtの内容になります。

numpy>=1.20.0
scipy
pandas>=1.2.0
joblib
jinja2
numexpr
future
funcy
sklearn
scikit-learn
gensim
setuptools

これらは、pyLDAvisが直接依存するだけのモノです。
依存するライブラリが、さらに依存するライブラリもあるでしょう。

それを込みで考えると、かなり多くのパッケージがインストールされることになります。
したがって、pyLDAvisは仮想環境へインストールすることをおススメします。

仮想環境については、次の記事で解説しています。

以上、pyLDAvisのシステム要件について説明しました。
次は、pyLDAvisをインストールしていきます。

pyLDAvisのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.0.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、pyLDAvisのインストールです。
pyLDAvisのインストールは、以下のコマンドとなります。

pip install pyLDAvis

インストールは、数分程度の時間がかかります。
そりゃ、あれだけの数のライブラリに依存していれば当然です。

では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package         Version
--------------- -------
funcy           1.16
future          0.18.2
gensim          4.0.1
Jinja2          3.0.1
joblib          1.0.1
MarkupSafe      2.0.1
numexpr         2.7.3
numpy           1.21.0
pandas          1.2.5
pip             21.1.3
pyLDAvis        3.3.1
python-dateutil 2.8.1
pytz            2021.1
scikit-learn    0.24.2
scipy           1.7.0
setuptools      57.0.0
six             1.16.0
sklearn         0.0
smart-open      5.1.0
threadpoolctl   2.1.0

トータルで結構な数のパッケージが、インストールされました。
やはり、pyLDAvisは仮想環境にインストールした方が安全です。

以上、pyLDAvisのインストールについての説明でした。
最後は、pyLDAvisの動作確認を行います。

pyLDAvisの動作確認

pyLDAvisの動作確認を行います。
そのための準備として、次のページのjsonファイルを取得します。

pyLDAvisのGitHUbページ
https://github.com/bmabey/pyLDAvis/blob/master/tests/data/movie_reviews_input.json

ディレクトリ(「data」など)を用意して、そこに「movie_reviews_input.json」を保存します。
準備が整ったら、次のコードを実行します。

import json
import pyLDAvis

def load_R_model(filename):
    with open(filename, 'r') as j:
        data_input = json.load(j)
    data = {'topic_term_dists': data_input['phi'],
            'doc_topic_dists': data_input['theta'],
            'doc_lengths': data_input['doc.length'],
            'vocab': data_input['vocab'],
            'term_frequency': data_input['term.frequency']}
    return data

movies_model_data = load_R_model('data/movie_reviews_input.json')
movies_vis_data = pyLDAvis.prepare(**movies_model_data)
pyLDAvis.save_html(movies_vis_data, "movies.html")

成功したら、同じディレクトリ上に「movies.html」が作成されています。
このmovies.htmlは、上記で示したデモ画面となります。

以上、pyLDAvisの動作確認について説明しました。

タイトルとURLをコピーしました