如何用KNIME進(jìn)行情感分析 | 下
如何能夠讓機(jī)器“讀懂”人的情感?情感分析提供了解決的一個(gè)思路。這也使得它成為自然語(yǔ)言分析(Natural Language Processing)中最令人神往的山對(duì)面的“風(fēng)景”。
什么是情感分類(sentiment classification)
簡(jiǎn)單說(shuō),就是對(duì)于一句或一段話,判斷說(shuō)話者的情感,是正向(積極)的,還是負(fù)向(消極)的。這種情感分類任務(wù)可以看作一個(gè)二分類問(wèn)題。
完成情感分類的核心問(wèn)題
決定分類準(zhǔn)確率的關(guān)鍵在于特征的選取與語(yǔ)料的質(zhì)量。其中特征問(wèn)題解決的是:用什么樣的特征來(lái)抽取,得到的文本才足夠原始呢?每個(gè)詞看似已經(jīng)是文本的足夠底層的特征,但其實(shí)也是經(jīng)過(guò)高度抽象的。這也會(huì)給深度學(xué)習(xí)在自然語(yǔ)言領(lǐng)域的應(yīng)用帶來(lái)一些困難。同樣,這也是提高模型準(zhǔn)確度的一個(gè)有效的方法。
在上一篇情感分析的講解中,我們已經(jīng)知道如何使用KNIME構(gòu)造一個(gè)情感分析模型。這一篇中,我們將使用N元語(yǔ)法(N-gram),借助KNIME來(lái)探究如何選取詞語(yǔ)特征,獲得的模型能夠?qū)崿F(xiàn)更準(zhǔn)確地分類。
N元語(yǔ)法
在計(jì)算語(yǔ)言學(xué)中,n-gram指的是文本中連續(xù)的n個(gè)item。n-gram中如果n=1則為unigram,n=2則為bigram,n=3則為trigram。n>4后,則直接用數(shù)字指稱,如4-gram,5gram。(Wikipedia)
以 I would like to go to Beijing. 這句話為例。
bigram為:
- I would
- would like
- like to
- to go
- go to
- to Beijing
1.讀取CSV格式文件
使用CSV reader結(jié)點(diǎn)讀取一個(gè)CSV格式文件,該文件寫入了1500條載于IMBD上的影評(píng),并且給出了情感向量即POS(positive)和NEG(negative)。
2.字符串轉(zhuǎn)化為文檔格式
接下來(lái)將字符串轉(zhuǎn)化為文檔格式,繼而使用“過(guò)濾”節(jié)點(diǎn)刪除無(wú)關(guān)列,使文件只留下儲(chǔ)存文檔對(duì)象的一列。
以上結(jié)點(diǎn)內(nèi)屬于Document creation元結(jié)點(diǎn)
3.數(shù)據(jù)預(yù)處理
首先計(jì)算特征詞語(yǔ)需要在文檔中出現(xiàn)最小次數(shù)N。利用java語(yǔ)句計(jì)算:out_MinDF = (Number_Rows / 100) * Min_Percentage
繼而進(jìn)行刪除標(biāo)點(diǎn),刪除數(shù)字,刪除文檔中出現(xiàn)次數(shù)小于N的詞匯,將大寫轉(zhuǎn)化為小寫,提取詞語(yǔ)主干(stemmed)和刪除停用詞(stop word)。至此我們可以完成預(yù)處理。但是由于我們想探索的是雙詞分類與單詞分類的效果差異,所以這里花開(kāi)兩朵各表一枝,雙詞分類的這一支不需要做主干提取和停用詞刪除的工作。
(stemmed意指將詞的變形歸類,使得機(jī)器在處理文本時(shí)減少需要跟蹤的獨(dú)特詞匯,這會(huì)加快“標(biāo)簽化”處理的過(guò)程。停用詞是人類語(yǔ)言中沒(méi)有實(shí)際意義或功用的詞語(yǔ),如助詞,限定詞等)
4.通過(guò)單詞或雙詞建立文本特征向量
想象在一個(gè)巨大的文檔集合,里面一共有M個(gè)文檔,而文檔里面的所有單詞提取出來(lái)后,一起構(gòu)成一個(gè)包含N個(gè)單詞的詞典,利用詞袋(Bag-of-words)模型,每個(gè)文檔都可以被表示成為一個(gè)N維向量(將每篇文檔表示為一個(gè)向量,每一維度代表一個(gè)詞語(yǔ),其數(shù)值代表詞語(yǔ)在該文檔中的出現(xiàn)次數(shù))。這樣,就可以利用計(jì)算機(jī)來(lái)完成海量文檔的分類過(guò)程。
一般來(lái)說(shuō),太多的特征會(huì)降低分類的準(zhǔn)確度,所以需要使用一定的方法,來(lái)“選擇”出信息量最豐富的特征,再使用這些特征來(lái)分類。
特征選擇遵循如下步驟:
- 1. 計(jì)算出整個(gè)語(yǔ)料里面每個(gè)詞的信息量
- 2. 根據(jù)信息量進(jìn)行倒序排序,選擇排名靠前的信息量的詞
- 3. 把這些詞作為特征
5.構(gòu)建模型
通過(guò)決策樹(shù)算法構(gòu)建模型在上一篇已經(jīng)講過(guò),需要注意的是本篇需要對(duì)1-gram特征和1-gram 2-gram集合特征分別構(gòu)建模型,以進(jìn)行比較。這里不再贅述。
6.ROC曲線對(duì)比
在文檔向量集創(chuàng)建后,詞匯的情感分類已經(jīng)被提取出來(lái),系統(tǒng)自動(dòng)創(chuàng)建了兩種預(yù)測(cè)模型并打分。一個(gè)模型基于一個(gè)單獨(dú)詞匯的特征建立,第二個(gè)模型基于1-gram和2gram集合的特征。接著通過(guò)ROC接收器操作特性曲線(receiver operating characteristic curve)對(duì)這兩個(gè)進(jìn)行比較。
可以看出,在分析影評(píng)這一文本的情感態(tài)度時(shí),使用N元語(yǔ)法構(gòu)建出來(lái)的情感分類模型,診斷準(zhǔn)確度更高,為85.05%。這樣有助于我們針對(duì)“何種情感分類模型對(duì)NLP分析更為有效”這一問(wèn)題時(shí)做出決策。
點(diǎn)擊查看:
如何用KNIME進(jìn)行情感分析 | 上
如何用KNIME進(jìn)行情感分析 | 中