推荐系统一

今天开始记录一下本狗学习机器学习以及深度学习的过程。

先从与大数据相关的最基础的开始

今天先记录一下NLP文本相似度

开始相似度之前先了解一下相似度与距离之间的关系:

显然,越相似距离越近,成正比的关系;

接下来记录一下文本相似度,文本相似度分两类

1、语意相似:语意相似但字面不相似

eg:本狗的学习之旅

     我的学习之路

2、字面相似:字面相似,但是语义不相似

eg:我吃饱饭了

     我吃不饱饭

那怎样来解决呢?

1、语意相似:基于共点击的行为(协同过滤,后面本狗会更新),

                        借助回归算法(后面会更新)

2、字面相似:LCS最大公共子序列

                       中文分词(eg:本狗/的/学习/之路

字面相似的问题解决

1)余弦相似度:cos=ab/|a|*|b|

举个例子:

句子1:这件衣服尺寸大了,那件尺寸合适

句子2:这件衣服尺寸不大,那件更合适

对这两句话就行分词

句子1:这件/衣服/尺寸/大了,那件/尺寸/合适

句子2:这件/衣服/尺寸/不/大,那件/更/合适

接下来进行去重穷举列出所有分词BOW(bag of words)

这件,衣服,尺寸,大了,那件,合适,不,大,更

计算词频:

句子1:这件 1,衣服 1,尺寸2,大了1,那件 1,合适 0,不 0,大 0,更 0

句子2:这件 1,衣服1,尺寸 1,大了 0,那件1,合适 1,不 1,大 1,更1

句子1:(1,1,2,1,1,0,0,0,0)

句子2:(1,1,1,0,1,1,1,1,1)

计算余弦相似度:cos(\partial )=0.625

值越大越相似

接下来看TFIDF

tf:词频:一个词在文章中出现的次数

关键词:在当前文章出现较多,但在其他文章中出现较少

当然要注意的是:文章中出现最多的不一定是关键词,要注意出现最多的是“的”,“是”,“在”,“了”,这类最常用的词叫停用词

停用词对结果毫无帮助,必须过滤掉

还需要注意:如果某个词比较少见,但是在这篇文章中多次出现,那么它很可能反映了这篇文章的特性,正是我们需要的关键词

因此,在词频的基础上,赋予每一个词的权重,进一步体现该词的重要性

最常见的词:(“的”,“是”,“在”)给予最小的权重

较常见的词:(“国内”,“中国”,“报道”)给予较小的权重

少见的词:(“祸害”,“繁殖”)给予较高的权重

idf:反文档频率

将tf和idf相乘,就得到一个tf-idf值,某个词对文章重要性越高,该值越大

词频和反文档频率怎样计算呢词频(TF)=某个词在文章中出现的次数/文章的总次数 或者某个词在文章中出现的次数/该文出现次数最多的词的出现次数


词频(TF)= 某个词在文章中出现的次数 / 文章的总词数

词频(TF)=某个词在文章中出现的次数  / 该文出现次数最多的词的出现次数

反文档频率(IDF)= log(   语料库的文档总数 / 包含该词的文档数+1)

使用log函数为了是得到的曲线更加平滑,文档数加1,为了是得到的IDF是一个正值。

关于NLP文本出路的TFIDF原理到此,怎样分词后面会更新。LCS的方式下一次更新。

猜你喜欢

转载自blog.csdn.net/huaicainiao/article/details/89407296