為什麼計算機難以理解人類的自然語言呢?主要是下面6個特性:
詞彙量在自然語言中含有很豐富的詞彙,而程式語言中能使用的關鍵字數量是有限的
結構化自然語言是非結構化的,而程式語言是結構化的,例如類和成員。自然語言是線性字串,要分析它,需要用到分詞、命名實體識別、指代消解和關係抽取等。
歧義性我們說話含有大量的歧義,要根據上下文語境來判斷。中文就更加多歧義了。
容錯性即使是多次校對的文稿,也可能會有錯誤,所以網際網路的文字就更加的多錯誤,但是即使它錯的離譜,人類還是能理解它表達的意思。
5.易變性
我們可以自由創造和傳播新用法,學習外來語來創造很多新的詞彙,每天都在發生變化,而程式語言的變化是緩慢的,根據維護的組織來進行修改。
簡略性我們為了追求快捷,往往說話帶有很多簡寫,這些簡寫省略了大量背景知識和常識,例如「工行」,「老地方見」。
基於規則的專家系統(1950-1990)
專家手工制定一些確定性的流程,例如我們常用的正規表示式,是固定的規則。弱點是難以拓展,規則會出現衝突,引起矛盾,當規則變多了,要考慮的相容問題更多,系統維護成本高。
基於統計學習方法(1990-2010)
利用統計學習方法在語料庫上進行統計,語料庫就是人工標註的結構化文字,其實就是讓機器學習語料庫中的規律,這種就是比較常用的機器學習方法處理nlp任務。
深度學習(2010-至今)
現在比較火的bert,cnn,lstm就是深度學習處理nlp任務,不需要專家制定特徵模板,能夠自動學習原始資料的抽象表示。
中文分詞語料庫:人工正確切分後的句子集合,涉及到語料規範的制定,規範很難執行
詞性標註語料庫:切分並為每個詞指定乙個詞性的語料,詞性標註集
命名實體識別語料庫:關注實體名詞和實體類別,命名實體型別取決於製作者關心什麼
句法分析語料庫:帶有詞性標籤和單詞間的聯絡。已經做過分詞、詞性標註和句法標註
如何建設語料庫?
本系列內容按照何晗大佬的書學習的,安裝hanlp時出現問題的同學可參考下面這個鏈結,我覺得很有幫助!
安裝pyhanlp
系統學習NLP(三) NLP入門綜述
從這個月開始,進入nlp方向了,因此,系統了看了一遍 自然語言處理綜論 對nlp做了點系統性的了解,後面抽時間乙個乙個業務或者方向進行實現學習。這裡主要是入門的認識,因此,大多數不涉及每個業務應用的最佳實現,比如基本沒有深度學習層面的 因為那本書只總結了2009年之前的 不過有了這個基礎,每個業務應...
NLP學習筆記1 2
開始學習nlp的第乙個模組jieba import nltk setence hello,world token nltk.word tokenize setence list token hello world import jieba 模糊模式 seg list list jieba.cut 2...
NLP學習筆記 一
可瀏覽 從研究現狀來看,自然語言理解和處理的理論體系尚未真正建立,技術方法仍然十分初步,所以對於什麼是nlp沒有乙個標準的定義,此下幾點為本人收集的關於nlp的概念界定 wiki中的定義 自然語言處理 英語 natural language processing,縮寫作 nlp 是人工智慧和語言學領...