版權聲明:本文由文智原創文章,轉載請註明出處:
文章原文連接:https://www.qcloud.com/community/article/133算法
來源:騰雲閣 https://www.qcloud.com/community網絡
2016-10-09 11:06:20 1378測試
一.命名實體識別字體
命名實體識別的主要任務就是從輸入文本中把含有特定意義的詞或者詞組挑出來。命名實體根據其特色能夠分爲兩大類,一類是能夠根據構詞法規則及上下文語境識別出來的,好比人名、地名、機構名;另一類是能夠窮舉的垂直類實體,好比影視名,小說名,遊戲名等。優化
命名實體識別是天然語言處理領域的基礎任務,對不少應用都有十分大的做用,好比信息檢索,文本摘要,信息抽取,文本聚類分類等。拿信息檢索來舉例,命名實體識別的結果能夠在檢索端生成完整索引,在query端作總體下發,這樣既能夠提升檢索效率,又能夠下降檢索噪音,提升相關性。spa
二.人名識別翻譯
人名識別是命名實體識別中比較典型的一類問題,目前業界主要採用的方法是基於統計的。咱們能夠把人名識別問題當作是一個序列標註的問題,即根據觀察序列預測最優隱含狀態序列。code
咱們把標記定義爲:姓用字 B,名中字用字I,名尾字用字E,其餘用字O,那麼下圖的例子中,人名識別的問題能夠轉化爲在已知輸入文本「去看譚詠麟演出」,找到一條最大機率的標註序列,即「OOBIEOO」。索引
求解序列標註的模型有不少,這裏咱們採用了條件隨機場(CRF), 主要是由於他能夠任意選擇特徵,而不像HMM有嚴格的獨立性假設,而且CRF是將全部特徵進行全局歸一化,最終獲得全局最優解。
對於統計的方法來講,最主要的問題就是特徵選擇與語料獲取的問題,下面就這兩個問題展開介紹咱們的作法。
三.特徵選擇
咱們的特徵選擇主要分爲兩大類,一類是基本特徵:主要有基於構詞法的特徵,和基於上下文語言環境的特徵。
去看陳奕迅演出 陳學友
去看張學友演出 陳德華
去看劉德華演出 張奕迅
去看譚詠麟演出 劉學友
構詞法特徵:上面加粗字體部分就是構詞法的特徵,咱們從已有語料中知道這四個都是人名,因而這些人名用字的交叉組合也頗有可能也是人名。
去看鄧紫棋演出 去看汪蘇瀧演出
上下文特徵:仍是上面的例子,黑色字體部分就能夠看作是上下文特徵,即在「去看^演出」這樣的上下文中,知道^部分很大多是人名。
另一類主要的特徵是泛化特徵,之因此添加這類特徵主要是由於咱們實驗發現,僅有基礎特徵模型的召回是不夠的,須要一些泛化的東西來增長召回。
因而咱們添加了一個是否爲姓名經常使用字的特徵,這個特徵能夠解決當該名字沒有在語料中出現過的時候,也能夠根據他的用字特色把新人名識別出來。
好比語料裏面有張學友,也有劉德華, 可是沒有張學華,因而W(S華 == E, C-2-1 == 張學) = 0, 可是 張,學 做爲姓名經常使用字是有的,那麼 W(S華 == E, C-2-1 == 11) > 0 , 這樣就增長了這我的名被識別到的機率。
四.語料獲取
有監督的學習方法最大的問題就是語料,如何可以獲取到又多又準的語料是老大難的問題。如今大部分人都是利用已有標註的熟語料或者人工標註的方法去獲取,人名日報是一份比較權威的熟語料,可是咱們發現他量小,年份久遠,與咱們的應用場景網絡語料的差距也很大。人工標註語料的成本是很大的,時間長,速度慢,數量小。因而咱們想到了一種boosting的語料自動獲取方法。
Boosting的方法主要思想就是先用n個基分類器,而後把他們進行加權融合,產生一個最後的結果分類器,在這n個基分類器中,每一個單個的分類器的識別率不必定很高,但他們聯合後的結果有很高的識別率,這樣便提升了該弱分類算法的識別率。
這裏咱們也是採用了相似的思想,將多種人名識別的結果作投票,認爲越多的方法識別到的結果則越準確,咱們把這種準確的語料補充到訓練語料中去,優化咱們的模型。這裏咱們使用了舊版人名識別結果、競品人名識別結果、機器翻譯的識別結果、及咱們基礎模型的識別結果來作投票。這四類中,舊版結果,競品結果及咱們的結果我想象都不須要再作介紹了,下面對利用機器翻譯結果作人名識別簡單介紹一下。
利用機器翻譯的結果作人名識別的方法是這樣的,咱們發現中文人名翻譯成英文以後 是有明顯特徵的,首先是兩個大寫開頭的單詞,另外這兩個單詞是中文字的拼音。那麼咱們利用中文串的中英翻譯的結果及他的拼音串作比對,在知足着兩個特徵的時候,就是發現其中所包含的人名了。
5、結論
咱們的模型通過屢次特徵及語料的調整,最終在開放集合上測試,最終準確率有96%,召回率有89%。下一步針對人名識別咱們還會對語料作持續擴充,而且增長更精細化的特徵,讓識別效果進一步提高。