1. 程式人生 > >自然語言處理基礎技術之詞性標註

自然語言處理基礎技術之詞性標註

宣告:轉載請註明出處,謝謝:https://blog.csdn.net/m0_37306360/article/details/84502176
另外,更多實時更新的個人學習筆記分享,請關注:
知乎:https://www.zhihu.com/people/yuquanle/columns
公眾號:StudyForAI

 

今天總結一下自然語言處理之詞性標註,後附現有比較好的開源實現工具(基於python實現包)~~~

 

詞性定義

 

百度百科定義:詞性指以詞的特點作為劃分詞類的根據。詞類是一個語言學術語,是一種語言中詞的語法分類,是以語法特徵(包括句法功能和形態變化)為主要依據、兼顧詞彙意義對詞進行劃分的結果。

 

維基百科定義:In traditional grammar, a part of speech (abbreviated form: PoS or POS) is a category of words (or, more generally, of lexical items) which have similar grammatical properties.

 

從組合和聚合關係來說,一個詞類是指:在一個語言中,眾多具有相同句法功能、能在同樣的組合位置中出現的詞,聚合在一起形成的範疇。詞類是最普遍的語法的聚合。詞類劃分具有層次性。如漢語中,詞可以分成實詞和虛詞,實詞中又包括體詞、謂詞等,體詞中又可以分出名詞和代詞等。

 

詞性標註就是在給定句子中判定每個詞的語法範疇,確定其詞性並加以標註的過程,這也是自然語言處理中一項非常重要的基礎性工作,所有對於詞性標註的研究已經有較長的時間,在研究者長期的研究總結中,發現漢語詞性標註中面臨了許多棘手的問題。

 

中文詞性標註的難點

 

漢語是一種缺乏詞形態變化的語言,詞的類別不能像印歐語那樣,直接從詞的形態變化上來判別。

 

常用詞兼類現象嚴重。《現代漢語八百詞》收取的常用詞中,兼類詞所佔的比例高達22.5%,而且發現越是常用的詞,不同的用法越多。由於兼類使用程度高,兼類現象涉及漢語中大部分詞類,因而造成在漢語文字中詞類歧義排除的任務量大。

 

研究者主觀原因造成的困難。語言學界在詞性劃分的目的、標準等問題上還存在分歧。目前還沒有一個統的被廣泛認可漢語詞類劃分標準,詞類劃分的粒度和標記符號都不統一。詞類劃分標準和標記符號集的差異,以及分詞規範的含混性,給中文資訊處理帶來了極大的困難。

 

詞性標註常見方法

 

基於規則的詞性標註方法

 

基於規則的詞性標註方法是人們提出較早的一種詞性標註方法,其基本思想是按兼類詞搭配關係和上下文語境建造詞類消歧規則。早期的詞類標註規則一般由人工構建。

 

隨著標註語料庫規模的增大,可利用的資源也變得越來越多,這時候以人工提取規則的方法顯然變得不現實,於是乎,人們提出了基於機器學習的規則自動提出方法。

 

基於統計模型的詞性標註方法

 

統計方法將詞性標註看作是一個序列標註問題。其基本思想是:給定帶有各自標註的詞的序列,我們可以確定下一個詞最可能的詞性。

 

現在已經有隱馬爾可夫模型(HMM)或條件隨機域(CRF)等統計模型了,這些模型可以使用有標記資料的大型語料庫進行訓練,而有標記的資料則是指其中每一個詞都分配了正確的詞性標註的文字。

 

基於統計方法與規則方法相結合的詞性標註方法

 

理性主義方法與經驗主義相結合的處理策略一直是自然語言處理領域的專家們不斷研究和探索的問題,對於詞性標註問題當然也不例外。

 

這類方法的主要特點在於對統計標註結果的篩選,只對那些被認為可疑的標註結果,才採用規則方法進行歧義消解,而不是對所有情況都既使用統計方法又使用規則方法。

 

基於深度學習的詞性標註方法

 

可以當作序列標註的任務來做,目前深度學習解決序列標註任務常用方法包括LSTM+CRF、BiLSTM+CRF等。
**詞性標註任務資料集 **

 

人民日報1998詞性標註資料集:https://pan.baidu.com/s/1fW908EQmyMv0XB5i0DhVyQ
詞性標註工具推薦

 

Jieba:“結巴”中文分詞:做最好的 Python 中文分片語件,可以進行詞性標註。

 

Github地址:https://github.com/fxsjy/jieba

 

SnowNLP:SnowNLP是一個python寫的類庫,可以方便的處理中文文字內容。

 

Github地址:https://github.com/isnowfy/snownlp

 

THULAC:THULAC(THU Lexical Analyzer for Chinese)由清華大學自然語言處理與社會人文計算實驗室研製推出的一套中文詞法分析工具包,具有中文分詞和詞性標註功能。

 

Github地址:https://github.com/thunlp/THULAC

 

官網:http://thulac.thunlp.org/

 

StanfordCoreNLP:斯坦福的,具備各種nlp功能,包括詞性標註。

 

Github地址:https://github.com/Lynten/stanford-corenlp

 

官網:https://stanfordnlp.github.io/CoreNLP/

 

Hanlp:HanLP是一系列模型與演算法組成的NLP工具包,由大快搜索主導並完全開源,目標是普及自然語言處理在生產環境中的應用。

 

Github地址:https://github.com/hankcs/pyhanlp

 

官網:http://hanlp.linrunsoft.com/

 

NLTK:NLTK是一個高效的Python構建的平臺,用來處理人類自然語言資料。

 

Github地址:https://github.com/nltk/nltk

 

官網:http://www.nltk.org/

 

SpaCy:工業級的自然語言處理工具,遺憾的是不支援中文。

 

Gihub地址:https://github.com/explosion/spaCy

 

官網:https://spacy.io/

 

最新研究進展看這裡:https://github.com/sebastianruder/NLP-progress/blob/master/english/part-of-speech_tagging.md

參考:
1.統計自然語言處理
---------------------
作者:yuquanle
來源:CSDN
原文:https://blog.csdn.net/m0_37306360/article/details/84502176
版權宣告:本文為博主原創文章,轉載請附上博文連結!