中文表示什麼 輕鬆搞懂中文分詞的評測

2021-10-14 19:48:21 字數 3482 閱讀 7916

中文分詞指的是將一段文字拆分為一系列單詞的過程,這些單詞順序拼接後等於原文本。中文分詞操作是中文資訊處理的第一站,中文分詞效果的好壞直接影響後續自然語言處理任務。在中文分詞任務中,一般使用在標準資料集上詞語級別的精準率、召回率以及f1值來衡量分詞器的準確程度,這三種指標通常用於衡量分類器的準確程度。不過想要理解這三個指標,首先要理解什麼是混淆矩陣。

在分類任務中每個樣本都有相應的真實值以及演算法**的**值。具體在二分類任務中,兩個不同類別值分為0和1,可以使用正類負類也可以直接將類別用0和1的數值來表示,比如樣本的真實值為1表示樣本的真實類別為類別1。還需要注意,通常將我們關注的事件表示為類別1,比如在癌症**中我們更關注受試者有沒有患有癌症,因此將患有癌症的受試者表示為類別1,沒有患有癌症的受試者表示為類別0。​

二分類任務中樣本的真實值和演算法的**值兩兩組合共有四種情況,所有的樣本屬於四種情況中的任意一種情況,具體將四種情況通過**展示,**中的元素值就為符合對應組合條件的樣本總數。

兩兩組合的四種情況

其中行代表真實值,列代表**值,0代表negative負類,1代表positive正類。上面的**就是混淆矩陣的基本框架,混淆矩陣為四種情況分別命名。

二分類的混淆矩陣

上面**就是機器學習中的混淆矩陣,用來衡量分類結果的混淆程度。不過這裡需要注意幾點:

下面來看乙個簡單的小例子,以癌症**為例。假設現在一共有1000名受試者,假設有乙個模型演算法對這1000名受試者**是否患有癌症。演算法對1000名受試者進行**後的混淆矩陣如下所示。

癌症**的混淆矩陣

對於上面的混淆矩陣,其中:

有了混淆矩陣,精準率、召回率和f1值這三個指標就能夠確定了。

精準率(precision,簡稱p值)指的是演算法**為1並且**正確的樣本個數(

召回率(recall,簡稱r值)指的是演算法**為1並且**正確的樣本個數(

精準率越高,分類演算法越會將更有把握的樣本分類為1。召回率越高,分類演算法越會將沒有把握的樣本分類為1。顯然精準率和召回率是相互矛盾相互制衡的兩個指標。精準率高往往召回率比較低,召回率高往往精準率比較低。

當然在一些任務中也會尋找精準率和召回率這兩個指標之間的平衡,因此需要乙個綜合性的指標來衡量,比如使用精準率和召回率的調和平均的f1值。f1值能夠兼顧精準率和召回率兩個指標,f1值的具體公式如下所示。

由於f1值的本質是計算精準率和召回率的調和平均值,因此只有精準率和召回率兩個指標同時比較高的時候,f1值才會比較高:

有了精準率、召回率以及f1值的計算方式,接下來通過上面的癌症**系統的混淆矩陣來計算精準率、召回率以及f1值。

癌症**的混淆矩陣

有了混淆矩陣中的元素值,計算精準率、召回率以及f1值就變得非常容易。這也是為什麼說有了混淆矩陣,精準率、召回率以及f1值這三個指標就基本確定的原因。

由於f1值的本質就是計算精準率p和召回率r的調和平均值,因此有了精準率和召回率,自然可以求出f1值,因此接下來主要介紹如何計算中文分詞的精準率和召回率。

混淆矩陣是計算精準率和召回率的關鍵所在,因此有了混淆矩陣中的具體元素值,接下來只需要相應的代入精準率和召回率的計算公式中。前面介紹的混淆矩陣是由分類問題引出的,並且真實的樣本個數和**的樣本個數相等,而中文分詞是乙個分塊任務(chunking),並且標準答案的分詞和中文分詞演算法**分詞結果的單詞數不一定相等,以"結婚的和尚未結婚的"為例,標準答案為"結婚 的 和尚未 結婚 的"一共6個單詞,使用正向最長匹配演算法為"結婚 的 和尚 未結婚 的"一共5個單詞。

如果想要計算中文分詞中的精準率和召回率需要解決兩個問題:

如何將中文分詞的分塊問題轉換為分類問題
對於長度為n的字串,分詞結果為一系列單詞。每個單詞按它在文字中起始位置可以記作區間

,其中

分類問題中的真實值對映成中文分詞中的標準分詞結果,而**值對映到分詞演算法**的分詞結果。

依然以"結婚的和尚未結婚的"為例,將標準答案以及分詞演算法**的分詞結果轉換為區間集合的形式:

分塊問題轉換為分類問題

將標準分詞結果和分詞演算法**的分詞結果對映到混淆矩陣中。

中文分詞已知的資訊

不論是標準分詞還是分詞演算法**的分詞結果中負類(值為0)的區間有很多種情況,推導出所有可能的情況非常繁瑣,而且沒有必要,因為精準率、召回率的計算恰好只需要混淆矩陣中的第二行第二列的資訊。

如何對映到混淆矩陣中
原始混淆矩陣中的元素表示滿足對應條件的樣本個數,而我們現在僅僅有由區間構成的集合。這裡可以將集合中的每乙個區間元素都認為是乙個單獨的樣本標籤,每乙個區間元素都代表乙個單獨的樣本,雖然這些樣本標籤值不相同,但是它們所代表的都是正類1。比如集合,集合中一共有四個元素所以有4個樣本,樣本1的標籤值為[1, 2],樣本2的標籤值為[3, 3]等,雖然這些標籤值不相同,但是表示的都是正類。

集合 中的元素代表所有真實為正類的樣本集合,因此所有標準分詞的正類

,其中

表示集合中的元素個數。同理集合

中的元素代表所有分詞演算法**為正類的樣本集合,因此所有分詞演算法**為正類

有了 和

的值,回顧一下計算精準率和召回率的公式,此時精準率和召回率的分母有了,只需要計算出精準率和召回率相同的分子

值。表示真實值為1並且演算法**為1的樣本個數。由於將集合中的區間元素看成單獨的樣本,所以只需要找到那些既在集合

中又在集合

中的區間元素,即

,因此

綜上,中文分詞下的精準率和召回率的計算公式如下:

依然以"結婚的和尚未結婚的"為例,計算在中文分詞下的精準率、召回率以及f1值。

中文分詞下的三個集合

此時精準率、召回率以及f1值為:

當然這僅僅是一條測試文字,如果有多條測試文字只需將結果累加到集合中,最後計算一次精準率和召回率即可。

比如現在有兩條測試文字:

此時的中文分詞演算法的精準率、召回率以及f1值為:

參考:

1. 《自然語言處理入門》

中文分詞的方法

中文分詞主要有兩個類別 本別是基於字詞典分詞演算法和基於統計的機器學習演算法,下面依次介紹這兩種方法。也稱字串匹配分詞演算法。該演算法是按照一定的策略將待匹配的字串和乙個已建立好的 充分大的 詞典中的詞進行匹配,若找到某個詞條,則說明匹配成功,識別了該詞。常見的基於詞典的分詞演算法分為以下幾種 正向...

asp 的中文分詞

a程式設計客棧 日本是中國的乙個省 我們美麗中國的張家界!b 中國,我們,張家界,日本,美國,蘋果 b split b,a split a,for k 0 to ubound a s n fo程式設計客棧r i 0 to ubound b if instr a k b i 0 then s s in...

Lucene 中文分詞的理解

中文與西方文字不同,西方文字如英文的單詞間有空格作為分隔,計算機很容易把乙個個詞分開。而中文句子裡的之間沒有分隔,要把中文句子拆分成詞就需要使用中文分詞技術。由於全文索引採用的是倒排索引技術,所以分詞的效果直接決定了搜尋的效果。目前的中文分詞技術主要有 n元切分 最長匹配 最大壓縮 統計語言模型等方...