自然语言处理之关键词提取TF-IDF
统计每篇文章重要的词作为这篇文章的关键词,用tf-idf来实现。生产中有很多第三包可以调用,这里记录原理,顺便熟练python
1、公式 :
计算词频TF
考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。
或者
计算反文档频率idf
import os import math import operator filepath='H:/data/allfiles/allfiles' doc_word = dict() i=0 #统计每篇文章中的词频,及文章总数 for filename in os.listdir(filepath):with open(filepath+'/'+filename,'r',encoding='utf-8') as f:freq_word = dict()for line in f.readlines():words = line.strip().split(' ')if len(words) == '':continuefor word in words :if freq_word.get(word,-1) == -1:freq_word[word] = 1else:freq_word[word] += 1doc_word[filename] = freq_wordi += 1 #统计idf doc_nums = float(i) doc_freq = dict() for filename in doc_word.keys():for word in doc_word[filename].keys():if doc_freq.get(word,-1)==-1:doc_freq[word]=1else:doc_freq[word]+=1 for word in doc_freq.keys():doc_freq[word] =math.log(doc_nums/(doc_freq[word]+1)) #TF-IDF for filename in doc_word.keys():word_sorted = sorted(doc_word[filename].items(),key=operator.itemgetter(1),reverse=True)for word in doc_word[filename].keys():doc_word[filename][word] = doc_word[filename][word]*doc_freq[word]/float(word_sorted[0][1])print (doc_word[filename])
转载于:https://www.cnblogs.com/students/p/10334236.html
自然语言处理之关键词提取TF-IDF相关推荐
- 自然语言处理TF-IDF关键词提取算法
1.关键词提取简介 关键词是指能反映文本主题或者主要内容的词语.关键词提取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来,是NLP领域的一个重要的子任务.在信息检索中,准确的关键词提取可以大幅提 ...
- NLP自然语言处理:关键词提取
基于 TF-IDF 算法的关键词抽取 import jieba.analyse jieba.analyse.extract_tags(sentence, topK=20, withWeight=Fal ...
- 自然语言处理之——关键词提取(一)
一. 摘要 本次的分享中,我们将了解目前较常用的关键词提取技术.关键词是代表文章重要内容的一组词.在文本的分类聚类.自动摘要等方面有着重要的作用.还可以让人们更直观便捷的浏览文本信息.在现实的常用文本 ...
- NLP算法-关键词提取之Jieba算法库
关键词提取 什么叫关键词提取? 关键词提取方法分类 有监督 无监督 优缺点 Jieba 关键词提取 TF/IDF算法 TF-IDF的主要思想 如何训练关键词提取算法 demo PageRank算法 T ...
- TextRank关键词提取算法
参考:百度AI Studio课程_学习成就梦想,AI遇见未来_AI课程 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com) 1.关键词提取算法分类 1.有监督 将关键词提取 ...
- 关键词提取算法—TF/IDF算法
关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...
- 自然语言处理NLP中文分词,词性标注,关键词提取和文本摘要
NLP相关工具包的介绍 1.1 jieba "结巴"中文分词,理念是做最好的 Python 中文分词组件. 支持三种分词模式: (1)精确模式,试图将句子最精确地切开,适合文本分析 ...
- 【自然语言处理-1】TF-IDF简单最实用的关键词提取技术
自然语言处理历史 阶段 时间 发展意义 早期阶段 1956 年以前 香农曾提出过概率模型来描述语言,乔姆斯基提出了基于规则的上下文无关文法.阶段还没有太明确的产出,只有一些简单的拼凑 快速发展 195 ...
- 自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别
转载请注明出处:https://blog.csdn.net/HHTNAN HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP ...
最新文章
- ios xib 四等分_ios Xib的几种用法[转]
- c++max函数怎么用_比函数还强大的Excel分列技巧,你知道怎么用吗
- [转]RHEL7 忘记密码修改root密码 (经过测试RHEL7.2 / 7.1 通过)
- [Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
- python三个数求和_Python:list是否包含3个连续的整数,总和为7...
- PHP 分布式集群中session共享问题以及session有效期的设置
- 以编程方式确定Java类的JDK编译版本
- Pravega应用实战:为什么云原生特性对流处理很重要?
- 纯CSS的方法解决文字溢出与截断的问题
- An error occured instantiating job to be executed. job-Quartz的Job无法实例化原因及解决方案总结
- C语言,产生一组数字,并将其写入txt文档中
- 齿轮箱数据集_基于不同工况下辅助数据集的齿轮箱故障诊断
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
- vscode 软件 git提交代码步骤(结合webstorm软件)
- 营养电子秤控制板方案
- Android APP登录界面
- 计算机英语解读,解释计算机Windows的学习英语
- swagger文档增强工具knife4j使用详解
- 最值得期待的 5 个新特性解析JavaScript ES2021
- php高仿网络硬盘,高仿永硕网盘E盘源码
热门文章
- 【python教程入门学习】用Python制作迷宫GIF
- 【OpenCV】OpenCV函数精讲之 -- imread()函数
- 计算机视觉论文-2021-06-14
- 收藏 | 程序员生涯指南,在GitHub上获3.6万星
- Github | 深度神经网络(DNN)与生成式对抗网络(GAN)模型总览
- 一文初探Tensorflow高级API使用(初学者篇)
- 前端实现街道地图_使用百度地图实现地图网格的示例_白峰_前端开发者
- C语言约瑟夫报数出圈算法,c语言实现约瑟夫环问题
- php后台登录显示ok,thinkphp的项目 后台登录问题,怪事
- sql 孩子兄弟表示法 所有子节点_matlab实现随机+蓄意攻击网络节点(1)