中文詞性標註 (Part-of-Speech tagging) 的難點在哪?現在做得比較好的有哪幾家?
如題
騰訊剛開源的一個項目, 800萬詞條, 開源可下載, 可以作為分詞的依據,
問題是, 分詞的時候, 如果有歧義怎麼辦?
比如小撒給AI搗亂常用的:
一把把把把住了
(小龍女): 我也想過過過過過過的生活.
還有一些, 迅雷不及掩耳盜鈴之勢,
總之, NLP自然語言處理領域還有好些好玩的東西, 再等兩年, 很多有趣的項目會浮出水面.
好問題啊,答的人有點少。
從之前做序列標註的經歷來看,在pos tagging這一塊,總結一下有以下幾個難點:
- 詞性標註集的定義劃分。這一塊不像英文有一個比較確切的詞性標註集,國內各大家的標註規則不一,拋開學術界不談,就是百度、阿里、boson等的標註尺度都不一樣;
- 訓練語料的缺失。目前主要的中文詞性標註的訓練語料主要是98年人民日報的標註語料,當然還有一個2014年版本的標註語料,但從語料來看,標註質量不高。這一塊不像ner任務,有許多的通用語料和領域內的語料可以參考;
- 老大難問題,OOV,這一塊可以上詞典和干預規則;
- 一詞多性的問題,即兼類詞問題。有的詞也許專業的標註人員都弄不清楚在當前的語境下的詞性,常見的像名詞、動名詞的區分,這一塊在模型層面可以做一些工作;
主要的還是想到這幾個。
另一塊,隨著語言模型的更新以及各種網路的層出不窮,在當前bilstm+crf儼然成為了序列標註的baseline model,但能夠妥帖解決上述問題的,很少。
難點有兩個:一是詞性之本,究竟基於什麼?詞性可以從語法結構看,也可以從辭彙語義看,也就是動靜之分。
二是歧義之辯,究竟選哪個?一詞多義和多能,再正常不過,因此,不理解上下文,根本就是抓鬮。
或許,詞性是語法的副產品,是我們強制賦予的臆想,這個準確性也不值得我們追求吧?
謝謝邀請。
中文的詞性標註有幾家一直就做得挺好的,很多是分詞和詞性標註一起做的,我就主要說一下我試用過的吧,給題主做個參考。
最早用的是斯坦福的:The Stanford Natural Language Processing Group,一直在維護,有更新,主體是Java,下載full的包就能分詞。
然後也用過ICTCLAS的分詞工具,這個工具有分詞和詞性標註的功能:NLPIR-ICTCLAS漢語分詞系統-首頁,也一直在維護。我用的其實是他們最早的那個2008的開源的java版,就是下載jar包之後直接調介面,效果肯定趕不上後來的完整版,但是也能用,當時覺得方便好用就行了。
再然後試用過清華出的THULAC,THULAC:一個高效的中文詞法分析工具包,這個我主要是試用他們的在線版。C++, Java, Python都支持,效果也很好。
至於說詞性標註的難點在哪,這個我就不太說得上來,因為不是做這個方向。大部分的工具我都只是拿來用而已,覺得除了一些奇怪的專有詞分不出來,大家的分詞工具基本都能用。錯誤的部分對我做文檔向量空間模型或者詞向量的效果影響不是太大。詞性標註基本上是用於句法分析之類的任務,或者提取一些關鍵詞,感覺數據量大了之後錯的那些也無所謂。不過我後來的確是沒有在句法這方面繼續,提取關鍵詞的研究也沒有從詞性這方面入手,所以這個答案主要的依據還是自己當初的印象,最近並沒有再試。只能說這幾個工具一直在維護,相信是能夠一直做得不錯並且一直在進步的。
01
詞性定義
維基百科上對詞性的定義為: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.
詞性指以詞的特點作為劃分詞類的根據。詞類是一個語言學術語,是一種語言中詞的語法分類,是以語法特徵(包括句法功能和形態變化)為主要依據、兼顧辭彙意義對詞進行劃分的結果。
從組合和聚合關係來說,一個詞類是指:在一個語言中,眾多具有相同句法功能、能在同樣的組合位置中出現的詞,聚合在一起形成的範疇。詞類是最普遍的語法的聚合。詞類劃分具有層次性。如漢語中,詞可以分成實詞和虛詞,實詞中又包括體詞、謂詞等,體詞中又可以分出名詞和代詞等。
詞性標註就是在給定句子中判定每個詞的語法範疇,確定其詞性並加以標註的過程,這也是自然語言處理中一項非常重要的基礎性工作,所有對於詞性標註的研究已經有較長的時間,在研究者長期的研究總結中,發現漢語詞性標註中面臨了許多棘手的問題。
02
中文詞性標註的難點
漢語是一種缺乏詞形態變化的語言,詞的類別不能像印歐語那樣,直接從詞的形態變化上來判別。
常用詞兼類現象嚴重。《現代漢語八百詞》收取的常用詞中,兼類詞所佔的比例高達22.5%,而且發現越是常用的詞,不同的用法越多。由於兼類使用程度高,兼類現象涉及漢語中大部分詞類,因而造成在漢語文本中詞類歧義排除的任務量巨大。
研究者主觀原因造成的困難。語言學界在詞性劃分的目的、標準等問題上還存在分歧。目前還沒有一個統的被廣泛認可漢語詞類劃分標準,詞類劃分的粒度和標記符號都不統一。詞類劃分標準和標記符號集的差異,以及分詞規範的含混性,給中文信息處理帶來了極大的困難。
03
詞性標註常見方法
關於詞性標註的研究比較多,這裡介紹一波常見的幾類方法,包括基於規則的詞性標註方法、基於統計模型的詞性標註方法、基於統計方法與規則方法相結合的詞性標註方法、基於深度學習的詞性標註方法等。
基於規則的詞性標註方法
基於規則的詞性標註方法是人們提出較早的一種詞性標註方法,其基本思想是按兼類詞搭配關係和上下文語境建造詞類消歧規則。早期的詞類標註規則一般由人工構建。
隨著標註語料庫規模的增大,可利用的資源也變得越來越多,這時候以人工提取規則的方法顯然變得不現實,於是乎,人們提出了基於機器學習的規則自動提出方法。
基於統計模型的詞性標註方法
統計方法將詞性標註看作是一個序列標註問題。其基本思想是:給定帶有各自標註的詞的序列,我們可以確定下一個詞最可能的詞性。
現在已經有隱馬爾可夫模型(HMM)、條件隨機域(CRF)等統計模型了,這些模型可以使用有標記數據的大型語料庫進行訓練,而有標記的數據則是指其中每一個詞都分配了正確的詞性標註的文本。
基於統計方法與規則方法相結合的詞性標註方法
理性主義方法與經驗主義相結合的處理策略一直是自然語言處理領域的專家們不斷研究和探索的問題,對於詞性標註問題當然也不例外。
這類方法的主要特點在於對統計標註結果的篩選,只對那些被認為可疑的標註結果,才採用規則方法進行歧義消解,而不是對所有情況都既使用統計方法又使用規則方法。
基於深度學習的詞性標註方法
可以當作序列標註的任務來做,目前深度學習解決序列標註任務常用方法包括LSTM+CRF、BiLSTM+CRF 等。
值得一提的是,這一類方法近年來文章非常多,想深入了解這一塊的朋友們可以看這裡:
https://github.com/sebastianruder/NLP-progress/blob/master/english/part-of-speech_tagging.md
最後再放一個詞性標註任務數據集(人民日報 1998 詞性標註數據集):
https://pan.baidu.com/s/1fW908EQmyMv0XB5i0DhVyQ
04
詞性標註工具推薦
1. Jieba
「結巴」中文分詞:做最好的 Python 中文分片語件,可以進行詞性標註。
Github 地址:
https://github.com/fxsjy/jieba
TAG:機器學習 | 自然語言處理 | 深度學習DeepLearning | 精通Python自然語言處理書籍 | NLP漢語自然語言處理原理與實踐書籍 |