失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 文本特征提取算法-TF-IDF

文本特征提取算法-TF-IDF

时间:2021-03-01 01:12:01

相关推荐

文本特征提取算法-TF-IDF

TF-IDF算法原理及其使用详解

TF-IDFsklearn实现

TF-IDF

TF-IDF(Term Frequency-inverse Document Frequency)是一种针对关键词的统计分析方法。用于评估一个词对一个文件集或者一个语料库的重要程度。一个词的重要程度跟它在文章中出现的次数成正比,跟它在语料库出现的次数成反比。这种计算方式能有效避免常用词对关键词的影响,提高了关键词与文章之间的相关性。

其中TF(Term Frequency)指的是某词在文章中出现的总次数,该指标通常会被归一化定义为

TF=(某词在文档中出现的次数/文档的总词量)

这样可以防止结果偏向过长的文档(同一个词语在长文档里通常会具有比短文档更高的词频)。

IDF(inverse Document Frequency)逆向文档频率,主要用于降低所有文档中一些常见却对文档影响不大的词语的作用。IDF反应了一个词在所有文本中出现的频率,如果一个词在很多的文本中出现,那么它的IDF值应该低,而反过来如果一个词在比较少的文本中出现,那么它的IDF值应该高。包含某词语的文档越少,IDF值越大,说明该词语具有很强的区分能力,

IDF=loge(语料库中文档总数/包含该词的文档数+1)

+1的原因是避免分母为0

TF-IDF=TFxIDFTF-IDF值越大表示该特征词对这个文本的重要性越大。

sklearn实现

from sklearn.feature_extraction.text import TfidfVectorizercorpus = ['This is the first document.','This document is the second document.','And this is the third one.','Is this the first document?',]vectorizer = TfidfVectorizer()tdm = vectorizer.fit_transform(corpus)space = vectorizer.vocabulary_print(space)

参数解释:

vocabulary_:特征和特征在TD-IDF中位置的一个对应关系,比如上例中vocabulary_的输出为,可以看出每个特征词和TD-IDF矩阵列的对应关系:stop_words:停用词集合,当为'english'时,ENGLISH_STOP_WORDS中定义的词会被忽略,如果为list,list中的单词即为要忽略的词;max_df: 设定当某个词超过一个df(document frequency)的上限时就忽略该词。当为0~1的float时表示df的比例,当为int时表示df数量;get_feature_names():返回特征列表,接上例vectorizer.get_feature_names()返回结果fit:load数据,并计算tf-idf值;transform:将数据转化为matrix的形式;fit_transform:load数据并将数据转化为matrix形式,等于fit+trasform;

如果觉得《文本特征提取算法-TF-IDF》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。