自然語言處理簡介(1)---- 服務梳理與傳統漢語分詞


這裏寫圖片描述

大家好,今天和大家分享一下,我在自然語言處理(Natural Language Processing,NLP)的一些學習經驗和心得體會。
主要內容分爲兩大部分,第一部分對漢語自然處理的服務提供商及其服務內容做一個簡單的梳理,讓大家能夠更好的瞭解目前的技術手段,技術現狀。第二部分,從漢語語言學,到傳統的漢語自然語言處理方法的基礎,漢語分詞,力求在微觀上讓大家對漢語自然語言處理有一個全方位的認識。

1.Nlp技術體系簡介

NLP 是人工智能和語言學領域的交叉學科,用於分析、理解和生成自然語言,以方便人和計算機設備進行交流,以及人與人之間的交流

自然語言處理在廣義上分爲兩大部分:

  • 第一部分爲自然語言理解,是指讓計算機懂人類的語言。
  • 第二部分爲自然語言生成,是指把計算機數據轉化爲自然語言。

NLP 技術按照由淺入深可以分爲三個層次,分別爲:

  • 基礎技術
  • 核心技術
  • NLP+

這裏寫圖片描述

1.1 基礎技術

這三個層次中,基礎技術主要是對自然語言中的基本元素進行表示和分析,比如詞彙,短語,句子。

詞彙短語分析中,大家熟知的分詞技術,就是爲了解決如下問題,比如:我去北京大學玩,北京大學獨立成詞,而不是分成北京和大學。

句法語義分析:對於給定的句子,進行分詞、詞性標記、命名實體識別和鏈接、句法分析、語義角色識別和多義詞消歧。

1.2 Nlp 核心技術

NLP 的核心技術是建立在基礎技術之上的的技術產出,基礎技術中如詞法,句法的分析越準確,核心技術的產出才能越準確。核心技術主要包括以下幾個方面:

  • 信息抽取
    從給定文本中抽取重要的信息,比如,時間、地點、人物、事件、原因、結果、數字、日期、貨幣、專有名詞等等。通俗說來,就是要了解誰在什麼時候、什麼原因、對誰、做了什麼事、有什 麼結果。涉及到實體識別、時間抽取、因果關係抽取等關鍵技術。

  • 文本挖掘(或者文本數據挖掘)
    包括文本聚類、分類、信息抽取、摘要、情感分析以及對挖掘的信息和知識的可視化、交互式的表達界面。目前主流的技術都是基於統計機器學習的。

  • 機器翻譯
    把輸入的源語言文本通過自動翻譯獲得另外一種語言的文本。根據輸入媒介不同,可以細分爲文本翻譯、語音翻譯、手語翻譯、圖形翻譯等。機器翻譯從最早的基於規則的方法到二十年前的基於統計的方法,再到今天的基於神經網絡(編碼-解碼)的方法,逐漸形成了一套比較嚴謹的方法體系。

  • 信息檢索
    對大規模的文檔進行索引。可簡單對文檔中的詞彙,賦之以不同的權重來建立索引,也可利用(句法分析,信息抽取,文本發掘)來建立更加深層的索引。在查詢的時候,對輸入的查詢表達式比如一個檢索詞或者一個句子進行分析,然後在索引裏面查找匹配的候選文檔,再根據一個排序機制把候選文檔排序,最後輸出排序得分最高的文檔。

1.3 NlP+(高端技術)

能夠真正影響我們生活的黑科技,能夠通過圖靈測試的機器問答系統,我們可以稱之爲NLP+

  • 問答系統
    對一個自然語言表達的問題,由問答系統給出一個精準的答案。需要對自然語言查詢語句進行某種程度的語義分析,包括實體鏈接、關係識別,形成邏輯表達式,然後到知識庫中查找可能的候選答案並通過一個排序機制找出最佳的答案。

  • 對話系統
    系統通過一系列的對話,跟用戶進行聊天、回答、完成某一項任務。涉及到用戶意圖理解、通用聊天引擎、問答引擎、對話管理等技術。此外,爲了體現上下文相關,要具備多輪對話能力。

  • AI助手
    目前自然語言處理的前沿,已經與人類真假難辨
    https://v.qq.com/x/page/w0648xqraxj.html

參考:
https://www.zhihu.com/question/19895141/answer/149475410


2.知名NLP 服務系統簡介

以下我們通過一些知名中文NLP服務提供商,包括我們熟知的雲服務提供商BAT ,aws,以及兩家科研院所的系統簡介,來介紹以及宏觀認識NLP的各種技術手段和應用場景。

首先介紹的是兩家NLP基礎分析,準確率很高的科研院所 的產品,源自北理工和哈工大,之後我們介紹知名雲服務提供商的產品。

2.1漢語分詞系統ICTCLAS

主頁:http://ictclas.nlpir.org/
在線演示系統:http://ictclas.nlpir.org/
Python版本:https://github.com/tsroten/pynlpir
(需要頻繁更新key)
https://blog.csdn.net/sinat_26917383/article/details/77067515

這裏寫圖片描述
對於習總書記這篇新聞稿 的實體抽取結果
http://news.163.com/18/0715/14/DMOTHJEK000189FH.html

該系統爲漢語自然語言處理領域頂尖大牛,北京理工大學張華平博士20年的專業技術積累,NShort 革命性分詞算法的發明者。

主要功能包括中文分詞;英文分詞;中英文混合分詞,詞性標註;命名實體識別;新詞識別;關鍵詞提取;支持用戶專業詞典與微博分析。NLPIR系統支持多種編碼、多種操作系統、多種開發語言與平臺。

該平臺的特點爲:功能豐富,分詞,語義,實體發現準確率高,近期發佈了最新的2018版。
(與熟知的jieba,ltp,清華thulac)

2.2 哈工大語言云(Language Technology Platform,LTP)

https://www.ltp-cloud.com/

源自哈工大知名的分詞插件ltp,準確率高

Python版本:https://github.com/HIT-SCIR/pyltp

這裏寫圖片描述

語言技術平臺(Language Technology Platform,LTP)是哈工大社會計算與信息檢索研究中心歷時十年開發的一整套中文語言處理系統。LTP制定了基於XML的語言處理結果表示,並在此基礎上提供了一整套自底向上的豐富而且高效的中文語言處理模塊(包括詞法、句法、語義等6項中文處理核心技術),以及基於動態鏈接庫(Dynamic Link Library, DLL)的應用程序接口、可視化工具,並且能夠以網絡服務(Web Service)的形式進行使用。

“語言云”
以哈工大社會計算與信息檢索研究中心研發的 “語言技術平臺(LTP)” 爲基礎,爲用戶提供高效精準的中文自然語言處理雲服務。 使用 “語言云” 非常簡單,只需要根據 API 參數構造 HTTP 請求即可在線獲得分析結果,而無需下載 SDK 、無需購買高性能的機器,同時支持跨平臺、跨語言編程等。 2014年11月,哈工大聯合科大訊飛公司共同推出 “哈工大-訊飛語言云”,借鑑了訊飛在全國性大規模雲計算服務方面的豐富經驗,顯著提升 “語言云” 對外服務的穩定性和吞吐量,爲廣大用戶提供電信級穩定性和支持全國範圍網絡接入的語言云服務,有效支持包括中小企業在內開發者的商業應用需要。
有關更多語言云API的使用方法,請參考:http://www.ltp-cloud.com/document/

windows 下安裝pyltp的話,應該是需要安裝visual studio, 由於LTP是用c++寫的,pyltp也是基於它封裝而成的,需要調用 cl.exe 完成源碼的編譯。然後下載源碼,使用python setup.py install 的方式進行安裝就可以了。

2.3 Amazon Comprehend

這裏寫圖片描述

https://amazonaws-china.com/cn/comprehend/?nc2=h_a1

Amazon Comprehend 是一項自然語言處理 (NLP) 服務,可利用機器學習發現文本中的見解和關係。Amazon Comprehend 可以識別文本語言,提取關鍵的短語、地點、人物、品牌或事件,瞭解文本的含義是肯定還是否定,還可以自動按主題整理一系列文本文件。

您可使用 Amazon Comprehend API 分析文本,並將結果進行廣泛應用,包括客戶意見分析、智能文檔搜索以及 Web 應用程序的內容個性化設置。

該服務不斷地通過各種信息來源 (包括世界上最大的自然語言數據集之一:Amazon.com 商品描述和買家評論) 學習和提升, 以跟上語言的發展演變。

實例:利用 AWS Comprehend 打造近實時文本情感分析
https://amazonaws-china.com/cn/blogs/china/realizing-near-real-time-text-sentiment-analysis-with-aws-comprehend/

可以看到圖中,aws 使用kibana 儀表盤和 Comprehend 服務組成了一個實時的電影評論實時分析系統,其實主要功能就是實現了分詞和內容來源的地理位置統計,看起來很炫酷。

2.4 阿里雲NLP

這裏寫圖片描述
https://data.aliyun.com/product/nlp?spm=5176.8142029.388261.396.63f36d3eoZ8kNK

阿里的簡介爲:

自然語言處理是爲各類企業及開發者提供的用於文本分析及挖掘的核心工具,
已經廣泛應用在電商、文化娛樂、金融、物流等行業客戶的多項業務中。

自然語言處理API可幫助用戶搭建內容搜索、內容推薦、輿情識別及分析、文本結構化、對話機器人等智能產品,
也能夠通過合作,定製個性化的解決方案。

現在購買資源包,享受梯度優惠的同時,基礎版API更有每天5萬次免費調用額度。

值得注意的是阿里雲的nlp 服務剛發佈不到1年,應該算是領域內的新手,語料庫應該和aws 一樣,主要爲商品描述和評論,所以它有一項功能叫做商品評價解析

這裏寫圖片描述

2.5 騰訊雲NLP

這裏寫圖片描述

https://cloud.tencent.com/product/nlp

界面友好,功能豐富,語料庫爲海量綜合性語料庫

騰訊雲智在線演示系統
http://nlp.qq.com/semantic.cgi

2.6 百度語言處理基礎技術

這裏寫圖片描述

http://ai.baidu.com/tech/nlp
依託海量檢索數據,並且搜索引擎本身就是NLP 最終的結果產出,所以在NLP領域,百度無論是語料庫豐富程度,技術先進性,以及服務多樣性等都是遙遙領先其他廠家,基本上可以算作是中文NLP服務提供商的業界最佳實踐。

2.6.1 功能豐富且技術領先

- 詞法分析   
- 詞向量表示 
- 詞義相似度 
- 評論觀點抽取
- 文章標籤  
- 依存句法分析
- DNN語言模型
- 短文本相似度
- 情感傾向分析
- 文章分類
- 對話情緒識別
- 文本糾錯

等12個大類的服務,對於個人開發者來說,配比了免費額度,對於詞向量來說,每秒免費的額度是5個詞,基本可以夠用拿來做點有趣的事情了。

從圖中結果也可以看出,百度對詞向量相似度的分析和我用餘弦相似度的結果一樣,可以推斷出百度的算法比較接地氣。

2.6.2 DNN語言模型

Deep Neural Network(DNN)模型是基本的深度學習框架,DNN語言模型是通過計算給定詞組成的句子的概率,從而判斷所組成的句子是否符合客觀語言表達習慣

通常用於機器翻譯、拼寫糾錯、語音識別、問答系統、詞性標註、句法分析和信息檢索等
百度這個模型是大廠中首個公開提供服務接口的深度學習語言模型。

2.6.3 調用方式簡單

提供更加簡單的調用方式:類似aws boto3
如果已安裝pip,執行pip install baidu-aip即可
Sdk 方式,安裝

from aip import AipNlp
 """ 你的 APPID AK SK """ 
APP_ID = '你的 App ID' 
API_KEY = '你的 Api Key' 
SECRET_KEY = '你的 Secret Key' 
client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

word = "張飛"
 """ 調用詞向量表示 """ 
client.wordEmbedding(word);

2.7 準確率(離線模型靠不住,在線模型可更新)

THULAC實驗室在統一測試環境下,對若干流行分詞軟件和THULAC進行了測試,使用的模型爲各分詞軟件自帶模型。THULAC使用的是隨軟件提供的簡單模型Model_1。評測環境爲 Intel Core i5 2.4 GHz 評測結果如下:

msr_test(560KB)

Algorithm Time Precision Recall
LTP-3.2.0 3.21s 0.867 0.896
ICTCLAS(2015版) 0.55s 0.869 0.914
jieba 0.26s 0.814 0.809
THULAC 0.62s 0.877 0.899

pku_test(510KB)

Algorithm Time Precision Recall
LTP-3.2.0 3.83s 0.960 0.947
ICTCLAS(2015版) 0.53s 0.939 0.944
jieba 0.23s 0.850 0.784
THULAC 0.51s 0.944 0.908

除了以上在標準測試集上的評測,我們也對各個分詞工具在大數據上的速度進行了評測,結果如下:

CNKI_journal.txt(51 MB)

Algorithm Time Speed
LTP-3.2.0 348.624s 149.80KB/s
ICTCLAS(2015版) 106.461s 490.59KB/s
jieba 22.5583s 2314.89KB/s
THULAC 42.625s 1221.05KB/s

本文截取清華和部分網絡評測,以及個人使用結果發現。最好使用的開源組件如python的jieba 分詞準確度並不是很高,這是由於離線的模型很難在新詞的發現上做出比較好的結果。由於雲服務提供商的在線模型一般的更新頻率 較快,所以準確度較高。

清華評測性能對比:
http://thulac.thunlp.org/
基於python 版本的評測:
https://blog.csdn.net/riario/article/details/78259877

2.8 其他提供商

BosonNLP(界面,接口友好,準確率高)
https://bosonnlp.com/demo
這裏寫圖片描述


3. NLP開源組件簡介

NLP 領域有非常多的開源組件可以用來快速構建開發的原型,我來簡單介紹以下四個知名開源組件

3.1 NLTK

http://www.nltk.org/

  • 最常用的自然語言處理庫
    NLTK是一個高效的Python構建的平臺,用來處理人類自然語言數據。基本包含了NLP 中需要用到的所有技術
    它提供了易於使用的接口,通過這些接口可以訪問超過50個語料庫和詞彙資源(如WordNet),還有一套用於分類、標記化、詞幹標記、解析和語義推理的文本處理庫,以及工業級NLP庫的封裝器和一個活躍的討論論壇。
  • 古騰堡項目(Project Gutenberg)
    NLTK 包含古騰堡項目(Project Gutenberg)中電子文本檔案的經過挑選的一小部分文本。該項目大約有57,000 本免費電子圖書,放在http://www.gutenberg.org/上。我們先要用Python 解釋器加載NLTK 包,然後嘗試nltk.corpus.gutenberg.fileids(),當然其中的中文語料也很豐富(都是沒有版權的免費文檔),比如李白文集,三字經,百家姓等等(要是用這些訓練中文模型效果可想而知)

3.2 Jieba分詞

https://github.com/fxsjy/jieba

“結巴”中文分詞:做最好的 Python 中文分詞組件
“Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module.
實現基本功能的代碼量在一千行左右,詞典長度35w ,安裝方式友好,簡潔,高效,(但準確性已經跟不上時代!!!85%)

3.3 ICTCLAS

http://ictclas.nlpir.org/

主要功能包括中文分詞;詞性標註;中英混合分詞;命名實體識別;用戶詞典功能;支持GBK編碼、UTF8編碼、BIG5編碼。新增微博分詞、新詞發現與關鍵詞提取;張華平博士先後傾力打造20餘年,內核升級10次。

全球用戶突破20萬,先後獲得了2010年錢偉長中文信息處理科學技術獎一等獎,2003年國際SIGHAN分詞大賽綜合第一名,2002年國內973評測綜合第一名。

3.4 Gensim

https://radimrehurek.com/gensim/

它的 slogan 是:Topic modelling for humans.
Gensim提供了一個發現文檔語義結構的工具,用於從原始的非結構化的文本中,無監督地學習到文本隱層的主題向量表達。它將語料(Corpus)向量化表示後,主要能夠實現以下三個功能:

  • 建立語言模型
  • 詞嵌入模型的訓練
  • 檢索和語義分析的神器

簡介參考:https://www.cnblogs.com/iloveai/p/gensim_tutorial.html


4. 漢語語言學

這裏寫圖片描述
下面我們進入第二個部分的介紹,漢語語言學與漢語分詞技術。

漢語,即漢族的語言,是中國通用語言,國際通用語言之一,屬漢藏語系,漢語歷史悠久,使用人數最多,世界上使用漢語的人數至少15億 ,超過世界總人口的20%

漢字最早起源於商朝的甲骨文,距今已經有3000-4000年的歷史了。文字的目的是爲了記錄,古漢語以獨字爲核心,即使隋唐以後漢語書面語逐漸向口語化發展,從甲骨文出現至今的4000年中,漢語基本的語法格局和造字方法始終沒有本質變化。

4.1 漢字的統一

秦朝李斯受命統一文字,圖中這種文字就是小篆。通行於秦代。形體偏長,勻圓齊整,由大篆衍變而成。小篆也叫“秦篆”。東漢許慎《說文解字·敘》 稱:“秦始皇帝初兼天下……罷其不與秦文合者。”李斯作《倉頡篇》,中車府令趙高作《爰歷篇》,太史令胡毋敬作《博學篇》,“皆取史籀大篆,或頗省改,所謂小篆者也。”今存《琅琊臺刻石》、 《泰山刻石》殘石,即小篆代表作。

漢字統一後,我們的祖先通過造字並且成詞,成句,最終留下了浩如煙海的璀璨文化。

值得一提的是,對於計算機可以理解的語料庫,知識庫,我國起步很晚。

1979年開始,中國開始機器可讀的語料庫的建設,至1991年開始建設國家級的語料庫。現在我們使用漢語分詞開源組件的大部分語料庫都是基於《人民日報》加工的,一般項目包括詞語切分、詞性標註、專有名詞(專有名詞短語)標註。還要對多音詞注音。

4.2 印歐語系與漢藏語系

從古至今,漢語的表達基本單位是字,造字的方法六書:

象形,指事,會意,轉註,假借,形聲

漢語中每個字都有非常豐富的含義。比如圖片中的會意字,順字,就在字本身上表達出了,柔順通順的含義。

當然印歐語系與漢語的諸多不同中,有如下兩點是至關重要的。

  • 第一,印歐語系都實行分詞連寫,詞與詞之間用空格分割,因此沒有分詞問題。
  • 第二,印歐語種大多數都通過形態變化構造語法結構,有很強 的規範性。

基於印歐語系這些特點,在自然語言誕生的初期階段,句法分析已經成爲西方NLP的核心主題

在漢語自然語言處理的過程中,遇到的問題與印歐語言有諸多不同:首先中文分詞就是西方語言所不曾遇到的問題
在句法解析環節,如果照搬西方語言的算法理論,越來越多 的事實證明,句法分析的在漢語上的精度要顯著低於西方語言。


5. 詞彙與分詞技術簡介

漢語詞彙是漢語語言中能夠獨立運用的最小語言單位,是語言中的原子結構。獨立運用意味着,單獨做句法成分或單獨起語法作用。

因此對中文進行分詞就顯的至關重要。漢字有5-20萬多個,但是常用的漢字僅有6000個,在線新華字典中收錄了約52萬個漢語詞彙。

在英文的行文中,單詞之間是以空格作爲自然分界符的,而中文只是字、句和段能通過明顯的分界符來簡單劃界,唯獨詞沒有一個形式上的分界符,雖然英文也同樣存在短語的劃分問題,不過在詞這一層上,中文比之英文要複雜得多、困難得多。(比如北京大學的劃分,是單獨成詞還是兩個詞,這樣的中文詞彙還有很多)

5.1 漢語詞彙

說到漢語詞彙,漢語詞彙有三個重要特性:

1.穩固性
2.常用性
3.能產性

前兩個特性很好理解,能產性說的是,人們給小孩子起名就是詞彙能產性的生動體現,漢語的構詞機制是一個動態的自組織認知系統,所以漢語自然語言處理的魅力就在於,對於此類在社會發展過程中出現的新詞,人名,組織機構名,如何正確切分並且識別。

5.2 漢語分詞技術

由於國際上常用的NLP算法,深層次的語法語義分析通常都是以詞作爲基本單位,很多中文的自然語言處理的任務,也就多了一個預處理的過程來把連續的漢字分隔成更具有語言語義學上意義的詞。這個過程就叫做分詞。

簡要來說分詞就是:把沒有明顯分界標誌的字串切分爲詞串

中文分詞研究經歷20於年,主要分化爲三個流派。

1.機械式分詞法(基於詞典)
2.基於語法和規則的分詞法
3.基於統計的分詞法

最終較爲成功的實現了中文詞彙的自動切分技術(最近興起的深度學習技術,又提供了新的分詞思路)

儘管在語言學語義學上,詞有着相對清晰的定義,對於計算機處理自然語言來說,分詞很多時候沒有放之四海皆準的共同標準。由於分詞本身更多的時候是作爲一個預處理的過程,判斷其質量的好壞更多的時候需要結合下游的應用來進行。

分詞問題爲中文文本處理的基礎性工作,分詞效果的好壞對後面的中文信息處理其關鍵作用

參考:
深入NLP———看中文分詞如何影響你的生活點滴
https://baike.baidu.com/tashuo/browse/content?id=d276fc8ff138ce5c74e7683b&lemmaId=&fromLemmaModule=pcBottom

6.漢語分詞技術—-以jieba 分詞爲例

這裏寫圖片描述

以我認爲使用起來最友好的jieba 分詞爲例,我們來認識一下基於統計類算法的漢語分詞流程。
圖片中例子參考:http://www.cnblogs.com/zhbzz2007/p/6076246.html

6.1 Jieba分詞的特點

結巴分詞安裝好即可使用,自帶一個35w 的語料庫,其中標註了漢語常見詞彙的詞頻,和詞性。
概況來說,結巴分詞主要有以下三個特點。

1.基於前綴詞典實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖 (DAG)
2.採用了動態規劃查找最大概率路徑, 找出基於詞頻的最大切分組合
3.對於未登錄詞,採用了基於漢字成詞能力的 HMM 模型,使用了 Viterbi 算法

6.2 分詞算法

jieba 分詞算法的主要流程爲三步

0.首先加載詞庫,完成初試環境設置

1.對於給定待分詞的句子, 使用正則獲取匹配的中文字符(和英文字符)切分成的短語列表(在語料庫中);
即,對指定的詞庫dict.txt進行計算生成前綴詞典,到jieba進程的初始化工作完成後就調用get_DAG獲得句子的DAG(有向無環圖);

2.根據句子的DAG則使用DAG(查字典)和動態規劃, 得到最大概率路徑, 對DAG中那些沒有在字典中查到的字, 組合成一個新的片段短語, 使用HMM模型進行分詞, 也就是識別新詞, 即識別字典外的新詞

6.3 未登錄詞識別與詞性標註

6.3.1 未登錄詞識別

如果沒有前綴詞典或者有些詞不在前綴詞典中,則可以利用HMM模型進行分詞,主要是將分詞問題視爲一個序列標註(sequence labeling)問題,其中,句子爲觀測序列,分詞結果爲狀態序列。首先通過語料訓練出HMM相關的模型,然後利用Viterbi算法進行求解,最終得到最優的狀態序列,然後再根據狀態序列,輸出分詞結果。

HMM(Hidden Markov Model) 隱馬爾可夫模型,一種簡單的網絡圖模型,同時是一種產生式模型是爲了弄清楚並模擬數據產生的原理和機制。

HMM模型+viterbi算法(高通公司的聯合創始人發明)進行分詞的主要思想就是:
給定訓練好的模型(如HMM)參數(λ=(A,B,π)), 然後對模型進行載入,再運行一遍Viterbi算法,就可以找出每個字對應的狀態(B, M, E, S),這樣就可以根據狀態也就可以對句子進行分詞。

4-tag,也就是每個字處在詞語中的4種可能狀態:

B、M、E、S,分別表示

- Begin(這個字處於詞的開始位置)
- Middle(這個字處於詞的中間位置)
- End(這個字處於詞的結束位置)
- Single(這個字是單字成詞)

基本規則
B後面只能接(M或者E),不可能接(B或者S);而M後面也只能接(M或者E),不可能接(B或者S)

具體如下圖所示,“去”和“玩”都是單字成詞,因此狀態就是S,“北京大學”是多字組合成的詞,因此“北”、“京”、“大”、“學”分別位於“北京大學”中的B、M、M、E。

序列標註,就是將輸入句子和分詞結果當作兩個序列,句子爲觀測序列,分詞結果爲狀態序列,當完成狀態序列的標註,也就得到了分詞結果。實際上詞性標註問題是一個解碼問題。

由Viterbi算法得到狀態序列(包含分詞及詞性標註),也就可以根據狀態序列得到分詞結果。其中狀態以B開頭,離它最近的以E結尾的一個子狀態序列或者單獨爲S的子狀態序列,就是一個分詞。以”去北京大玩學城“爲例,其中,“去“和”北京”在前綴詞典中有,因此直接通過詞–詞性詞典對其匹配即可,它倆的詞性分別爲“去/v”,“北京/ns”;而對於”大玩學城“這個句子,是未登錄詞,因此對其利用隱馬爾科夫模型對其進行詞性標誌,它的隱藏狀態序列就是[(u’S’, u’a’), (u’B’, u’n’), (u’E’, u’n’), (u’B’, u’n’)]這個列表,列表中的每個元素爲一個元組,則分詞爲”S / BE / B“,對應觀測序列,也就是”大 / 玩學 / 城”。

參考:https://www.cnblogs.com/baiboy/p/jieba2.html

6.3.2 詞性標註

這裏寫圖片描述

這裏寫圖片描述

詞性標註和未登錄詞的發現方法一樣,都可以使用HMM模型來解決這樣的問題。

給定詞串W=w1w2…wn,和詞性標記集,求對應的詞性標記串T=t1t2…tn。
因爲有些詞有多個詞性,所以從概率的角度看就是:給定W的條件下,求使得概率P(T|W)最高的那個詞性標註串,即:
這裏寫圖片描述

從圖論的角度來看,就是求解圖中哪條路徑的權重最大,進而將這個問題轉化爲使用基於動態規劃的viterbi 算法求解一系列相似的子問題,得到權重最大的路徑。


參考文獻

我愛自然語言處理
http://www.52nlp.cn/

深度學習與中文短文本分析總結與梳理
https://blog.csdn.net/wangyaninglm/article/details/66477222

分析了近5萬首《全唐詩》,發現了這些有趣的祕密
http://www.growthhk.cn/cgo/9542.html

萬字乾貨|10款數據分析“工具”,助你成爲新媒體運營領域的“增長黑客”
http://www.woshipm.com/data-analysis/553180.html

jieba分詞簡介與解析
https://www.cnblogs.com/baiboy/p/jieba2.html

有哪些好的漢語分詞方案
https://www.zhihu.com/question/19578687
基於分佈式的短文本命題實體識別之—-人名識別(python實現)
https://blog.csdn.net/wangyaninglm/article/details/75042151

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章