File size: 2,020 Bytes
c404cd2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# デモ実装(トピックの可視化)
## 環境構築
今回は必要なライブラリはこちらです。
- gensim
- scikit-learn
- umap-learn
- matplotlib
- numpy
- pandas

Mecabは使用しません。

# 例題
- トピックモデルの各トピックからランダムに単語を生成する。top-pを実装してみる。
- 多項分布(単語分布)から単語をサンプリングする
- 各トピックから100個をサンプリングして、そのトピックをそのラベルとして、word2vecで単語ベクトルに変換して、2次元で可視化する
- 文書をトピック分布のベクトルとして、2次元で可視化する。
    - ラベルはトピック番号(文書のトピック分布の中で最も確率の高いトピック)にしてみる
    - ラベルを文書のカテゴリにしてみる

# 演習
Livedoorニュースコーパスを分析するUIを作りましょう。  
app.pyにはpyLDAvisによるトピックの可視化のみが置いてあります。  

- 生データを一覧で確認できる
- 記事のカテゴリの割合を確認できる

Huggingfaceのspaceで公開してみましょう。   
https://huggingface.co/new-space  
lfsを使って、データなどをアップロードしましょう。  
下記を参考にしてください。
```
git lfs install
git lfs track '*.csv' '*.npy' '*.model' '*.id2word' '*.mm' '*.index' '*.dict' '*.state'
git add lda_*
git add word2vec.*
git add raw_corpus.csv livedoor_demo.dict corpus.mm*
git commit -m "add corpus, dict and mdel"
git push
```

その他、色んな機能を実装してみましょう。
下記を参考に、色んなデータの描画を行なってみてください。
- gensim: 類似文書・単語検索や
- pandas:記事のタイムスタンプの可視化
- nlplot:テキストデータの可視化
    - https://www.takapy.work/entry/2020/05/17/192947
    - https://speakerdeck.com/takapy/streamlittonlplotwoshi-tutezi-ran-yan-yu-wofen-xi-sitemita