1. 程式人生 > >自然語言處理NLP之終極指南(Pytho…

自然語言處理NLP之終極指南(Pytho…

理解和使用自然語言處理之終極指南(Python編碼)(經典收藏12k附資料簡化籌員217Fri新聞

秦隴紀10

12k字理解和使用自然語言處理之終極指南(Python編碼)7k字;附資料簡化DataSimp籌收技術簡歷414字、2月17日Fri新聞四則4k字歡迎加入共建“資料簡化DataSimp”學會及社群關注、收藏、轉發新媒資料簡化DataSimp、科學Sciences”微訊號、頭條號轉載請出處:

目錄

理解和使用自然語言處理之終極指南(Python編碼)(7.4k字)

A. 資料簡化DataSimp籌備收簡歷(414)

B. 2017年2月1

7日周(農曆丁酉雞年正月廿一)新聞四則彙編(4.8k)

理解和使用自然語言處理之終極指南(Python編碼)

秦隴紀10來源:仕瓦姆·邦薩爾(,2017年1月12日,威提亞分析學

自然語言處理NLP之終極指南(Python編碼)經典收藏版12k字,附資料簡化籌員2月17日Fri新聞,週末科普版

目錄表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 重要NLP

據業內人士估計,只有21%可用資料以結構化形式存在。資料產生,正如我們所說的,來自於我們的推特、WhatsApp和其他各種交流活動中傳送的資訊。大多數這些資料存在於文字的形式,是高度非結構化的性質。一些臭名昭著的例子包括——在社交媒體上的推特/帖子、使用者到使用者的聊天對話、新聞、部落格和文章、產品或服務審查和醫療部門裡的病人記錄。最近的一些例子包括聊天機器人和其他聲音驅動的機器人程式。

儘管具有高維資料,但其呈現的資訊是不可以直接訪問的,除非它被手動處理(讀取和理解)或由自動化系統分析。為了從文字資料中產生明顯的和可操作的洞察/見解,熟悉自然語言處理(NLP)的技術和原則顯得非常重要。那麼,如果你打算今年建立聊天機器人,或者你想使用非結構化文字的力量,本指南是正確的起點。本指南挖掘自然語言處理的概念、技術與實現。文章的目的是教會自然語言處理的概念,並將其應用於實際資料集。

1. Introduction to Natural Language Processing 自然語言處理介紹

NLP是資料科學的一個分支,包括智慧和高效地從文字資料中分析、理解和匯出資訊的系統流程。通過NLP及其組成部分,企業可以組織海量文字資料塊、執行許多自動化任務、並解決廣泛問題,如自動摘要、機器翻譯、命名實體識別、關係抽取、情感分析、語音識別、主題分割等。

在進一步研究之前,我想解釋一下文章中使用的一些術語:

·標記化——轉換文字到標記體的過程;

·標記體——文字中存在的單詞或實體;

·文字物件——一個句子或一個短語或一個詞或一篇文章

安裝NLTK及其資料的步驟(使用Python語言及環境):

安裝Pip:在終端中執行:

    sudo easy_install pip

安裝NLTK:在終端中執行:

    sudo pip install -U nltk

下載NLTK資料:執行Python shell(在終端)和寫下面的程式碼:

``` import nltk nltk.download()``` 

按照螢幕上的指令下載所需的包或集合。其他庫可以直接使用Pip安裝。

2. Text Preprocessing文字預處理

因此,文字是所有可用資料的最具非結構化的形式,存在於其中的各種型別的噪聲,並且沒有預處理的資料是不容易分析的。文字清理和標準化的全過程,是一個去除其噪聲和稱為文字預處理的分析準備工作。

它主要由三個步驟組成:

·Noise Removal 噪聲去除

·Lexicon Normalization 詞彙規範化

·Object Standardization 物件標準化

下圖顯示了文字預處理(清潔)流水線的體系結構。

 自然語言處理NLP之終極指南(Python編碼)經典收藏版12k字,附資料簡化籌員2月17日Fri新聞,週末科普版

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  from a