Author Archive

強化學習與差異化編程

本文展示了DP可以為一些簡單但經典的控制問題帶來什麼,我們通常會使用強化學習(RL)。基於DP的模型不僅學習了比RL更有效的控制策略,而且還能更快地訓練數量級。

詞性標註 – Part of speech

一文看懂詞性標註

想要了解更多 NLP 相關的內容,請訪問  NLP專題 ,免費提供59頁的NLP文檔下載。

訪問 NLP 專題,下載 59 頁免費 PDF

什麼是詞性標註?

詞性標註範例

維基百科上對詞性的定義為: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%,而且發現越是常用的詞,不同的用法越多。由於兼類使用程度高,兼類現象涉及漢語中大部分詞類,因而造成在漢語文本中詞類歧義排除的任務量巨大。

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

 

詞性標註4種常見方法

詞性標註4種常見方法

關於詞性標註的研究比較多,這裡介紹一波常見的幾類方法,包括基於規則的詞性標註方法、基於統計模型的詞性標註方法、基於統計方法與規則方法相結合的詞性標註方法、基於深度學習的詞性標註方法等。

 

基於規則的詞性標註方法

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

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

 

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

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

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

 

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

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

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

 

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

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

值得一提的是,這一類方法近年來文章非常多,想深入了解這一塊的朋友們可以看這裡:NLP-progress – GitHub

最後再放一個詞性標註任務數據集 – 人民日報1998詞性標註數據集

 

 

詞性標註工具推薦

Jieba

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

Github地址

 

SnowNLP

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

Github地址

 

THULAC

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

Github地址

 

StanfordCoreNLP

斯坦福NLP組的開源,支持python介面。

Github地址

 

HanLP

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

Github地址

 

NLTK

NLTK是一個高效的Python構建的平台,用來處理人類自然語言數據。

Github地址

 

SpaCy

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

Gihub地址 | 官網

代碼已上傳至

 

本文轉自 公眾號 AI小白入門,原文地址

成分句法分析

想要了解更多 NLP 相關的內容,請訪問  NLP專題 ,免費提供59頁的NLP文檔下載。

訪問 NLP 專題,下載 59 頁免費 PDF

什麼是成分句法分析?

維基百科上給的定義如下:The constituency-based parse trees of constituency grammars (= phrase structure grammars) distinguish between terminal and non-terminal nodes. The interior nodes are labeled by non-terminal categories of the grammar, while the leaf nodes are labeled by terminal categories.

句子的組成成分叫句子成分,也叫句法成分。在句子中,詞與詞之間有一定的組合關係,按照不同的關係,可以把句子分為不同的組成成分。句子成分由詞或片語充當。

句法結構分析是指對輸入的單詞序列(一般為句子)判斷其構成是否合乎給定的語法,分析出合乎語法的句子的句法結構。句法結構一般用樹狀數據結構表示,通常稱之為句法分析樹(syntactic parsing tree)或簡稱分析樹(parsing tree),而完成這種分析過程的程序模塊稱為句法結構分析器(syntactic parser),也簡稱分析器(parser)。

 

基本任務

句法結構分析的基本任務主要有三個:1.判斷輸入的字元串是否屬於某種語言。2.消除輸入句子中的詞法和結構等方面的歧義。3.分析輸入句子的內部結構,如成分構成、上下文關係等。

如果一個句子有多種結構表示,句法分析器應該分析出該句子最有可能的結構。有時人們也把句法結構分析稱為語言或句子識別。

一般構造一個句法分析器需要考慮二部分:語法的形式化表示和詞條信息描述問題,分析演算法的設計。目前在自然語言處理中廣泛使用的是上下文無關文法(CFG)和基於約束的文法(又稱合一語法)。

 

常見方法

句法結構分析可以分為基於規則的分析方法、基於統計的分析方法以及近年來基於深度學習的方法等。

基於規則的分析方法:其基本思路是由人工組織語法規則,建立語法知識庫,通過條件約束和檢查來實現句法結構歧義的消除。

基於統計的分析方法:統計句法分析中目前最成功當屬基於概率上下文無關文法(PCFG或SCFG)。該方法採用的模型主要包括辭彙化的概率模型(lexicalized probabilistic model)和非辭彙化的概率模型(unlexicalized probabilistic model)兩種。

基於深度學習的分析方法:近幾年深度學習在nlp基礎任務取得了不錯的效果,也湧現出了不少論文。

 

短語結構和依存結構關係

短語結構樹可以被一一對應地轉化成依存關係樹,反過來則不然,因為一棵依存關係樹可能對應多個短語結構樹。轉化方法可以通過如下實現:

定義中心詞抽取規則,產生中心詞表;

根據中心詞表,為句法樹中每個結點選擇中心子結點;

同一層內將非中心子結點的中心詞依存到中心子結點的中心詞上,下一層的中心詞依存到上一層的中心詞上,從而得到相應的依存結構。

 

工具推薦

StanfordCoreNLP

斯坦福的,提供成分句法分析功能。

Github地址官網

 

Berkeley Parser

伯克利大學nlp組開源的工具。提供英文的句法分析功能。

官方地址

 

SpaCy

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

Gihub地址官網

 

參考:

1. 統計自然語言處理

2. 中文信息處理報告-2016

可解釋的機器學習

機器學習模型被許多人稱為「黑匣子」。這意味著雖然我們可以從中獲得準確的預測,但我們無法清楚地解釋或識別這些預測背後的邏輯。但是我們如何從模型中提取重要的見解呢?要記住哪些事項以及我們需要實現哪些功能或工具?這些是在提出模型可解釋性問題時會想到的重要問題。