数据挖掘干货总结(一)--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)度量的方法

空间欧氏距离

路径曼哈顿距离

加权标准化欧氏距离

编码差别汉明距离

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

相关相关系数与相关距离

向量差距夹角余弦最常用的度量方法

3)相似文本计算的流程

– 找出两篇文章的关键词

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

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

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

 

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

1)意义

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

2)概念

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

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)}

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

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

4. 中文分词☆

1)意义

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


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

         +

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


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的概率也就是对输入字符串切分出最有可能的词序列基于贝叶斯公式可以得到如下推论

转换的精髓

#STEP2

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

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

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

#STEP3

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

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

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

 

***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)



以上。


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

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





 

关注这个公众号,定期会有大数据学习的干货推送给你哦~


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

大数据干货系列(一)--MapReduce总结

每日三问(1220)


  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值