十分钟学习自然语言处理概述
十分鐘學習自然語言處理概述??
摘要:近來自然語言處理行業發展朝氣蓬勃,市場應用廣泛。筆者學習以來寫了不少文章,文章深度層次不一,今天因為某種需要,將文章全部看了一遍做個整理,也可以稱之為概述。關于這些問題,博客里面都有詳細的文章去介紹,本文只是對其各個部分高度概括梳理。(本文原創,轉載注明出處:十分鐘學習自然語言處理概述? )
1 什么是文本挖掘?
文本挖掘是信息挖掘的一個研究分支,用于基于文本信息的知識發現。文本挖掘的準備工作由文本收集、文本分析和特征修剪三個步驟組成。目前研究和應用最多的幾種文本挖掘技術有:文檔聚類、文檔分類和摘要抽取。
2 什么是自然語言處理?
自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。它研究人與計算機之間用自然語言進行有效通信的理論和方法。融語言學、計算機科學、數學等于一體的科學。
自然語言處理原理:形式化描述-數學模型算法化-程序化-實用化
語音的自動合成與識別、機器翻譯、自然語言理解、人機對話、信息檢索、文本分類、自動文摘等。
3?常用中文分詞?
中文文本詞與詞之間沒有像英文那樣有空格分隔,因此很多時候中文文本操作都涉及切詞,這里整理了一些中文分詞工具。
Stanford(直接使用CRF 的方法,特征窗口為5。)?
漢語分詞工具(個人推薦)
哈工大語言云
庖丁解牛分詞
盤古分詞? ICTCLAS(中科院)漢語詞法分析系統?
IKAnalyzer(Luence項目下,基于java的)?
FudanNLP(復旦大學)
4 詞性標注方法?句法分析方法?
原理描述:標注一篇文章中的句子,即語句標注,使用標注方法BIO標注。則觀察序列X就是一個語料庫(此處假設一篇文章,x代表文章中的每一句,X是x的集合),標識序列Y是BIO,即對應X序列的識別,從而可以根據條件概率P(標注|句子),推測出正確的句子標注。??
顯然,這里針對的是序列狀態,即CRF是用來標注或劃分序列結構數據的概率化結構模型,CRF可以看作無向圖模型或者馬爾科夫隨機場。 ? 用過CRF的都知道,CRF是一個序列標注模型,指的是把一個詞序列的每個詞打上一個標記。一般通過,在詞的左右開一個小窗口,根據窗口里面的詞,和待標注詞語來實現特征模板的提取。最后通過特征的組合決定需要打的tag是什么。
5 命名實體識別?三種主流算法,CRF,字典法和混合方法 ?
1 CRF:在CRF for Chinese NER這個任務中,提取的特征大多是該詞是否為中國人名姓氏用字,該詞是否為中國人名名字用字之類的,True or false的特征。所以一個可靠的百家姓的表就十分重要啦~在國內學者做的諸多實驗中,效果最好的人名可以F1測度達到90%,最差的機構名達到85%。 ?
2 字典法:在NER中就是把每個字都當開頭的字放到trie-tree中查一遍,查到了就是NE。中文的trie-tree需要進行哈希,因為中文字符太多了,不像英文就26個。 ?
3 對六類不同的命名實體采取不一樣的手段進行處理,例如對于人名,進行字級別的條件概率計算。 ? 中文:哈工大(語言云)上海交大??? 英文:stanfordNER等
7 基于主動學習的中醫文獻句法識別研究 ?
7.1 語料庫知識? ??????
語料庫作為一個或者多個應用目標而專門收集的,有一定結構的、有代表的、可被計算機程序檢索的、具有一定規模的語料的集合。 ???
語料庫劃分:① 時間劃分② 加工深度劃分:標注語料庫和非標注語料庫③ 結構劃分⑤ 語種劃分⑥ 動態更新程度劃分:參考語料庫和監控語料庫 ???
語料庫構建原則:①?? 代表性②?? 結構性③?? 平衡性④?? 規模性⑤?? 元數據:元數據對 ??????
語料標注的優缺點
①?? 優點: 研究方便。可重用、功能多樣性、分析清晰。
②?? 缺點: 語料不客觀(手工標注準確率高而一致性差,自動或者半自動標注一致性高而準確率差)、標注不一致、準確率低
?7.2 條件隨機場解決標注問題???????
條件隨機場用于序列標注,中文分詞、中文人名識別和歧義消解等自然語言處理中,表現出很好的效果。原理是:對給定的觀察序列和標注序列,建立條件概率模型。條件隨機場可用于不同預測問題,其學習方法通常是極大似然估計。 ?????
我愛中國,進行序列標注案例講解條件隨機場。(規則模型和統計模型問題) ??
條件隨機場模型也需要解決三個基本問題:特征的選擇(表示第i個觀察值為“愛”時,相對yi,yi-1的標記分別是B,I),參數訓練和解碼。 ?? ?
7.3 隱馬爾可夫模型??????
應用:詞類標注、語音識別、局部句法剖析、語塊分析、命名實體識別、信息抽取等。應用于自然科學、工程技術、生物科技、公用事業、信道編碼等多個領域。 ??
馬爾可夫鏈:在隨機過程中,每個語言符號的出現概率不相互獨立,每個隨機試驗的當前狀態依賴于此前狀態,這種鏈就是馬爾可夫鏈。 ??
多元馬爾科夫鏈:考慮前一個語言符號對后一個語言符號出現概率的影響,這樣得出的語言成分的鏈叫做一重馬爾可夫鏈,也是二元語法。二重馬爾可夫鏈,也是三元語法,三重馬爾可夫鏈,也是四元語法 ?????
隱馬爾可夫模型思想的三個問題?
問題1(似然度問題):給一個HMM λ=(A,B) 和一個觀察序列O,確定觀察序列的似然度問題 P(O|λ) 。(向前算法解決) ?????????
問題2(解碼問題):給定一個觀察序列O和一個HMM λ=(A,B),找出最好的隱藏狀態序列Q。(維特比算法解決) ?????????
問題3(學習問題):給定一個觀察序列O和一個HMM中的狀態集合,自動學習HMM的參數A和B。(向前向后算法解決)
7.4 Viterbi算法解碼??????
思路:
1 計算時間步1的維特比概率
2 計算時間步2的維特比概率,在(1) 基礎計算
3 計算時間步3的維特比概率,在(2) 基礎計算
4 維特比反向追蹤路徑 ????? ??
維特比算法與向前算法的區別: ????
(1)維特比算法要在前面路徑的概率中選擇最大值,而向前算法則計算其總和,除此之外,維特比算法和向前算法一樣。 ????
(2)維特比算法有反向指針,尋找隱藏狀態路徑,而向前算法沒有反向指針。 ?????
HMM和維特比算法解決隨機詞類標注問題,利用Viterbi算法的中文句法標注 ?
7.5 序列標注方法?????? 參照上面詞性標注 ? ?
7.6 模型評價方法??????
模型:方法=模型+策略+算法 ??
模型問題涉及:訓練誤差、測試誤差、過擬合等問題。通常將學習方法對未知數據的預測能力稱為泛化能力。
模型評價參數: ?????
準確率P=識別正確的數量/全部識別出的數量 ??
錯誤率 =識別錯誤的數量/全部識別出的數量 ??
精度=識別正確正的數量/識別正確的數量 ?????
召回率R=識別正確的數量/全部正確的總量(識別出+識別不出的) ??
F度量=2PR/(P+R) ?? ??
數據正負均衡適合準確率 ?? 數據不均適合召回率,精度,F度量 ??
幾種模型評估的方法:
K-折交叉驗證、隨機二次抽樣評估等 ?? ROC曲線評價兩個模型好壞 ?
8 基于文本處理技術的研究生英語等級考試詞匯表構建系統 ?
完成對2002--2010年17套GET真題的核心單詞抽取。其中包括數據清洗,停用詞處理,分詞,詞頻統計,排序等常用方法。真題算是結構化數據,有一定規則,比較容易處理。此過程其實就是數據清洗過程)最后把所有單詞集中匯總,再去除如:a/an/of/on/frist等停用詞(中文文本處理也需要對停用詞處理,諸如:的,地,是等)。處理好的單詞進行去重和詞頻統計,最后再利用網絡工具對英語翻譯。然后根據詞頻排序。 ? ?
8.1 Apache Tika???????
Apache Tika內容抽取工具,其強大之處在于可以處理各種文件,另外節約您更多的時間用來做重要的事情。 ??
Tika是一個內容分析工具,自帶全面的parser工具類,能解析基本所有常見格式的文件 ??
Tika的功能:?文檔類型檢測?? ?內容提取? ?元數據提取? ?語言檢測
8.2 文本詞頻統計?詞頻排序方法???????
算法思想:
1 歷年(2002—2010年)GET考試真題,文檔格式不一。網上收集 ???????????????
2 對所有格式不一的文檔進行統計處理成txt文檔,格式化(去除漢字/標點/空格等非英文單詞)和去除停用詞(去除891個停用詞)處理。 ???????????????
3 對清洗后的單詞進行去重和詞頻統計,通過Map統計詞頻,實體存儲:單詞-詞頻。(數組也可以,只是面對特別大的數據,數組存在越界問題)。排序:根據詞頻或者字母
4 提取核心詞匯,大于5的和小于25次的數據,可以自己制定閾值。遍歷list<實體>列表時候,通過獲取實體的詞頻屬性控制選取詞匯表尺寸。 ???????????????
5 最后一步,中英文翻譯。 ????
9 樸素貝葉斯模型的文本分類器的設計與實現 ?
9.1 樸素貝葉斯公式 ?
0:喜悅? 1:憤怒 2:厭惡 3:低落 ?
9.2 樸素貝葉斯原理??
-->訓練文本預處理,構造分類器。(即對貝葉斯公式實現文本分類參數值的求解,暫時不理解沒關系,下文詳解) ?
-->構造預測分類函數 ?
-->對測試數據預處理 ?
-->使用分類器分類 ???
對于一個新的訓練文檔d,究竟屬于如上四個類別的哪個類別?我們可以根據貝葉斯公式,只是此刻變化成具體的對象。 ???
> P( Category | Document):測試文檔屬于某類的概率 ???
> P( Category)):從文檔空間中隨機抽取一個文檔d,它屬于類別c的概率。(某類文檔數目/總文檔數目) ???
> (P ( Document | Category ):文檔d對于給定類c的概率(某類下文檔中單詞數/某類中總的單詞數) ???
> P(Document):從文檔空間中隨機抽取一個文檔d的概率(對于每個類別都一樣,可以忽略不計算。此時為求最大似然概率) ???
>? C(d)=argmax {P(C_i)*P(d|c_i)}:求出近似的貝葉斯每個類別的概率,比較獲取最大的概率,此時文檔歸為最大概率的一類,分類成功。 ?
綜述
1.? 事先收集處理數據集(涉及網絡爬蟲和中文切詞,特征選取) ?????
2.? 預處理:(去掉停用詞,移除頻數過小的詞匯【根據具體情況】) ?????
3.? 實驗過程:
數據集分兩部分(3:7):30%作為測試集,70%作為訓練集?????????
增加置信度:10-折交叉驗證(整個數據集分為10等份,9份合并為訓練集,余下1份作為測試集。一共運行10遍,取平均值作為分類結果)優缺點對比分析 ?????
4. 評價標準: ?????????
宏評價&微評價??????????
平滑因子
9.3 生產模型與判別模型區別???????
1)生產式模型:直接對聯合分布進行建模,如:隱馬爾科夫模型、馬爾科夫隨機場等 ??????
2)判別式模型:對條件分布進行建模,如:條件隨機場、支持向量機、邏輯回歸等。 ?????????
生成模型優點:1)由聯合分布2)收斂速度比較快。3)能夠應付隱變量。 缺點:為了估算準確,樣本量和計算量大,樣本數目較多時候不建議使用。 ?????????
判別模型優點:1)計算和樣本數量少。2)準確率高。缺點:收斂慢,不能針對隱變量。 ?
9.4 ROC曲線??????
ROC曲線又叫接受者操作特征曲線,比較學習器模型好壞可視化工具,橫坐標參數假正例率,縱坐標參數是真正例率。曲線越靠近對角線(隨機猜測線)模型越不好。 ?????
好的模型,真正比例比較多,曲線應是陡峭的從0開始上升,后來遇到真正比例越來越少,假正比例元組越來越多,曲線平緩變的更加水平。完全正確的模型面積為1
10 統計學知識
信息圖形化(餅圖,線形圖等)
集中趨勢度量(平均值 中位數 眾數 方差等)
概率
排列組合
分布(幾何二項泊松正態卡方)
統計抽樣
樣本估計
假設檢驗
回歸
11 stanfordNLP
句子理解、自動問答系統、機器翻譯、句法分析、標注、情感分析、文本和視覺場景和模型, 以及自然語言處理數字人文社會科學中的應用和計算。
12?APache OpenNLP
Apache的OpenNLP庫是自然語言文本的處理基于機器學習的工具包。它支持最常見的NLP任務,如斷詞,句子切分,部分詞性標注,命名實體提取,分塊,解析和指代消解。
句子探測器:句子檢測器是用于檢測句子邊界
標記生成器:該OpenNLP斷詞段輸入字符序列為標記。常是這是由空格分隔的單詞,但也有例外。
名稱搜索:名稱查找器可檢測文本命名實體和數字。
POS標注器:該OpenNLP POS標注器使用的概率模型來預測正確的POS標記出了標簽組。
細節化:文本分塊由除以單詞句法相關部分,如名詞基,動詞基的文字,但沒有指定其內部結構,也沒有其在主句作用。
分析器:嘗試解析器最簡單的方法是在命令行工具。該工具僅用于演示和測試。請從我們網站上的英文分塊
13 Lucene
Lucene是一個基于Java的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是為你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加達) 家族中的一個 開源項目。也是目前最為流行的基于Java開源全文檢索工具包。
目前已經有很多應用程序的搜索功能是基于 Lucene ,比如Eclipse 幫助系統的搜索功能。Lucene能夠為文本類型的數 據建立索引,所以你只要把你要索引的數據格式轉化的文本格式,Lucene 就能對你的文檔進行索引和搜索。
14 Apache Solr
Solr它是一種開放源碼的、基于 Lucene Java 的搜索服務器。Solr 提供了層面搜索(就是統計)、命中醒目顯示并且支持多種輸出格式。它易于安裝和配置, 而且附帶了一個基于HTTP 的管理界面。可以使用 Solr 的表現優異的基本搜索功能,也可以對它進行擴展從而滿足企業的需要。
Solr的特性包括:
?高級的全文搜索功能
?專為高通量的網絡流量進行的優化
?基于開放接口(XML和HTTP)的標準
?綜合的HTML管理界面
?可伸縮性-能夠有效地復制到另外一個Solr搜索服務器
?使用XML配置達到靈活性和適配性
?可擴展的插件體系 solr中文分詞
15 機器學習降維
主要特征選取、隨機森林、主成分分析、線性降維
16 領域本體構建方法 ??
1 確定領域本體的專業領域和范疇
2 考慮復用現有的本體
3 列出本體涉及領域中的重要術語
4 定義分類概念和概念分類層次
5 定義概念之間的關系
17 構建領域本體的知識工程方法:
主要特點:本體更強調共享、重用,可以為不同系統提供一種統一的語言,因此本體構建的工程性更為明顯。
方法:目前為止,本體工程中比較有名的幾種方法包括TOVE 法、Methontology方法、骨架法、IDEF-5法和七步法等。(大多是手工構建領域本體)
現狀: 由于本體工程到目前為止仍處于相對不成熟的階段,領域本體的建設還處于探索期,因此構建過程中還存在著很多問題。
方法成熟度: 以上常用方法的依次為:七步法、Methontology方法、IDEF-5法、TOVE法、骨架法。
總結
以上是生活随笔為你收集整理的十分钟学习自然语言处理概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今日头条成功的核心技术秘诀是什么?深度解
- 下一篇: Ch2r_ood_understandi