NLP基礎

作一箇中文文本分類任務,首先要作的是文本的預處理,對文本進行分詞和去停用詞操做,來把字符串分割成詞與詞組合而成的字符串集合並去掉其中的一些非關鍵詞彙(像是:的、地、得等)。再就是對預處理事後的文本進行特徵提取。最後將提取到的特徵送進分類器進行訓練。html

1、什麼是天然語言處理

NLP(Natural Language Processing,天然語言處理)當中所謂的「天然」是爲了與人造的語言(好比 C 語言, JAVA 等)區分開來,指天然造成的語言,即平時人們平常使用的交流的語言。「語言」則是人類區別其餘動物的本質特性。在全部生物中,只有人類才具備語言能力。人類的多種智能都與語言有着密切的關係。人類的邏輯思惟以語言爲形式,人類的絕大部分知識也是以語言文字的形式記載和流傳下來的。「處理」則指的是對天然語言的各類處理方法與運用。python

NLP 不只是計算語言學的應用領域,仍是計算機科學和人工智能(AI)領域的一個重要研究方向。NLP 主要研究人與計算機之間用天然語言進行有效通訊的各類理論和方法。git

總的來講,天然語言處理能夠歸納爲: 就是利用計算機的強大的運算能力,採用統計手段來對語言進行處理,而後得到須要的信息,以達到最終想要的目的,而使用各類方法的一門技術。人工智能

NLP 通過多年的發展與進步,從天然語言的角度出發,基本能夠劃分爲兩個部分:天然語言的理解和天然語言的生成。翻譯

1.語言理解涉及語言、語境和各類語言形式的學科。但總的來講,天然語言理解又能夠分爲三個方面:3d

  1. 詞義分析
  2. 句法分析
  3. 語義分析

2.天然語言的生成則是從結構化的數據(能夠通俗理解爲天然語言理解分析後的數據)以讀取的方式自動生成文本。主要有三個階段:code

  1. 文本規劃:完成結構化數據中的基礎內容規劃。
  2. 語句規劃:從結構化數據中組合語句來表達信息流。
  3. 實現:產生語法通順的語句來表達文本。

3.NLP的研究問題(主要)有下面幾種:htm

  • 信息檢索:對大規模文檔進行索引。
  • 語音識別:識別包含口語在內的天然語言的聲學信號轉換成符合預期的信號。
  • 機器翻譯:將一種語言翻譯成另一種語言。
  • 智能問答:自動回答問題。
  • 對話系統:經過多回合對話,跟用戶進行聊天、回答、完成某項任務。
  • 文本分類:將文本自動歸類。
  • 情感分析:判斷某段文本的情感傾向
  • 文本生成:根據需求自動生成文本
  • 自動文摘:概括,總結文本的摘要。

4.一些 NLP 的一些基礎專業術語。blog

  • 分詞:詞是 NLP 中可以獨立活動的有意義的語言成分。即便某個中文單字也有活動的意義,但其實這些單字也是詞,屬於單字成詞。索引

  • 詞性標註:給每一個詞語的詞性進行標註,好比 跑/動詞、美麗的/形容詞等等。

  • 命名實體識別:從文本中識別出具備特定類別的實體。像是識別文本中的日期,地名等等。

  • 詞義消歧:多義詞判斷最合理的詞義。

  • 句法分析:解析句子中各個成分的依賴關係。

  • 指代消解:消除和解釋代詞「這個,他,你」等的指代問題。

5.字符做爲文本類數據的基本單元,其在天然語言處理中的地位能夠說是很是的重要。並且,大部分的天然語言處理任務都是從字符上着手,下面是一些字符串操做

  • 統計子串出現的次數
  • 去除字符串
  • 拼接字符串
  • 比較(直接比較'a'>'b')
  • 字符串大小寫轉換
  • 翻轉字符串
  • 查找字符串
  • 判斷子串是否存在
  • 字符串代替
  • 檢查字符串

2、python實現對字符串的處理

.count() 方法返回特定的子串在字符串中出現的次數

.strip()方法能夠去除字符串首尾的指定符號。無指定時,默認去除空格符 ' ' 和換行符 '\n'

.lstrip()只去除開頭的

.rstrip()只去除結尾的

須要將字符串用特定的符號拼接起來的字符的時候,能夠用 .join() 方法來進行拼接。

 

.upper() 將文本轉化爲大寫, .lower()將文本轉化爲小寫。

.find查找到某段字符串當中某個子串的位置信息,未找到的則會返回 -1 

字符串截取[0:4] 表示從0開始截4個

.split('k')拆分

翻轉字符串

判斷某字符是否在某字符串中用in

.replace(old,new)

.startswish()判斷字符串是否以某段字符開頭,.endswith() 來肯定字符串是否以某段字符串結尾。

.isdigit()檢查字符串是否由純數字構成

 python中的正則

相關文章
相關標籤/搜索