日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html标签 对word2vec,自然语言学习——使用word2vec对文本进行情感分析

發布時間:2024/8/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html标签 对word2vec,自然语言学习——使用word2vec对文本进行情感分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要講述了如何對影評數據做情感分析,就是如何判斷這條評論是好評還是差評。對文本處理的方法是word2vec,然后用隨機森林的方法構建模型,最后訓練模型進行預測。前面一、二部分主要是講述如何處理文檔,有點啰嗦可以快速閱讀,主要方法從第三部分開始。

一、讀取文檔

在進行文本情感分析之前,當然需要大量的文本數據,我使用了一些影評數據(labeledTrainData.tsv)作為訓練集來完成。內容如下圖所示:

該訓練集擁有25000條影評數據,圖中只顯示了五行數據,id可表示評論者,sentiment表示是好評(1)還是差評(0),review則是影評內容。

在讀取完文檔后,先看看我們所得到的影評數據是一個什么樣的內容:以第一條為例(with all this……),如下圖所示:

仔細觀察會有

這樣的網頁標簽存在,在進行網頁爬取影評的時候這樣情況肯定會出現,為了得到完好的文本,需要對文本進行一個預處理,如下。

二、文本預處理

1.去掉html標簽

使用BeautifulSoup庫可以輕松去除html中的標簽,得到所需文本。

2.移除標點

由于標點符號對我們的文本情感分析是沒有用處的,所以我們也需要把標點符號去掉:

去除標點后就如上圖所示,使用的正則匹配的方式。

3.切分成詞

計算機對一句話進行分析的難度較大,對單詞進行分析就相對簡單一些,所以需要將每一句話的單詞提取出來,這也是為什么我們需要去除標點的原因,因為去除標點后比較好分詞。

上圖為得到分詞后的結果,全部轉為小寫。

4.去停用詞

停用詞類似于be、but、by等等這些對情感分析毫無影響的詞語,需要全部去掉,以免干擾結果。

上圖中像with,all,this這些單詞都已經去除了。

5.重組為新句子

第一個cell中寫了一個新函數clean_text,其功能就是將上述4條的功能寫進一個函數。然后返回一個合并好的新句子(這個句子毫無語法而言,因為去掉了一些單詞)。

得到的就是上圖中輸出的這一條句子。這僅僅只是一個影評,需要對文檔中的25000條影評做同樣處理,得到新的一欄clean_review

這只是一個簡單的處理,將文本處理成自己想要得到的有用信息。

三、word2vec詞向量編碼

得到清洗的文本后表示已經完成了一步,接下來需要開始建立模型,訓練模型了。我們都知道文本是沒法被計算機分析的,只要0,1才是計算機處理的語言。接下來就是開始這一步操作,將清洗后的文本轉為0,1矩陣才能開始訓練模型。代碼如下圖所示:

vetorizer = CountVectorizer(max_features=5000):這行代碼是統計所有文本中詞頻前5000的單詞,這是一個類,目前還沒有對文本進行任何操作,只是先設置成這樣,也可以改成4000,6000等等。

train_data_features = vetorizer.fit_transform(df.clean_review).toarray():這表示開始對文本進行處理了,標準就為上一行代碼設置的那樣,然后轉換為數組的形式。

得到的為25000行,5000列的數據:通俗一點講呢就是先統計頻數最多的前5000個單詞為標準,第一個影評中有一個單詞在這5000個里面就標為1,沒有就標0,后面的類推。完成后,就將這25000行文本轉為了(25000L,5000L)的數組了,這也是我們前面所做的操作的最終目標。

四、構造隨機森林分類器

在將所有影評數據處理成(25000L,5000L)的向量后,需要將這些數據放入模型中去訓練,才能預測之后的影評數據是好評還是差評。

forest = RandomForestClassifier(n_estimators=100):表示構造一個隨機森林分類器。

forest = forest.fit(train_data_features, df.sentiment):表示將處理好的影評數據(25000L,5000L),和是否好評的數據(0\1)放入模型中訓練。運行后,則表示模型已經訓練完成。

五、預測測試集的情感狀態

1.預處理測試集數據

在訓練完模型后,為了測試模型的好壞,我們需要通過測試集(testData.tsv)來驗證這個模型。測試集中沒有sentiment一欄,因為這就是我們需要預測的結果。對測試集我們同樣需要進行如上所示的1,2,3,4的操作來清洗影評數據。

最終我們也得到了測試集中25000條影評的特征向量,也就是(25000L,5000L)數組.

2.預測測試集影評情感狀態

在得到了測試集的特征向量后,我們就可以開始進行預測了。

我們通過建立好的隨機森林模型,往其中丟入測試集的數組,就可以得到預測的sentiment(情感狀態),然后輸出結果。

3.檢測預測結果

在預測好后,我們看看,預測的sentiment這一欄到底準不準確,我們先看看第一條影評數據是好評還是差評,從上圖可知第一條預測的結果為1(好評)。將第一條影評拿下來翻譯看看:

根據意思大概也能看出是一條好評,后面的這些預測結果我也檢查了一些,的確挺準確的。

六、總結

對以上部分做一個小小的概括:

1.先對訓練集做預處理,將文本轉為機器方便處理的0,1數組。

2.建立模型,訓練模型

3.對測試集做預處理,預測測試集中的影評是好評還是差評

4.檢查結果,完成

以上是我在學習過程中記錄的一些筆記,內容可能不太規范,還請見諒。本文的代碼,訓練集,測試集等文件都已經上傳。

總結

以上是生活随笔為你收集整理的html标签 对word2vec,自然语言学习——使用word2vec对文本进行情感分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。