赞
踩
原文:Ultimate Guide to Understand and Implement Natural Language Processing
大多数自然语言文本形式的数据是高度非结构化的,其中包括——社交媒体上的推文/帖子、用户与用户之间的聊天对话、新闻、博客和文章、产品或服务评论以及医疗保健部门的患者记录。最近的一些包括聊天机器人和其他语音驱动的机器人。
(降噪→词汇规范化→对象标准化)
- Noise Removal
- Lexicon Normalization
- Object Standardization
降噪就是停用词去除,语料清洗。
所谓停用词:对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词
but在情感分析中,语气词、感叹号是应该保留的,因为他们对表示语气程度、感情色彩有一定的贡献和意义
比较常用的方法是通过先设置好噪音词典,然后遍历一下文本,去除那些被词典标注为噪音的tokens。
noise_list = ["is", "a", "this", "..."]
另一种方法是当处理特殊形式的噪声时使用正则表达式。
_remove_regex("remove this #hashtag from analytics vidhya", regex_pattern) >>> "remove this from analytics vidhya"
另一种噪声的形式是单个单词的多种表达形式(拉丁语系),即单词变形但语义不变。
因此词汇规范化就是要将一个单词的所有不同形式转换为它的规范形式
For example – “play”, “player”, “played”, “plays” and “playing” are the different variations of the word – “play”
对于词汇规范化,分为
综上,词干提取和词形还原都可以降维,但是他们也增加了文本的迷惑性,因为这种提取与还原的正确率不能保证。而且即使词干一样,基于该呈现出来的不同形式的单词的意思也会差很多,所以迷惑性也就增加了,这样子对自然语言文本分析其实变相的增加了难度。因此要酌情使用。
文本数据通常包含一些不存在于任何标准词汇字典中的单词,比如网络用语、俚语。
这部分无法被搜索引擎和模型所识别。
对于这些我们可以通过上面说的噪音去除,用正则表达式或人工数据词典来修正它。
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
(Entities as features)
实体指句子中最重要的部分,名词或动词
Topic Modelling & Named Entity Recognition are the two key entity detection methods in NLP.
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
从文档集合中自动地找出一系列的主题(topics),每个文档集内可能有多个主题;
主题:由众多词汇的概率分布(distribution)组成;
常用模型:Latent Dirichlet Allocation (LDA), pLSA, pLSI等,是一种无监督的学习过程;
N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。
>>> generate_ngrams('this is a sample text', 2) # [['this', 'is'], ['is', 'a'], ['a', 'sample'], , ['sample', 'text']]
还可以使用本节中描述的几种技术将文本数据直接量化为数字:
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算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。
总结一下就是:字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
基于计数或密度的特征也可用于模型和分析。这些特征可能看起来微不足道,但在学习模型中显示出巨大的影响。其中一些功能是:字数、句子数、标点符号和行业特定字数。其他类型的衡量标准包括可读性衡量标准,例如音节计数、烟雾指数和易读性。
通俗的翻译可以认为是单词嵌入,就是把X所属空间的单词映射为到Y空间的多维向量,那么该多维向量相当于嵌入到Y所属空间中,一个萝卜一个坑。
word embedding,就是找到一个映射或者函数,生成在一个新的空间上的表达,该表达就是word representation。
常用模型:word2vec、GloVe和fastText
word2vec有2种模型结构:
一种是基于context预测word,称为CBOW(Continuous Bag of Words);
一种是给定word预测周围的words,称为Skip-gram。
文本分类 、文本匹配、Coreference Resolution (共指消解)
文本摘要、机器翻译、自然语言生成和理解、光学字符识别、Document to Information
- 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.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。