自然語言處理NLP之終極指南(Pytho…
理解和使用自然語言處理之終極指南(Python編碼)(經典收藏版12k字,附資料簡化籌員2月17日Fri新聞)
秦隴紀10譯編
12k字:理解和使用自然語言處理之終極指南(Python編碼)7k字;附資料簡化DataSimp籌收技術簡歷414字、2月17日Fri新聞四則4k字。歡迎加入共建“資料簡化DataSimp”學會及社群,關注、收藏、轉發新媒體“資料簡化DataSimp、科學Sciences”微訊號、頭條號,轉載請寫出處:
目錄
理解和使用自然語言處理之終極指南(Python編碼)(7.4k字)
附A. 資料簡化DataSimp籌備收簡歷(414字)
附B.
2017年2月1
理解和使用自然語言處理之終極指南(Python編碼)
秦隴紀10譯編;來源:仕瓦姆·邦薩爾(),2017年1月12日,威提亞分析學
目錄表Table of Contents
1.Introduction
to NLP
2.Text Preprocessing 文字預處理
oNoise
Removal
oLexicon Normalization 詞彙規範化
§Lemmatization
§Stemming
oObject Standardization
3.Text to Features (Feature Engineering on text data) 文字到特徵(文字資料之特徵工程)
oSyntactical Parsing 句法解析
§Dependency
Grammar
§Part
of Speech Tagging
oEntity Parsing 實體解析
§Phrase
Detection
§Named
Entity Recognition
§Topic
Modelling
§N-GramsN元連續模型
oStatistical features
§TF
– IDF
§Frequency
/ Density Features
§Readability
Features
oWord
Embeddings
4.Important tasks of NLP 自然語言處理NLP的重要任務
oText
Classification
oText Matching 文字匹配
§Levenshtein
Distance
§Phonetic
Matching
§Flexible
String Matching
oCoreference
Resolution
oOther
Problems
5.Important
NLP libraries
據業內人士估計,只有21%可用資料以結構化形式存在。資料產生,正如我們所說的,來自於我們的推特、WhatsApp和其他各種交流活動中傳送的資訊。大多數這些資料存在於文字的形式,是高度非結構化的性質。一些臭名昭著的例子包括——在社交媒體上的推特/帖子、使用者到使用者的聊天對話、新聞、部落格和文章、產品或服務審查和醫療部門裡的病人記錄。最近的一些例子包括聊天機器人和其他聲音驅動的機器人程式。
儘管具有高維資料,但其呈現的資訊是不可以直接訪問的,除非它被手動處理(讀取和理解)或由自動化系統分析。為了從文字資料中產生明顯的和可操作的洞察/見解,熟悉自然語言處理(NLP)的技術和原則顯得非常重要。那麼,如果你打算今年建立聊天機器人,或者你想使用非結構化文字的力量,本指南是正確的起點。本指南挖掘自然語言處理的概念、技術與實現。文章的目的是教會自然語言處理的概念,並將其應用於實際資料集。
1. Introduction to Natural Language Processing 自然語言處理介紹
NLP是資料科學的一個分支,包括智慧和高效地從文字資料中分析、理解和匯出資訊的系統流程。通過NLP及其組成部分,企業可以組織海量文字資料塊、執行許多自動化任務、並解決廣泛問題,如自動摘要、機器翻譯、命名實體識別、關係抽取、情感分析、語音識別、主題分割等。
在進一步研究之前,我想解釋一下文章中使用的一些術語:
·標記化——轉換文字到標記體的過程;
·標記體——文字中存在的單詞或實體;
·文字物件——一個句子或一個短語或一個詞或一篇文章
安裝NLTK及其資料的步驟(使用Python語言及環境):
安裝Pip:在終端中執行:
安裝NLTK:在終端中執行:
下載NLTK資料:執行Python shell(在終端)和寫下面的程式碼:
``` import nltk nltk.download()```
按照螢幕上的指令下載所需的包或集合。其他庫可以直接使用Pip安裝。
2. Text Preprocessing文字預處理
因此,文字是所有可用資料的最具非結構化的形式,存在於其中的各種型別的噪聲,並且沒有預處理的資料是不容易分析的。文字清理和標準化的全過程,是一個去除其噪聲和稱為文字預處理的分析準備工作。
它主要由三個步驟組成:
·Noise
Removal
·Lexicon
Normalization
·Object
Standardization
下圖顯示了文字預處理(清潔)流水線的體系結構。
2.1 Noise Removal 噪聲去除
任何與資料上下文和最終輸出無關的文字片段,都可以指定為噪聲。例如——語言停用詞(語言常用詞is/am/the/of/in等),URL或連結,社會媒體實體(提示、雜湊標籤),標點符號和特定行業用詞。此步驟處理移除文字中存在的所有型別噪聲實體。
去除噪聲的一般方法是準備一個噪聲實體字典,並通過標記符號(或文字)來迭代文字物件,消除這些噪聲字典呈現出的標記符號。
以下是實現相同目的Python程式碼。
```
# Sample code to remove noisy words from a text
noise_list = ["is", "a", "this", "..."]
def _remove_noise(input_text):
words = input_text.split()
noise_free_words = [word for word in words if word not in noise_list]
noise_free_text = " ".join(noise_free_words)
return noise_free_text
_remove_noise("this is a sample text")
>>> "sample text"
```
另一種方法是在處理特殊噪聲模式時使用正則表示式。之前的一篇文章中,我們詳細解釋了正則表示式。以下的Python程式碼從輸入文字中移除了一個正則表示式模式:
```
# Sample code to remove a regex pattern
import re
def _remove_regex(input_text, regex_pattern):
urls = re.finditer(regex_pattern, input_text)
for i in urls:
input_text = re.sub(i.group().strip(), '', input_text)
return input_text
regex_pattern = "#[A-Za-z0-9\w]*"
_remove_regex("remove this #hashtag from analytics vidhya", regex_pattern)
>>> "remove this