数据挖掘干货总结--NLP基础

Posted 爱上终身学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘干货总结--NLP基础相关的知识,希望对你有一定的参考价值。

本文共计1463字,预计阅读时长八分钟



NLP-基础和中文分词

 

本质

NLP (Natural Language Processing) 自然语言处理是一门研究计算机处理人类语言的技术

 

、NLP用来解决什么问题

语音合成(Speech synthesis)

语音识别(Speech recognition)

中文分词(Chinese word segmentation)☆

文本分类(Text categorization)☆

信息检索(Information retrieval)

问答系统(Question answering)

机器翻译(Machine translation)

自动摘要(Automatic summarization)

。。。

 

、NLP基础

1.相似度度量

1)意义

计算个体间相似程度是机器学习和数据挖掘的基础作为评判个体间差异的大小

2)度量的方法

空间欧氏距离

路径曼哈顿距离

加权标准化欧氏距离

编码差别汉明距离

集合近似度杰卡德类似系数与距离

相关相关系数与相关距离

向量差距夹角余弦最常用的度量方法数据挖掘干货总结(一)--NLP基础

3)相似文本计算的流程

找出两篇文章的关键词

每篇文章各取出若干个关键词合并成一个集合计算每篇文章对于这个集合中词的词频

生成两篇文章各自的词频向量

计算两个向量的余弦相似度值越大就表示越相似

 

2. TF-IDF词频与反文档频率

1)意义

找出文章中重要性最高的词是自动摘要推荐算法等技术的基础

2)概念

仅仅用词频TF,并不能表明一个词的重要性还要综合考虑每个词的权重因此需要计算IDF。TF*IDF可以有效地表示一个词对文章的重要性

数据挖掘干货总结(一)--NLP基础

3)相似文章计算的流程

使用TF-IDF算法找出两篇文章的关键词

每篇文章各取出若干个关键词比如20),合并成一个集合计算每篇文章对于这个集合中的词的词频为了避免文章长度的差异可以使用相对词频);

生成两篇文章各自的词频向量

计算两个向量的余弦相似度值越大就表示越相似

4)生成自动摘要的流程

使用TF-IDF算法找出文章的关键词

过滤掉停用词后排序

将文章分成句子/

计算每个句子/簇的重要性

将重要性最高的句子/簇组合生成摘要


3. LCS最长公共子序列(Longest Common Subsequence)

1)意义

即找出两个序列中最长的公共子序列广泛的应用在图形相似处理媒体流的相似比较计算生物学方面

2)算法——动态规划

如果xm = yn(最后一个字符相同),:XmYn的最长公共子序列LCS(Xm,Yn)的最后一个字符必定为xm(=yn)

如果xm ≠ yn,LCS(Xm,Yn) = max{LCS(Xm−1,Yn), LCS(Xm, Yn−1)}

数据挖掘干货总结(一)--NLP基础

创建一个二维数组C[m,n],C[i,j]记录序列XiYj的最长公共子序列的长度

数据挖掘干货总结(一)--NLP基础

那么对于两个序列:X =<A, B, C, B, D, A, B>Y=<B, D, C, A, B, A>,可以通过如下二维数组求出LCS的长度

数据挖掘干货总结(一)--NLP基础

4. 中文分词☆

1)意义

自然语言处理中与英文不同中文词之间没有空格所以为了实现机器对中文数据的处理多了一项很重要的任务——中文分词


2)方法基于词典匹配的最大长度查找有前向查找和后向查找两种

         +

数据结构Trie单词查找树字典树),明显提高查找效率

数据挖掘干货总结(一)--NLP基础


3)工具Jieba分词(下一篇详细介绍)

 

4)概率语言模型

概率语言模型的任务是在全切分所得的所有结果中求某个切分方案S,使得P(S)最大

#STEP1

从统计思想的角度来看分词问题的输入是一个字串C=c1,c2……cn ,输出是一个词串S=w1,w2……wm ,其中m<=n。对于一个特定的字符串C,会有多个切分方案S对应分词的任务就是在这些S中找出一个切分方案S,使得P(S|C)的值最大

P(S|C)就是由字符串C产生切分S的概率也就是对输入字符串切分出最有可能的词序列基于贝叶斯公式可以得到如下推论

数据挖掘干货总结(一)--NLP基础

转换的精髓

#STEP2

• P(C)只是一个用来归一化的固定值

从词串恢复到汉字串的概率只有唯一的一种方式所以P(C|S)=1。

所以比较P(S1|C)P(S2|C)的大小变成比较P(S1)P(S2) 的大小

数据挖掘干货总结(一)--NLP基础

#STEP3

为了容易实现假设每个词之间的概率是上下文无关的(注释)

最后算 logP(w),log是为了防止向下溢出如果一个数太小,10^-30可能会向下溢出

如果这些对数值事前已经算出来了则结果直接用加法就可以得到而加法比乘法速度更快

数据挖掘干货总结(一)--NLP基础 

***N元模型***

在此需要引入一个N元模型的概念前后两词出现概率并不是相互独立的严格意义上

P(w1,w2)= P(w1)P(w2|w1)

P(w1,w2,w3)= P(w1,w2)P(w3|w1,w2)

那么

P(w1,w2,w3)= P(w1)P(w2|w1)P(w3|w1,w2)

所以

 P(S)=P(w1,w2,...,wn)= P(w1)P(w2|w1)P(w3|w1,w2)…P(wn|w1w2…wn-1)

这个式子叫做概率的链规则

显然这个式子不好求解需要进行简化:

如果简化成一个词的出现仅依赖于它前面出现的一个词那么就称为二元模型(Bigram)

P(S) = P(w1,w2,...,wn)≈P(w1) P(w2|w1)P(w3|w2)…P(wn|wn-1)

如果简化成一个词的出现仅依赖于它前面出现的两个词就称之为三元模型(Trigram)。

如果一个词的出现不依赖于它前面出现的词叫做一元模型(Unigram)。

 P(S)=P(w1,w2,...,wn)= P(w1)P(w2)P(w3)…P(wn)



以上。

祝大家圣诞快乐数据挖掘干货总结(一)--NLP基础数据挖掘干货总结(一)--NLP基础数据挖掘干货总结(一)--NLP基础


听说,爱点赞的人运气都不会太差哦

如果有任何意见和建议,也欢迎在下方留言~





 


点击这里查看往期精彩内容:


以上是关于数据挖掘干货总结--NLP基础的主要内容,如果未能解决你的问题,请参考以下文章

ACL 2019全程回顾:自然语言处理趋势及NLP论文干货解读

NLP模型BERT和经典数据集!

NLP干货!Python NLTK结合stanford NLP工具包进行文本处理

干货教程自然语言处理入门:手把手教你解决90%的NLP问题

NLP干货!Python NLTK结合stanford NLP工具包进行文本处理

NLP文本标注工具与平台(数据标注公司)