您的位置:首頁>正文

會Python後我就找到女朋友了!用Python進行情感分析,牽手成功!

一、情感分析

情感分析也稱觀點挖掘(opinion mining), 是機器學習中自然語言處理(NLP)領域一個非常流行的分支, 它主要是分析文檔的情感傾向。

二、下載資料

請自行準備一個電影資訊(或者直接使用你和女神的聊天資訊)

1、預計處理總時間

2、統計處理總時間

3、python實現代碼

我們還需要知道將文本轉換為特徵向量前的一些準備工作, 主要內容包括:

1、清洗文本資料2、標記文檔3、詞袋模型

我們還需要做什麼呢?

1、將單詞轉換為特徵向量2、TF-IDF計算單詞關聯度

在之前,我們已經知道一些文本的預處理和分詞。這篇文章中,主要介紹如何將單詞等分類資料轉成為數值格式,以方便我們後面使用機器學習來訓練模型。

其中tf(t,d)表示單詞t在文檔d中的出現次數,idf(t,d)為逆文檔頻率,計算公式如下

其中,nd表示文檔的總數,df(t,d)表示包含單詞t的文檔d的數量。分母中加入常數1,是為了防止df(t,d)=0的情況,導致分母為0。取log的目的是保證當df(t,d)很小的時候,不會導致idf(t,d)過大。

通過sklearn的TfidfTransformer和CountVectorizer來計算tf-idf

可以發現"is"(第二列)和"the"(第六列),它們在三個句子中都出現過,它們對於文檔的分類所提供的資訊並不會很多,所以它們的tf-idf的值相對來說都是比較小的。

注意:sklearn中的TfidfTransformer的TF-IDF的計算與我們上面所定義TF-IDF的公式有所不同,sklearn的TF-IDF計算公式

下面通過一個例子來說明sklearn中的TfidfTransformer的tf-idf的計算過程,以上面的第一句話"The sun is shining"為例子

1、計算原始詞頻

a、單詞所對應的下標

b、計算第三句話的原始詞頻tf(t,d)

c、計算逆文檔頻率idf(t,d)

注意:其他的詞在計算tf-idf都是0,因為原始詞頻為0,所以就不需要計算idf了,log是以自然數e為底。

d、計算tf-idf

所以,第一個句子的tf-idf特徵向量為[0,1,1.29,1.29,0,1,0]

e、tf-idf的L2歸一化

在下一篇文章中將介紹如何使用這些句子的特徵向量來構建一個模型進行情感分類。雖然在實際演示的是電影影評,但是訓練好了可是可以用來處理你的聊天資訊的哦~~~

想不想用來測試一下你的女神和你聊天時候的情緒呢?保你牽手成功!!!

我們還需要做什麼呢?

1、將單詞轉換為特徵向量2、TF-IDF計算單詞關聯度

在之前,我們已經知道一些文本的預處理和分詞。這篇文章中,主要介紹如何將單詞等分類資料轉成為數值格式,以方便我們後面使用機器學習來訓練模型。

其中tf(t,d)表示單詞t在文檔d中的出現次數,idf(t,d)為逆文檔頻率,計算公式如下

其中,nd表示文檔的總數,df(t,d)表示包含單詞t的文檔d的數量。分母中加入常數1,是為了防止df(t,d)=0的情況,導致分母為0。取log的目的是保證當df(t,d)很小的時候,不會導致idf(t,d)過大。

通過sklearn的TfidfTransformer和CountVectorizer來計算tf-idf

可以發現"is"(第二列)和"the"(第六列),它們在三個句子中都出現過,它們對於文檔的分類所提供的資訊並不會很多,所以它們的tf-idf的值相對來說都是比較小的。

注意:sklearn中的TfidfTransformer的TF-IDF的計算與我們上面所定義TF-IDF的公式有所不同,sklearn的TF-IDF計算公式

下面通過一個例子來說明sklearn中的TfidfTransformer的tf-idf的計算過程,以上面的第一句話"The sun is shining"為例子

1、計算原始詞頻

a、單詞所對應的下標

b、計算第三句話的原始詞頻tf(t,d)

c、計算逆文檔頻率idf(t,d)

注意:其他的詞在計算tf-idf都是0,因為原始詞頻為0,所以就不需要計算idf了,log是以自然數e為底。

d、計算tf-idf

所以,第一個句子的tf-idf特徵向量為[0,1,1.29,1.29,0,1,0]

e、tf-idf的L2歸一化

在下一篇文章中將介紹如何使用這些句子的特徵向量來構建一個模型進行情感分類。雖然在實際演示的是電影影評,但是訓練好了可是可以用來處理你的聊天資訊的哦~~~

想不想用來測試一下你的女神和你聊天時候的情緒呢?保你牽手成功!!!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示