1. 程式人生 > >詞匯與分詞技術

詞匯與分詞技術

自然語言處理 人工智能

中文分詞主要分為三個流派:

機械式分詞法(基於詞典):
簡單來說就是建立一個巨大的詞典,然後將詞典中的詞語和文章中的詞語相匹配,找到這個詞語就算匹配成功,但是詞典的完備性得不到保證。也就是文章中的有的詞語在詞典中找不到。

基於語法和規則的分詞法:
分詞的同時在句法語義方面進行分析,利用句法信息和語義信息進行詞性標註,解決分詞的歧義。
因為現在的語法句法還十分復雜,所以精度還不高。

基於統計的分詞法
根據字符串在語料庫中出現的統計頻率來決定這是否是一個詞語。

本文主要介紹ICTCLAS中文分詞的來源與現狀。

什麽是詞語和分詞規範
有人做過一個測試,被測試的有三個人來自內地 三個人來自臺灣,分詞結果差異最大0.69最小0.89平均認同率0.76說明同是漢語使用者的分詞標準有分歧

本書涉及的分詞規範有兩類:

第一類包括《北大(中科院)詞性標註》、《現代漢語語料庫加工規範---詞語切分與詞性標註》、《北京大學現代漢語語料庫基本加工規範》三篇文章。

第二類為《賓州樹庫中文分詞規範》,http://www.threedweb.cn/thread-1478-1-1.html下載

將漢語的詞類主要分為13種:名詞、動詞、代詞、形容詞、數詞、量詞、副詞、介詞、連詞、助詞、語氣詞、嘆詞和象聲詞。

兩種分詞標準:
例如:浙江大學坐落在西湖旁邊
粗粒度:浙江大學、坐落、在、西湖、旁邊
細粒度:浙江、大學、坐落、在、西湖、旁邊

粗粒度主要應用在自然語言處理的應用
細粒度主要應用在搜索引擎

機械分詞方法采用自動分詞詞典中的詞語從前往後匹配和從後往前匹配,這個方法沒有考慮詞匯上下文的相關性,準確度不高,不能滿足高精度文本處理的需求。

這個機械分詞的缺陷揭示一個重要規律:
也就是每個詞語的出現是和前後上下文有關系的,但是上下文依賴關系不能考慮太遠的詞語,如果假設每個詞語只和相鄰的一個詞語有關系,就提出了二元模型,一階Markov鏈:
技術分享圖片

感覺51CTO要提供一個公式編輯器,不然這個還能不能好好寫下去:
下面有個python實現二元模型的代碼,代碼我就不抄了,簡單來說,幾元模型就是和相鄰的幾個詞語有關系。
https://www.2cto.com/net/201701/588278.html

分詞中還要解決一個問題就是詞語是不斷更新的,詞庫裏面是沒有的,這個問題叫做未登錄詞識別:
基於半監督的條件隨機場(semi-CRF)算法 對於處理不同領域的專名識別具有較低的成本和較好的效果。

https://www.zhihu.com/question/35866596
技術分享圖片

ICRCLAS漢語分詞系統是由張華平博士於2002年設計開發的。。。。。歷史我就不說了還是感謝作者張華平博士提供了這麽好的系統,現在很多知名互聯網公司都以這個算法為分詞系統的核心算法。

hanLP分詞模塊的流程:技術分享圖片

http://www.hankcs.com/nlp/python-calls-hanlp.html
技術分享圖片

Nshort算法原理
1、從此圖中構建處節點和權重排序數組
2、從此圖中過濾掉排序數組中權重較高的路徑
http://www.xuebuyuan.com/743558.html
技術分享圖片

詞匯與分詞技術