自然语言处理入门(7)——基于TF-IDF的文本自动打标
来源:互联网 发布:行省制的影响知乎 编辑:程序博客网 时间:2024/06/06 00:46
1. TF-IDF简介
TF-IDF(Term Frequency-Inverse Document Frequency)是一种统计方法,用以评估某一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF倾向于过滤掉常见的词语,保留重要的词语。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。在本文中,主要用TF-IDF来实现文本自动打标。
2. 应用案例
(1)应用案例1:找出文章最具代表性的词
# -*- coding: utf-8 -*-"""Created on Thu Aug 31 22:48:55 2017@author: Administrator"""from math import log#tf计算def tf(word,doc): all_num = sum([doc[key] for key in doc]) return float(doc[word]) / all_num#idf计算def idf(word,doc_list): all_num = len(doc_list) word_count = 0 for doc in doc_list: if word in doc: word_count += 1 return log(all_num/word_count)#tfdif计算(tfidf = tf * idf)def tfidf(word,doc,doc_list): score = tf(word,doc)*idf(word,doc_list) return scoreif __name__ == '__main__': doc1 = {'at':16,'tell':132,'soft':42,'let':53,'this':32} doc2 = {'tell':53,'be':46,'tea':43,'what':46,'foot':65,'hack':32} doc3 = {'soft':65,'this':67,'tell':78,'how':124,'foot':54} doc_list = [doc1,doc2,doc3] i = 1 for doc in doc_list: print('-'*30) print("doc{}中各单词的tfidf值:".format(i)) #循环输出每个文档中每个单词的tfidf值 for word in doc: print('"{}":{}'.format(word,tfidf(word,doc,doc_list))) i += 1
运行结果如下图所示:
根据上图中各文档中各个单词的tfidf值大小可以选出doc1、doc2、doc3三个文档中最具代表性的单词分别为:”let”,”be”,”how”。当然,上述案例只是tfidf应用的简单示例,后面会进一步介绍tfidf在实际业务中的应用。
阅读全文
0 0
- 自然语言处理入门(7)——基于TF-IDF的文本自动打标
- 自然语言处理——TF-IDF算法提取关键词
- 自然语言处理方法---TF-IDF
- 干货 | 自然语言处理(3)之词频-逆文本词频(TF-IDF)详解
- 自然语言处理中,TF和IDF的概念
- 文本挖掘——基于TF-IDF的KNN分类算法实现
- 自然语言处理模型(一):一文读懂TF-IDF
- 自然语言处理系列之TF-IDF算法
- 使用lingpipe自然语言处理包进行文本分类/** * 使用 lingpipe的tf/idf分类器训练语料 * * @author laigood */ public class trai
- 推荐系统学习(2)——基于TF-IDF的改进
- 使用sklearn进行文本TF-IDF处理
- 自然语言处理之Bag-of-words,TF-IDF模型
- TF-IDF与余弦相似性文本处理:自动提取关键词、找出相似文章
- 自然语言处理入门(5)——基于WordArt的AGM手机评论词频分析
- 自然语言处理入门(6)——基于LDA的文章主题生成
- 搜索引擎:文本分类——TF/IDF算法
- 【Spark Mllib】TF-IDF&Word2Vec——文本相似度
- 自然语言处理入门(2)——中文文本处理利器snownlp
- C++ Lambda表达式
- python语句结构
- 测试用例---常用设计方法,等价类,边界值,因果图判定表,正交表,场景法,大纲法
- oracle DDLsql语句字段效率&索引
- 排序算法总结
- 自然语言处理入门(7)——基于TF-IDF的文本自动打标
- Rancher部署kubernetes爬坑记
- ng-init初始值设置简单应用
- 半年学习总结
- Java网络编程浅谈
- Solr6.6总结(二)功能测试
- Eclipse无法启动
- 求字符串中变换位置问题
- jQuery层次选择器