中文分詞的一些最新研究進展

2021-06-27 23:47:16 字數 2661 閱讀 6073

最近,讀了幾篇這兩年發表的關於分詞的會議**,發現現在主要的研究方向是解決分詞的領域適用問題,採用的主要模型是已有的分詞演算法+訓練集+部分標記語料的半監督學習方式,分詞演算法包括感知器、條件隨機場,部分標記的語料主要為維基百科的漢語語料現在主要介紹一下各文章的關注重點和異同。

傳統的分詞方法在訓練集和測試集為同一領域時可以獲得很好的分詞效果,但是當誇領域分詞時,分詞效果就迅速下降了(由於專業詞彙等原因);並且訓練集的制定是乙個浩大的工程,不可能製造非常大的訓練集(需要人工標註),因此只專注於監督學習,分詞效能已經很難提高了。但是網際網路的發展給我們帶來了新的啟示,如何從浩瀚的網際網路中挖掘出有意義的分詞輔助資訊是新的研究方向。而網際網路中的文字的易獲取性、實時性、領域廣泛性、分詞輔助資訊(超連結、字型、顏色、布局)等也使這種想法變為了可能。

當然了,相比於被人工精確分割的訓練集而言,這些網際網路文字所帶有的分詞輔助資訊是很少的,因此直接使用網際網路文本來訓練模型是不可行的。

在jiang, sun等(2013)提出的方法中,為了充分利用在網際網路文字中帶有分詞標註資訊的語言學知識,使用了判別學習演算法。

在上圖中,「自然語言處理「是乙個超連結,因此在分詞中它提供了天然的邊界,即」自然語言處理「和前面的」認為「和後面的」已經」必須被分為三部分,即在這句話中,第i和第j+1的位置的字只可能被標註為中的一種(其中b表示多字詞的開始那個字,m表示多字詞的中間的字,e表示多字詞最後的字,s表示單字詞,例如「我討厭俄羅斯」被標記為「我/s討/b厭/e俄/b羅/m斯/e」),而第i-1和j位置上的字只可能被標記為中的一種,這樣可以排除在這些位置上的其他標註情況。如下圖所示。

也就是說,自然標註的語料資訊並不能直接訓練模型,但是可以幫助我們排除掉那些分詞錯誤的分詞結果候選。

該文中在解碼演算法中進行如上所述限制,去除掉解碼中不合法的分詞候選。通過剪枝搜尋空間,使用已知的精確標註的訓練集得到的模型m1的效能肯定不會比不使用剪枝得到的模型m2效果差。然後,如果通過基模型m2和j剪枝後的模型m1標註上文提及的網際網路語料,如果得到的結果不一樣,則將m1標註的結果放入訓練集中,以訓練增強分類器。偽**如下所示:

其中是使用人工標註訓練語料訓練得到的基模型,是從維基百科中提取的部分標註資料。

除了這種方法外,liu等人(2014)也引入了字典來幫助分詞。該字典只包括很少有歧義的詞,然後使用前向最大匹配演算法來匹配出語料中的詞,並給該詞以及該詞周圍的字標上相應的標記,如下圖所示,「狐岐山」為字典詞,因此識別出來後就可以給狐岐山標上標記「狐/b岐/m山/e」,然後「狐岐山」前後鄰接的字標上標記為「在」為,而「救」為。

為了減少單一匹配策略帶來的錯誤,可以使用多種匹配策略來檢測詞語,如果這些所有的方法都將乙個字串序列標記為相同的詞,那麼這個詞就可以被認為是正確標記的。

另外,該文在使用維基百科語料進行部分標記時,也考慮了語料本身噪音帶來的影響。比如下圖所示,「旅遊業」在不同的網頁文字中被分成了不同的詞,但是在這些語境中也不能認為是錯誤。

為了解決這些語料帶來的噪音,乙個直觀的方法是盡可能採用領域相近的語料,這樣訓練語料中的歧義(由於領域不同)就會降低。

對了,這篇文獻的基礎分詞演算法是crfs。使用部分標註資料來訓練crfs,在這種情況下,全標註訓練集可以看做是部分標註訓練集的特殊情況,使用的是tsuboi等人(2008)提出的演算法來對crfs使用部分標註資料訓練。

yang等人(2014)也是將部分標註學習演算法應用於crfs進行中文分詞,為了解決jiang[1]等人的解碼演算法可能強化基模型錯誤的問題,在選擇部分標記資料時,只選擇錯誤率最高的前k個語料句子。

關於scws分詞的一些記錄

測試環境 windows 2003 php5.3.5 apache2.2 scws 1.1.9 自定義詞庫,words.txt 如下 1.每行由4個字段組成,依次為 詞語 由中文字或3個以下的字母合成 tf idf 詞性 字段之間用空格或製表符分開,數量不限 注意,發現如果字段時間用空格隔開,然後用...

對CURL的一些研究

對curl的一些研究 前兩天看到有人求客戶端socket 發http包的 受flw版主啟發找了一些perl的資料,不過對perl 還是不太熟悉。也沒有深入的研究。無意中發現了libcurl.so 這個庫。去google上搜尋發現它是處理客戶端傳送http請求的庫 以及可以處理web伺服器回送回來的包...

對CURL的一些研究

前兩天看到有人求客戶端socket 發http包的 受flw版主啟發找了一些perl的資料,不過對perl 還是不太熟悉。也沒有深入的研究。無意中發現了libcurl.so 這個庫。去google上搜尋發現它是處理客戶端傳送http請求的庫以及可以處理web伺服器回送回來的包。研究 了兩天將研究的成...