AI學習筆記(十五)自然語言處理基本概念

2021-10-12 03:00:10 字數 2660 閱讀 8009

目錄

ai學習筆記之自然語言處理

自然語言處理(natural language processing)

自然語言簡介

自然語言處理的難點

自然語言處理的現狀

基於深度學習的自然語言處理

nlp的處理過程

獲取預料

語料預處理

特徵工程

模型訓練

nlp研究任務

單詞的邊界界定

在口語中,詞與詞之間通常是連貫的,而界定字詞邊界通常使用的辦法是取用能讓給定的上下文最為通順且在文法上無誤的一種最佳組合。在書寫上,漢語也沒有詞與詞之間的邊界。

語義的消歧

許多字詞不單只有乙個意思,因而我們必須選出使句意最為通順的解釋。

句法的模糊性

自然語言的文法通常是模稜兩可的,針對乙個句子通常可能會剖析(parse)出多棵剖析樹(parse tree),而我們必須要依賴語義及前後文的資訊才能在其中選擇一顆最為適合的剖析樹。

有瑕疵或不規範的輸入

例如語言處理時遇到外國口音或者地方口音,或者在文字的處理拼寫,語法或者光學字元識別(ocr)的錯誤。

語言行為與計畫

句子常常並不是字面上的意思,例如,「你們把書遞過來嗎」,乙個好的回答應當是把書遞過去;在大多數上下文環境中,「能」將是最糟糕的回答,雖然回答「不」或者「太遠了,我拿不到」也是可以接受的。再者,如果一門課程上一年沒有開設,對於提問「這門課程去年有多少學生沒通過?」回答「去年沒開這門課」要比回答「沒人沒通過」好。

研究的基本問題

語音學、形態學、語法學、語義學、語用學

研究的主要內容

機器翻譯、資訊檢索、自動文摘、文件分類、問答系統、文字識別、語言識別、語音生成

面臨的困難

語義歧義、情景多樣、存在未知的語言現象

預料,即語言材料。語料是語言學研究的內容。其是構成語料庫的基本單元。所以,人們簡單地用文字作為替代,並把文字中的上下文關係作為顯示世界中語言的上下文關係的替代品。我們把乙個文字集合稱為語料庫(corpus),當有幾個這樣的文字集合的時候,我們稱之為語料庫集合(corpora)。

1、已有語料,很多業務部門、公司組織隨著業務發展都會積累有大量的紙質或者電子文字資料。那麼,對於這些資料,在允許的條件下我們稍加整合,把紙質的文字全部電子化就可以作為我們的語料庫。

主要通過資料清洗、分詞、詞性標註、去停用詞四個大的方面來完成預料的預處理工作。

資料清洗

資料清洗的主要目的在於找到我們感興趣的東西,把不感興趣的、視為噪音的內容清洗刪除,包括對於原始文字提取標題、摘要、正文等資訊,對於爬取的網頁內容,去除廣告、標籤、html、js等**和注釋等。常見的資料清洗方式有:人工去重、對齊、刪除和標註等,或按照規則提取內容、正規表示式匹配、根據詞性和命名實體提取、編寫指令碼或者**批量處理等。

分詞

中文 語料 資料 為一批 短文本 或者 長文字,比如:句子,文章摘要,段落或者整篇文章組成的乙個集合。一般句子、段落之間的字、詞語是連續的,有一定含義。而進行文字挖掘分析時,我們希望文字處理最小單位粒度是詞或者詞語,所以這個時候就需要分詞來講文字全部進行分詞。

當前中文分詞演算法的主要難點有歧義識別,不如:「羽毛球拍買完了」,這個可以且分為「羽毛 球拍 買 完 了」,也可以切分為「羽毛球 拍賣 完 了」,如果不依賴上下文其他的句子,很難知道如何去解釋。

詞性標註

詞性標註,就是給每個詞或者詞語打詞類標籤,或形容詞、動詞、名詞等。這樣做可以讓文字在後面的處理中融入更多有用的語言資訊。詞性標註是乙個經典的序列標註問題,不過對於有些中文自然語言處理來說,詞性標註不是必需的。比如,常見的文字分類就不用關心詞性問題,但是類似情感分析,知識推理卻是需要的。常見的中文詞性整理如下圖:

去停用詞

停用詞一般指對文字特徵沒有任何貢獻作用的字詞,比如標點符號、語氣、人稱等一些詞。所以在一般性的的文字處理中,分詞之後,接卸來一步就是去停用詞。但是對於中文來說,去停用詞操作不是一層不變的,停用詞詞典是根據具體場景來決定的,比如在情感分析中,語氣詞、感嘆號是應該保留的,因為他們對標識語氣程度、剛請色彩有一定的貢獻和意義。

做完預料預處理之後,接下來需要考慮如何把分詞之後的字和詞表示成計算機能夠計算的型別。顯然,如果要計算,我們至少需要把中文分詞的字串轉換成數字,確切地說應該是向量化,有兩種暢通的表示模型分詞是詞袋模型和詞向量。

在特徵向量選擇好之後,接下來要做的事情當然就是訓練模型,對於不同的應用需求,我們使用不同的模型,傳統的有監督和無監督等機器學習模型。如k-means等模型;深度學習模型比如cnn、rnn、lstm等。

nlp可以被應用於很多領域,例如:機器翻譯、情感分析、智慧型問答、文摘生成(歸納總結)、文字分類、**分析、知識圖譜(知識點相互連線而成的語義網路)等。

AI與Python 自然語言處理

自然語言處理 nlp 是指使用諸如英語之類的自然語言與智慧型系統通訊的ai方法。當您想要像機械人這樣的智慧型系統按照您的指示執行時,當您想要聽取來自基於對話的臨床專家系統的決定等時,需要處理自然語言。nlp領域涉及使計算機使用人類使用的自然語言來完成有用的任務。nlp系統的輸入和輸出可以是 在本節中...

TensorFlow學習筆記 自然語言處理

正在學習tensorflow實戰8.4.1,感謝樓主!我是被tensorflow api 坑慘了,我知道 tf.nn.seq2seq.sequence loss by example 沒有了,但是因為還有乙個 tf.contrib.seq2seq.sequence loss 輸入引數類似但要求維度不...

《python自然語言處理》筆記

工欲善其事,必先利其器 資源準備 python matplotlib包安裝見我的部落格 通過大量的例子和聯絡,python自然語言處理 將會幫助你 前言 為什麼使用python?操作file.txt檔案,輸出所有字尾是 ing 的詞。coding utf 8 for line in open r d...