五 自然語言處理中的文字分類

2021-07-26 10:28:37 字數 2180 閱讀 3245

機器學習的過程是訓練模型和使用模型的過程,訓練就是基於已知資料做統計學習,使用就是用統計學習好的模型來計算未知的資料。

機器學習分為有監督學習和無監督學習,文字分類也分為有監督的分類和無監督的分類。有監督就是訓練的樣本資料有了確定的判斷,基於這些已有的判斷來斷定新的資料,無監督就是訓練的樣本資料沒有什麼判斷,完全自發的生成結論。

無論監督學習還是無監督學習,都是通過某種演算法來實現,而這種演算法可以有多重選擇,貝葉斯就是其中一種。在多種演算法中如何選擇最適合的,這才是機器學習最難的事情,也是最高境界。

貝葉斯是概率論的鼻祖,貝葉斯定理是關於隨機事件的條件概率的一則定理,貝葉斯公式是:

p(b|a)=p(a|b)p(b)/p(a);即,已知p(a|b),p(a)和p(b)可以計算出p(b|a)。

貝葉斯分類器就是基於貝葉斯概率理論設計的分類器演算法,nltk庫中已經實現,具體用法如下:

# coding:utf-8

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

import nltk

my_train_set = [

(,'1'),

(,'2'),

(,'3'),

(,'3'),

(,'2'),

(,'2'),

(,'2'),

(,'2'),

(,'2'),

(,'2'),

]classifier = nltk.*****bayesclassifier.train(my_train_set)

print classifier.classify()

print classifier.classify()

執行後判斷特徵a和特徵b的分類分別是3和2

因為訓練集中特徵是a的分類是3的最多,所以會歸類為3

當然實際中訓練樣本的數量要多的多,特徵要多的多

不管是什麼分類,最重要的是要知道哪些特徵是最能反映這個分類的特點,也就是特徵選取。文件分類使用的特徵就是最能代表這個分類的詞。

因為對文件分類要經過訓練和**兩個過程,而特徵的提取是這兩個過程都需要的,所以,習慣上我們會把特徵提取單獨抽象出來作為乙個公共方法,比如:

from nltk.corpus import movie_reviews

all_words = nltk.freqdist(w.lower() for w in movie_reviews.words())

word_features = all_words.keys()[:2000]

defdocument_features

(document):

for word in word_features:

features['contains(%s)' % word] = (word in document_words)

return features

這是乙個簡單的特徵提取過程,前兩行找到movie_reviews語料庫中出現詞頻最高的2000個詞作為特徵,下面定義的函式就是特徵提取函式,每個特徵都是形如contains(***)的key,value就是true或false,表示這個詞是否在文件中出現

那麼我們訓練的過程就是:

featuresets = [(document_features(d), c) for (d,c) in documents]

classifier = nltk.*****bayesclassifier.train(featuresets)

要**乙個新的文件時:

classifier.classify(document_features(d))
通過

classifier.show_most_informative_features(5)
可以找到最優資訊量的特徵,這對我們選取特徵是非常有幫助的

文字分類除了文件分類外還有許多其他型別的分類,比如:

詞性標註:屬於一種文字分類,一般是基於上下文語境的文字分類

識別對話行為型別:對話行為型別是指問候、問題、回答、斷言、說明等

識別文字蘊含:即乙個句子是否能得出另外乙個句子的結論,這可以認為是真假標籤的分類任務。這是乙個有挑戰的事情

統計自然語言處理 文字分類

文字表示有向量空間模型,片語表示法,概念表示法 目前文字通常採用向量空間模型表示 向量空間模型 vsm 給定乙個文件d t1,w1 t2,w2 tn,wn d符合以下兩條約定 1 各個特徵項tk 1 k n 互異 即沒有重複 2 各個特徵項tk無先後順序關係 即不考慮文件的內部結構 在以上兩個約定下...

自然語言處理 搭建文字分類器

乙個完整的文字分類器主要由兩個階段,一是將文字向量化,將乙個字串轉化成向量形式 二是將向量喂到分類器,包括svm,cnn,lstm等等。這邊做的專案其實階段用的是 tf idf 來進行文字向量化,使用卡方校驗 chi square 來降低向量維度,使用liblinear 採用線性核的svm 來進行分...

NLP自然語言處理 文字分類之評價指標

準確率關注整體效果,只適合均衡的資料。準確率公式如下 a cc urac y 預測 正確的樣 本數總樣 本數 accuracy frac accura cy 總 樣本數預 測正確的 樣本數 資料不均衡時使用以下的評價指標。精確率關注模型 得準不准。精確率公式如下 p re cisi on 預 測正確...