1 of 27

文字探勘與情感分析

邱詩涵

2 of 27

所需套件

  • numpy
  • pandas
  • tensorflow>=1.13.1,<2
  • gdown
  • ckiptagger
  • gensim
  • sklearn
  • matplotlib

3 of 27

大綱

斷詞

詞向量

蒐集資料

01

03

02

機器學習模型

04

4 of 27

情緒分析

“除了價位偏高之外,別的沒得說。”

“小巧、便宜,攜帶方便”

“輕巧,2G記憶體Vista速度還不錯”

“17號訂的貨,現在都沒收到,無從評論”

“可看性一般 實用性也一般感覺白買了”

“這本書寫得一般”

5 of 27

讀取資料

6 of 27

讀取資料

7 of 27

中文斷詞

  • jieba
  • ckiptagger

8 of 27

ckiptagger

  • (WS) 斷詞
  • (POS) 詞性標記
  • (NER) 命名實體識別

Demo: CKIP CoreNLP

9 of 27

斷詞

10 of 27

詞向量化 - one-hot

缺點:

  • 無法表達詞與詞之間的語意關係
  • 向量會很 sparse

11 of 27

詞向量化 - word2vec

12 of 27

詞向量化 - word2vec

  • 訓練

13 of 27

詞向量化 - word2vec

  • 載入預訓練詞向量

14 of 27

詞在低維度空間位置

  • PCA 降維

15 of 27

詞在低維度空間位置

  • 視覺化

16 of 27

休息時間 (っ﹏-) .。o

17 of 27

計算文章向量

  • 評論中的每個詞向量取平均,可以用來代表評論的屬性

18 of 27

計算文章向量

19 of 27

切分資料集

  • 訓練集
  • 測試集

20 of 27

機器學習模型 - 訓練

21 of 27

機器學習模型 - 預測

22 of 27

機器學習模型 - 預測

23 of 27

Confusion Matrix

Accuracy = (TP+TN) / Total

Precision = TP / (TP+FP)

Recall = TP / (TP+FN)

F1 score =

2 / (1/Precision+1/Recall)

實際 YES

實際 NO

預測

YES

TP

FP

預測

NO

FN

TN

24 of 27

Confusion Matrix

25 of 27

預測

26 of 27

未來可改進方向

  • 詞向量取平均忽略詞的前後關係 -> LSTM

27 of 27

THANKS!

Any questions?

shihhan8@gmail.com