泛统计理论初探——文本挖掘中的词袋模型

数据挖掘-初探文本挖掘

文本挖掘之词袋模型
在我们开始接触文本挖掘的时候,一般都会有疑问,什么是文本挖掘,作者认为可以通过文本挖掘来得出文章的主题、特征等,也可以通过当前的词义、语义、语境等上下文信息进行预测,文本挖掘的用处十分广泛,比如比较两篇文章的风格判断作者是否同一个人,比如通过RNN、LSTM等模型生成诗歌、散文等。而我们最早接触的文本挖掘,其实是是通过分词开始进行学习的,即把一篇文章分为一组词汇和词汇出现的次数构成的词频表。以中文为例,组成文章的最小单位是字和词,所以在接触一篇文章的时候,可以先使用分词模型来进行切割,对文章出现的高频词进行分析,发现文章的某些特征。
在这里插入图片描述
那么我们在本次文章中对常见的词袋模型进行介绍,通过对词频来构建指标,使得文章的特征能够被挖掘出来,同时那些虚词和常见的无意义词语不会影响文本挖掘。这个词袋模型实际上就是不管词语出现的先后顺序,而只对文字的频数来进行分析,常见的衡量公式就是TF-IDF公式,公式如下:
TF-IDF(w,A)=TF(w,A)*IDF(w)
我们把w记作某个词语,比如有5个词语,那么就是w1,w2,w3,w4,w5以此类推,我们把A记作某篇文章,比如有3篇文章,那么就是A1,A2,A3以此类推。其中TF函数就是代表某个词语w在某篇文章A的出现频率,比如词语“牛肉”在一篇“牛肉好吃吗?”的文章中出现了30次,所有的词语在文章中出现150次,那么此时TF(w,A)= TF(“牛肉”,“牛肉好吃吗?”)=30/150=0.2
而IDF函数则代表逆文档频率,其实是用来衡量词语w对文章A的重要性,IDF函数如下: IDF(w)=log(文章总数/(包含词语w的文章总数+1))
IDF的公式的意义其实是,如果当前的词语w在某10篇文章中出现了2次,那么这个词语w可能是这两篇文章的特有词汇,IDF值较高。如果当前的词语w在某10篇文章中出现了10次,那么这个词语w可能是一个通用的词汇,IDF值较低,接近于0。比如词语“篮球”在10篇文章中出现了4次,那么此时IDF(w)=log(“篮球”)=log(10/(4+1))=log2 ;如果词语“但是”在10篇文章中出现了9次,那么IDF(w)=log(“但是”)=log(10/(9+1))=log1=0
根据上面的公式和和例子,我们可以看出,如果只有TF函数,那么出现最多的词语基本上是一些无意义词语,比如“是的”、“但是”等词语,而当加入了IDF函数后,文章具有当前文章特征的词语就可以体现出来,所以IDF函数是非常重要的。
从实用角度来看,TF-IDF公式是词袋模型中很好的评价指标,但是词袋模型本身由于没有考虑上下文语义和词语之间的顺序,它的发展本身有一定的局限性。而从另一角度来说,词袋模型需要首先确认把几个词语分到一起,通常在中文里是2,即把两个词语分到一起视为整体。但是有很多三个字、四个字的词语,比如“暴发户”这个词语,如果词袋模型设置是2个词构成一个整体,那么这个词语可能被分为“暴发”、“户”或者“暴”、“发户”,都是无法体现原有的含义的。如果是四字词语,比如“两面三刀”这个词语,如果词袋模型设置是2个词构成一个整体,那么这个词语可能被分为“两面”、“三刀”或者“两”、“面三”、“刀”,这也是无法体现原有含义的。
总的来说,词袋模型的TF-IDF公式是比较经典的文本挖掘模型,初学者在接触自然语言处理的时候,需要先了解词频含义和TF-IDF公式,这样在后面的模型学习中,可以有更好的理解。

发布了29 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_26727101/article/details/104211134
今日推荐