當前位置:首頁 » 操作系統 » 演算法情感

演算法情感

發布時間: 2023-08-14 13:22:33

『壹』 情感分析之TF-IDF演算法

http://mini.eastday.com/bdmip/180414224336264.html

在這篇文章中,主要介紹的內容有:

1、將單詞轉換為特徵向量

2、TF-IDF計算單詞關聯度

文本的預處理和分詞。

如何將單詞等分類數據轉成為數值格式,以方便我們後面使用機器學習來訓練模型。

一、將單詞轉換為特徵向量

詞袋模型(bag-of-words model):將文本以數值特徵向量的形式來表示。主要通過兩個步驟來實現詞袋模型:

1、為整個文檔集(包含了許多的文檔)上的每個單詞創建一個唯一的標記。

2、為每個文檔構建一個特徵向量,主要包含每個單詞在文檔上的出現次數。

注意:由於每個文檔中出現的單詞數量只是整個文檔集中很少的一部分,因此會有很多的單詞沒有出現過,就會被標記為0。所以,特徵向量中大多數的元素就會為0,就會產生稀疏矩陣。

下面通過sklearn的CountVectorizer來實現一個詞袋模型,將文檔轉換成為特徵向量

通過count.vocabulary_我們可以看出每個單詞所對應的索引位置,每一個句子都是由一個6維的特徵向量所組成。其中,第一列的索引為0,對應單詞"and","and"在第一和二條句子中沒有出現過,所以為0,在第三條句子中出現過一些,所以為1。特徵向量中的值也被稱為原始詞頻(raw term frequency)簡寫為tf(t,d),表示在文檔d中詞彙t的出現次數。

注意:在上面詞袋模型中,我們是使用單個的單詞來構建詞向量,這樣的序列被稱為1元組(1-gram)或單元組(unigram)模型。除了一元組以外,我們還可以構建n元組(n-gram)。n元組模型中的n取值與特定的應用場景有關,如在反垃圾郵件中,n的值為3或4的n元組可以獲得比較好的效果。下面舉例說明一下n元組,如在"the weather is sweet"這句話中,

1元組:"the"、"weather"、"is"、"sweet"。

2元組:"the weather"、"weather is"、"is sweet"。

在sklearn中,可以設置CountVecorizer中的ngram_range參數來構建不同的n元組模型,默認ngram_range=(1,1)。

sklearn通過CountVecorizer構建2元組

二、TF-IDF計算單詞關聯度

在使用上面的方法來構建詞向量的時候可能會遇到一個問題:一個單詞在不同類型的文檔中都出現,這種類型的單詞其實是不具備文檔類型的區分能力。我們通過TF-IDF演算法來構建詞向量,從而來克服這個問題。

詞頻-逆文檔頻率(TF-IDF,term frequency-inverse document frequency):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計算公式

通常在計算TF-IDF之前,會對原始詞頻tf(t,d)做歸一化處理,TfidfTransformer是直接對tf-idf做歸一化。TfidfTransformer默認使用L2歸一化,它通過與一個未歸一化特徵向量L2范數的比值,使得返迴向量的長度為1,計算公式如下:

下面通過一個例子來說明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歸一化

『貳』 怎樣通過句法分析分析句子情感演算法例子

怎樣通過句法分析分析句子情感演算法例子?現階段主要的情感分析方法主要有兩類:
基於詞典的方法
基於機器學習的方法
基於詞典的方法主要通過制定一系列的情感詞典和規則,對文本進行段落拆借、句法分析,計算情感值,最後通過情感值來作為文本的情感傾向依據。
基於機器學習的方法大多將這個問題轉化為一個分類問題來看待,對於情感極性的判斷,將目標情感分類2類:正、負。對訓練文本進行人工標標注,然後進行有監督的機器學習過程。例如想在較為常見的基於大規模語料庫的機器學習等。

熱點內容
u3dandroid 發布:2025-03-11 03:22:41 瀏覽:356
ftp如何在網站上顯示圖片 發布:2025-03-11 03:17:41 瀏覽:930
不懂加工怎麼看數控車床配置 發布:2025-03-11 02:54:33 瀏覽:597
埋點系統存儲方案 發布:2025-03-11 02:41:20 瀏覽:443
編程要很久 發布:2025-03-11 02:41:10 瀏覽:196
筆記本電腦播放mp4時提醒伺服器運行失敗 發布:2025-03-11 02:40:32 瀏覽:441
吉利星瑞尊貴版配置有哪些 發布:2025-03-11 02:34:33 瀏覽:890
ecs中怎麼配置slb 發布:2025-03-11 02:33:17 瀏覽:720
vb圖片保存到資料庫 發布:2025-03-11 02:31:05 瀏覽:843
元件符號編譯器 發布:2025-03-11 02:30:12 瀏覽:74