过往的词频统计都是针对整个文档进行的,而如果研究中需要知道单条评论或某个研究单元内某些词的词频,那么就需要进行额外的处理。原理非常的简单,就是遍历筛选,具体做法为去除停用词的逆运算。

Step1:分词

最基本的处理的就不做多余的赘述,直接上码:

def seg_word(data):seg_result=[]stop_list = open('哈工大停用词表.txt','r',encoding='utf-8').read()for sentence in data:c_words=jieba.cut(sentence)seg_result.append([word for word in c_words if word not in stop_list and len(word) >1])#不要忘记了加[],输出要为list格式return seg_result

Step2:遍历筛选核心关键词

def flitter(seg_result):key_words=open('key_words.txt','r',encoding='utf-8').read()result=[]for i in seg_result:for j in i:if j in key_words:result.append(j)return result

这里需要注意的有两点:

(1)第一步中的分词结果是list of list 的格式,我们需要对内层即第二层的内容进行统计,因此需要用第二层的内容对key_words进行遍历。即两个for循环。

(2)key_words的读取格式要为string,所以是.read()而不是.readlines,否则不会起作用,停用词列表类同。

Step3:词频统计

实现方法(1)

def count_words(result):count={}for i in result:if len(i)>=2:#排除单个词count[i]=count.get(i,0)+1#类似一个循环判断,get的第二个空格是默认值,如果不在list里面就是返回NONE或者数字0return count

实现方法(2)

count={}
for i in seg_result:if i not in count:count[i]=0#键和值一起存进了count,只是没有的话值为0else:count[i]+=1

实现方法(3)

count=data.value_counts()#默认降序count=data.value_counts(ascending=True)#升序排列

此外,还可以进行排序

items = list(count.items())#list里面为元组
items.sort(key=lambda x:x[1],reverse=True)#key指要执行什么,冒号后面是排序的依据,对应索引中的索引应该是1,(键为0值为1)

Step4:数据测试

在定义好了函数后,就可以进行主函数的书写和函数的调用啦

data = open('test.txt','r',encoding='utf-8').readlines()
seg_result=seg_word(data)
result=flitter(seg_result)
count=count_words(result)

补充:这样的筛选结果是以词为单元的,每一个符合筛选要求的词语占一行。但有时候用词频做细粒度分析的时候需要知道原本每一行所包含关键词的情况。那么这时候就需要换一种结构:

主要的区别在于函数仅仅考虑单条评论的处理方式,至于自己的数据全部在主函数中进行使用。

import jieba
import pandas as pd
#定义函数
#结巴分词
def seg_word(sentence):seg_list = jieba.cut(sentence)seg_words=[]for i in seg_list:seg_words.append(i)stoplist=open(r'C:\Users\64884\Desktop\相似度训练\哈工大停用词表.txt','r',encoding='utf-8').read()seg_result=[]for word in seg_words:if word not in stoplist:seg_result.append(word)return seg_result#主题词过滤
def flitter(seg_result):key_words=open(r'C:\Users\64884\Desktop\相似度训练\key_words.txt','r',encoding='utf-8').read()result=[]for i in seg_result:if i in key_words:result.append(i)return result#输入自己的数据
data = open(r'C:\Users\64884\Desktop\相似度训练\物流评论.txt','r',encoding='utf-8').readlines()
seg_result=[]
for i in data:seg_result.append(seg_word(i))result=[]
for i in seg_result:result.append(flitter(i))

对指定关键词进行词频统计相关推荐

  1. 好用!强大的词云图文字云制作神器!可永久使用,快速出图,支持自动分词关键词筛选词频统计!

    可永久使用的词云图文字云一键制作软件,快速出图,支持自动分词关键词筛选词频统计! 软件名称:MagicCloud词云图制作软件(简化版.标准版,升级版) 目前仅支持Windows电脑安装,软件安装大小 ...

  2. 学习NLP的第10天——文章关键词提取:词频统计

    关键词提取是词语颗粒度的信息抽取的一种重要的需求,即提取文章中重要的词语. 关键词提取的常用方法包括词频统计.TF-IDF和TextRank等. 其中,词频和TextRank属于单文档算法,即只需一篇 ...

  3. 北京交通大学Python课程设计大作业(四)——典籍词频统计

    北京交通大学Python课程设计大作业(四)--典籍词频统计 文章目录 北京交通大学Python课程设计大作业(四)--典籍词频统计 一.词频统计任务介绍 二.典籍词频统计python源代码如下 三. ...

  4. 【文本处理 词频统计】python 实现词频统计

    自定义词频统计函数:wordcount # -*- encoding=utf-8 -*-import string import pandas as pdword_list=[] freq_list= ...

  5. Pytorch 文本数据分析方法(标签数量分布、句子长度分布、词频统计、关键词词云)、文本特征处理(n-gram特征、文本长度规范)、文本数据增强(回译数据增强法)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 文本数据分析 学习目标: 了解文本数据分析的作用. 掌握常用的 ...

  6. jieba词频统计、关键词提取、词云图制作

    1.jieba分词及词频统计 import jieba import pandas as pd# 加载自定义分词词典(txt内容格式:自定义关键词+空格+空格 ----->换行继续) jieba ...

  7. spss可以关键词词频分析吗_一种有效的多关键词词频统计方法

    一种有效的多关键词词频统计方法 马志柔 ; 叶屹 [摘 要] 针对词频统计的特点 , 设计了一种多了多关键词的高效匹配 , 扫描一次文档 就可统计出全部关键词词频信息 . 通过理论分析与实验表明 , ...

  8. Hadoop综合大作业补交4次作业:获取全部校园新闻,网络爬虫基础练习,中文词频统计,熟悉常用的Linux操作...

    1.用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)进行词频统计. (1)开启所有的服务,并创建文件夹wwc (2)查看目录下所有文件 (3)把hdfs文件系统中文件夹里的文 ...

  9. Python大数据:jieba分词,词频统计

    实验目的 学习如何读取一个文件 学习如何使用DataFrame 学习jieba中文分词组件及停用词处理原理 了解Jupyter Notebook 概念 中文分词 在自然语言处理过程中,为了能更好地处理 ...

最新文章

  1. 【 Verilog 】always@()的敏感源中为什么不能双边沿触发?为什么不能双时钟触发?
  2. 通过变长数组(VLA)来看编译器的不同
  3. php mysql书城_php在线书城 thinkphp源码(含数据库脚本)
  4. 我的Mac os x中的nginx配置文件nginx.conf
  5. mysql参数优化步骤_MySQL架构优化实战系列4:SQL优化步骤与常用管理命令2(转)
  6. R语言学习 - 非参数法生存分析--转载
  7. 研磨设计模式-设计模式的基础-设计模式的学习【思路】
  8. Ubuntu 12.04 设置终端字体为文泉驿
  9. # 融云 SDK 新用户入群加载历史消息 记录融云 SDK 的一个小功能,分享一下 ## 背景 项目中有用到融云 SDK 中的群组功能,产品说需要新人入群的时候看到历史消息。 本来以为直接能获
  10. IDEA 炫酷编辑器主题大全,真的好看
  11. 超市便利店零售POS收银前台,好用的零售收银软件盘点机PDA收银机,批发销售出库单开单,超市零售批发进销存收银开单管理软件
  12. 绝招!谷歌浏览器(Chrome)各种版本支持Flash
  13. Access-Control-Allow-Origin跨域
  14. GNSS-SINEX文件格式简介
  15. vue+css实现选择框内打勾效果
  16. Vulnhub_COFFEE ADDICTS: 1
  17. 初级计算机基础知识教程,计算机基础知识(初中级教程)
  18. 加盟连锁如何降低风险?
  19. R语言生存分析详解:KM曲线、COX比例风险模型、HR值解读、模型比较、残差分析、是否比例风险验证:基于survival包lung数据集
  20. c语言 memset 段错误,memset 导致的一个段错误

热门文章

  1. 初级php工程师掌握技能,php工程师必须掌握的职业技能(上)
  2. 数说热点 | 2022商业地产的“破局”与“新生”——逆境之下探索新兴可能
  3. 差分法 (分数比较)
  4. 杜比ac3专利已于2017年3月到期
  5. HHUOJ 1088 我们遇到什么困难也不要怕
  6. SpringBoot启动后不报任何错误自动停止
  7. python 阿拉伯数字与汉字的转换
  8. 微信域名检测php,微信域名检测接口调用演示步骤(含PHP、Python)
  9. RecyclerView——实现短视频布局
  10. Part I 空气曲棍球 Chapter7 纹理映射(Adding Detail with Textures)