情感分析,也稱傾向性分析,即對乙個主觀的文字分析判斷說話者的情感色彩或者褒貶態度。傳統的方法一般有基於情感詞典(構建情感詞典後統計文字極性詞進行判斷)和基於機器學習(使用詞袋模型對詞語向量化後利用機器學習方法訓練分類器),但結果往往差強人意。本週閱讀的兩篇**都是基於神經網路對文字進**感分析,一篇是針對句子級別的文字,另一篇是針對篇章級別的文字。下面進行簡單介紹。
本文的主要結構是輸入乙個句子文字,經過兩層cnn轉化成乙個sentence-level的向量,然後將這個向量輸入到乙個3層的神經網路中,經過訓練得到正確的分類。
1 word-level and character-level embeddings
文中提出一種組合的word embedings的形式,即把每個詞通過word2vec訓練得到乙個word-level的向量 rw
rd,然後把組成每個詞的字母字元也訓練得到乙個character-level的向量rw
ch,這樣有利於同時捕捉到語義資訊和詞形態資訊,(比如一些程度副詞: terribly,badly )組合得到乙個新的詞向量 un
=[rw
rd,r
wch]
rwr
d 利用word2vec訓練得到的向量表示,rw
ch需要通過一層cnn進行訓練得到。思路如下:
假設詞w由m個字母組成,每個字母通過乙個character embedding matrix轉化成乙個向量rc
hr,即 rc
hr=w
chrv
c ,其中vc
是one-hot向量,這裡類似於word2vec的做法。依次處理後詞w就能表示成乙個dc
hr∗m
的向量矩陣了。如下圖所示。
然後使用乙個卷積長度為kc
hr的過濾器對上述向量進行卷積,再使用乙個最大池化層進行池化後得到乙個長度為cl
0u的向量,也即rw
ch。注意到這裡卷積的做法和傳統卷積不太一樣,作者是把相鄰幾個向量進行拼接之後,通過乙個線性計算轉化成乙個固定維度的向量,感覺是為了統一不同長度詞的維度。訓練句子級的向量表示也是如此。
上述過程後得到句子中每個詞的的向量表示[u
1,u2
,...
,un]
,接下來就是把這n個向量轉化成乙個句子級別的向量rs
ent ,具體做法和上述訓練rw
ch一樣。這裡不作贅述。得到向量rs
ent 後,將向量輸入乙個三層的神經網路模型中進行訓練得到結果。 s
=w2h
(w1r
sent
+b1)
+b2
3 results
模型在兩個資料集上進行驗證,分別是sstb和sts資料集。實驗結果表示在sstb資料集上,模型效果優於其他rnn和ml模型,但character-level並不能幫助提公升效果。在sts上取得了最好的**準確率。文章最後還舉例說明訓練得到的向量能有效識別否定詞。
valence表示興奮或平靜的程度, arousal表示與正面或者負面的程度)本文的主要思路是把乙個文字按照句子劃分成若干個區域,對於每個區域進行卷積池化後得到向量,再把每個區域按照時序關係輸入到lstm中,由lstm進行encode,最後通過乙個linear decoder 進行decode得到**值。
把文字按照句子劃分成k個區域,每個區域裡包含句子的詞彙,對每個區域進行特徵提取並賦予權重,有些區域不含感**彩則權重會變得很小。每個詞彙利用word2vec訓練得到的詞向量矩陣進行轉化為乙個向量,即區域
i 可以表示為ri
=[wr
i1,w
ri2,
...,
wrii
]這樣乙個矩陣,然後再利用l個卷積過濾器對其進行卷積,卷積視窗長度為
ω ,即過濾器
l進行一次視窗卷積後將得到乙個對映值yn
,最後得到向量yl
=yl1
,yl2
,...
,yln
−ω+1
。 yl
n=f(
wl○x
n:n+
ω−1+
bl)
向量yl
再進行最大池化層進行池化,得到新的向量。
2 lstm encoder and linear decoder
由於篇章級文字存在時序關係和長距離依賴關係,所以可以利用lstm把上述得到的區域向量當作乙個序列進行編碼,最終得到的hidden state 可以當作是文字的表示形式 xt
。因為va空間兩個維度上的值都是連續值,這裡需要乙個回歸模型進行回歸,所以使用乙個線生的解碼器進行回歸,最終得到**值。即: y
=wdx
t+bd
3 results
模型在英文資料集sst和中文資料集cvat上進行驗證,實驗表明在兩個資料集上,模型效果都比傳統方法和不加區域化的cnn和lstm等方法都更好。
兩篇**都使用了神經網路對不同級別的文字進**感分析。**一主要提出了乙個基於character的sub embedding,雖然提公升效果不是很明顯,但提取詞形特徵這個想法還是值得思考的。卷積層在調整向量固定長度時似乎有點矛盾,這點還需要討論。**二主要提出分兩步(cnn-lstm)對文字進行分析,前面cnn與**一相似,主要在於後面一層,採用的是把所有句子當作乙個序列輸入到lstm學習,保證了前後時序關係,我認為這點對篇章級的文字分析比較重要。
關於人工神經網路的兩個想法
學了一段時間神經網路,又看了些講人腦的書,有兩個想法和大家分享,希望有大神能解惑 1 和現在的人工神經網路相比,人的神經間的連線更為複雜,不是全連線或者隨機的連線一部分。我覺得人腦神經元的連線是在進化過程中不斷演變來的,那麼人工神經網路是否也能像人一樣,在訓練的過程中不斷改變神經元的連線 不僅是權值...
神經網路模型的原理
深度學習最近火的不行,因為在某些領域應用的效果確實很好,深度學習本質上就是機器學習的乙個topic,是深度人工神經網路的另一種叫法,因此理解深度學習首先要理解人工神經網路。生物神經網路就是由大量神經元構成的網路結構如下圖 生物的神經網路是通過神經元 細胞 觸電等結構組成的乙個大型網路結構,用來幫助生...
基於BP神經網路的分類
使用的是乙個簡單的資料集fisheriris,該資料集資料類別分為3類,setosa,versicolor,virginica。每類植物有50個樣本,共150個樣本代表150朵花瓣。每個樣本有4個屬性,分別為花萼長,花萼寬,花瓣長,花瓣寬。其中meas是150 4的矩陣代表著有150個樣本每個樣本有...