当前位置:   article > 正文

NLP终极入门教程_nlp教程

nlp教程

原文:Ultimate Guide to Understand and Implement Natural Language Processing

大多数自然语言文本形式的数据是高度非结构化的,其中包括——社交媒体上的推文/帖子、用户与用户之间的聊天对话、新闻、博客和文章、产品或服务评论以及医疗保健部门的患者记录。最近的一些包括聊天机器人和其他语音驱动的机器人。

一、简介

  • Tokenization – 将文本转化为tokens的过程
  • Tokens –在文本里的展示的单词或实体
  • Text object – 一个句子、短语、单词或文章

二、数据预处理

文本分析入门(一)——青木长风

(降噪→词汇规范化→对象标准化)

  • Noise Removal
  • Lexicon Normalization
  • Object Standardization

 2.1 降噪

降噪就是停用词去除,语料清洗

所谓停用词:对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词

but在情感分析中,语气词、感叹号是应该保留的,因为他们对表示语气程度、感情色彩有一定的贡献和意义

比较常用的方法是通过先设置好噪音词典,然后遍历一下文本,去除那些被词典标注为噪音的tokens。

noise_list = ["is", "a", "this", "..."] 

 另一种方法是当处理特殊形式的噪声时使用正则表达式

  1. _remove_regex("remove this #hashtag from analytics vidhya", regex_pattern)
  2. >>> "remove this from analytics vidhya"

 2.2 词汇规范化

另一种噪声的形式是单个单词的多种表达形式(拉丁语系),即单词变形但语义不变。

因此词汇规范化就是要将一个单词的所有不同形式转换为它的规范形式

For example – “play”, “player”, “played”, “plays” and “playing” are the different variations of the word – “play

对于词汇规范化,分为

  1. 大小写变换,可以将大写字母变小写字母,达到一种规范化。
  2. 词干提取(Stemming),通俗地讲就是去后缀,找词根。
  3. 词元化(Lemmatization):词元化(词性还原),是一个组织好的,一步一步获取词根的过程,并使用了词汇表和形态学分析。也就是单词的重要性和单词结构与语法的关系。

综上,词干提取和词形还原都可以降维,但是他们也增加了文本的迷惑性,因为这种提取与还原的正确率不能保证。而且即使词干一样,基于该呈现出来的不同形式的单词的意思也会差很多,所以迷惑性也就增加了,这样子对自然语言文本分析其实变相的增加了难度。因此要酌情使用。

2.3 对象标准化

文本数据通常包含一些不存在于任何标准词汇字典中的单词,比如网络用语、俚语。

这部分无法被搜索引擎和模型所识别。

对于这些我们可以通过上面说的噪音去除,用正则表达式或人工数据词典来修正它

三、文本数据的特征工程

3.1 句法分析/Syntactic Parsing

Dependency Trees 

Bills on ports and immigration were submitted by Senator Brownback, Republican of Kansas.”

'submitted'-root word

This type of tree, when parsed recursively in top-down manner gives grammar relation triplets as output which can be used as features for many nlp problems like entity wise sentiment analysis, actor & entity identification, and text classification.

Part of speech tagging/词性标注

Part of Speech tagging is used for many important purposes in NLP:

A.Word sense disambiguation

B.Improving word-based features

C. Normalization and Lemmatization

D.Efficient stopword removal

3.2 实体抽取/Entity Extraction

(Entities as features)

实体指句子中最重要的部分,名词或动词

Topic Modelling & Named Entity Recognition are the two key entity detection methods in NLP.

A. Named Entity Recognition (NER)

 

Sentence – Sergey Brin, the manager of Google Inc. is walking in the streets of New York.

Named Entities –  ( “person” : “Sergey Brin” ), (“org” : “Google Inc.”), (“location” : “New York”)

 A typical NER model consists of three blocks:Noun phrase identification、Phrase classification、Entity disambiguation

B. Topic Modeling/主题模型

从文档集合中自动地找出一系列的主题(topics),每个文档集内可能有多个主题;

主题:由众多词汇的概率分布(distribution)组成;

常用模型:Latent Dirichlet Allocation (LDA), pLSA, pLSI等,是一种无监督的学习过程;

C.  N-Grams

N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。 

  1. >>> generate_ngrams('this is a sample text', 2)
  2. # [['this', 'is'], ['is', 'a'], ['a', 'sample'], , ['sample', 'text']]
  1. uni-gram 一元分词,把句子分成一个一个的汉字
  2. bi-gram 二元分词,把句子从头到尾每两个字组成一个词语
  3. tri-gram 三元分词,把句子从头到尾每三个字组成一个词语.

 

 3.3 统计特征/Statistical Features

还可以使用本节中描述的几种技术将文本数据直接量化为数字:

A.  TF – IDF

TF-IDF算法介绍及实现

  TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。

       TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

       TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

词频(TF)表示词条(关键字)在文本中出现的频率。

   这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。

 

 逆向文件频率 (IDF) :某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。

如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。

IDF的作用:降低具有普遍性词语的权重(比如一些语气词),提升具有个性化的词的频率。

TF-IDF实际上是:TF * IDF

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

       注:  TF-IDF算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。

总结一下就是:字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

B. Count / Density / Readability Features

基于计数或密度的特征也可用于模型和分析。这些特征可能看起来微不足道,但在学习模型中显示出巨大的影响。其中一些功能是:字数、句子数、标点符号和行业特定字数。其他类型的衡量标准包括可读性衡量标准,例如音节计数、烟雾指数和易读性。

3.4 词嵌入/Word Embedding 

通俗的翻译可以认为是单词嵌入,就是把X所属空间的单词映射为到Y空间的多维向量,那么该多维向量相当于嵌入到Y所属空间中,一个萝卜一个坑。

word embedding,就是找到一个映射或者函数,生成在一个新的空间上的表达,该表达就是word representation。

常用模型:word2vec、GloVe和fastText

word2vec 中的数学原理详解(一)目录和前言

word2vec有2种模型结构:

一种是基于context预测word,称为CBOW(Continuous Bag of Words)

一种是给定word预测周围的words,称为Skip-gram

四、NLP任务

文本分类 、文本匹配、Coreference Resolution (共指消解)

文本摘要、机器翻译、自然语言生成和理解、光学字符识别、Document to Information

 

五、常用Python库

  • Natural Language Toolkit (NLTK): The complete toolkit for all NLP techniques.
  • Pattern – A web mining module for the with tools for NLP and machine learning.
  • TextBlob – Easy to use nl p tools API, built on top of NLTK and Pattern.
  • spaCy – Industrial strength N LP with Python and Cython.
  • Gensim – Topic Modelling for Humans
  • Stanford Core NLP – NLP services and packages by Stanford NLP Group.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/301375
推荐阅读
相关标签
  

闽ICP备14008679号