基于给定词语列表并统计词频,统计结果输出到csv中。有两种实现方法

方法一:常规的统计给定关键词的词频

思路:

第一步,整理好待查询query_words

第二步,新建一个csv文件,并且将query_words以列名写入csv中

第三步,对文本分词,得到词语列表wordlist

第四步,对每一个query_words中的词语计算其在wordlist中的个数

第五步,写入csv中。

import jieba

import csv

#待统计词频的文本数据

texts = ['北京上海广州深圳都是一线城市,而成都是西部中心城市。青岛位于山东,是山东的经济中心。',

'在上海,出租车司机都会问你,你是干哪行的,什么工作,多挣钱?',

'两个城市都是人口超大城市,但去年北京人口下降了2.2万人,有人分析可能和疏散低端产业有关。',

'分析产业结构,就能发现两个城市之间的差异。但一个地方的财政收入不仅包括一般公共预算收入,']

#统计这些词在texts中每条文本中的词频

query_words = ['工作', '发展', '经济', '工作', '消费', '收入', '存款', '人口']

#新建csv文件

csvf = open('词频统计.csv', 'w', encoding='gbk', newline = '')

writer = csv.writer(csvf)

#列名写入csv中

writer.writerow(('工作', '发展', '经济', '工作','消费', '收入', '存款', '人口'))

for text in texts:

#分词

wordlist = jieba.lcut(text)

line = []

for queryword in query_words:

#line收集词频结果

line.append(wordlist.count(queryword))

#将query_words词语列表中的词频写入csv中

writer.writerow(tuple(line))

#关闭csvf

csvf.close()

我们查看运行结果

import pandas as pd

df = pd.read_csv('词频统计.csv', encoding='gbk')

df.head()

方法二、结合sklearn

思路:

首先,让Countervector学会给定的关键词列表,从中学会特征词空间。

然后,csv文件的列名为特征词语名。

其次,将文本转化为sklearn能计算的格式(词语之间以空格隔开)。

次之,将特征词空间应用到转化格式的文本上,得到词频向量。

最后,写入csv文件,保存。

2.1 学习特征词空间

from sklearn.feature_extraction.text import CountVectorizer

import jieba

import csv

query_words = ['工作', '发展', '经济', '工作', '消费', '收入', '存款', '人口']

#学习待查关键词列表,并构建特征词空间

counter = CountVectorizer()

counter.fit(query_words)

print(counter.get_feature_names())

运行结果

['人口', '发展', '存款', '工作', '收入', '消费', '经济']

2.2 以特征空间为csv文件的列名

headers = counter.get_feature_names()

#新建csv

csvf = open('词频统计.csv', 'w', encoding='gbk', newline = '')

writer = csv.writer(csvf)

#查看特征空间的特征词

headers

运行结果

['人口', '发展', '存款', '工作', '收入', '消费', '经济']

2.3 整理为sklearn方便理解的形式(以空格间隔词语)

text = '北京上海广州深圳都是一线城市,而成都是西部中心城市。青岛位于山东,是山东的经济中心。'

text = ' '.join(jieba.lcut(text))

text

运行结果

'北京 上海 广州 深圳 都 是 一线 城市 , 而 成都 是 西部 中心 城市 。 青岛 位于 山东 , 是 山东 的 经济 中心 。'

2.4 计算所有待查词的词频

这里我们使用transform方法,得到文本数据编码后的特征向量

#注意transform方法输入的是可迭代对象,我们将text放入到空列表中

counter.transform([text]).toarray()

运行结果

array([[0, 0, 0, 0, 0, 0, 1]])

方法二完整代码

import jieba

import csv

from sklearn.feature_extraction.text import CountVectorizer

#待统计词频的文本数据

texts = ['北京上海广州深圳都是一线城市,而成都是西部中心城市。青岛位于山东,是山东的经济中心。',

'在上海,出租车司机都会问你,你是干哪行的,什么工作,多挣钱?',

'两个城市都是人口超大城市,但去年北京人口下降了2.2万人,有人分析可能和疏散低端产业有关。',

'分析产业结构,就能发现两个城市之间的差异。但一个地方的财政收入不仅包括一般公共预算收入,']

#待统计词频的关键词列表

query_words = ['工作', '发展', '经济', '工作', '消费', '收入', '存款', '人口']

#学习query_words数据,构建特征空间

counter = CountVectorizer()

counter.fit(query_words)

#特征名作为csv文件的列名

headers = counter.get_feature_names()

#新建csv

csvf = open('sklearn词频统计.csv', 'w', encoding='gbk', newline = '')

writer = csv.writer(csvf)

writer.writerow(tuple(headers))

#计算每个文本的待查词词频

for text in texts:

#词语之间以空格间隔,方便sklearn理解

text = [' '.join(jieba.lcut(text))]

line = counter.transform(text).toarray()[0]

writer.writerow(tuple(line))

csvf.close()

查看csv

import pandas as pd

df = pd.read_csv('sklearn词频统计.csv', encoding='gbk')

df.head()

总结

方法二虽然麻烦,但是这也算是复习sklearn的一个很好的机会。

统计csv词频_基于给定词语列表统计词频相关推荐

  1. python分词统计词频_基于结巴分词做的全文分词统计词频小脚本

    受朋友之托,写一个小脚本,断断续续做了两天,写一下两天的收获. 起因 有个朋友说专业文档很枯燥难懂,需要一个能把全文的关键词找出来并排序的东西,找不到现成的,问我能不能做一个.我前些天也听车神说有关分 ...

  2. python列表写入csv文件_将多个列表写入csv。Python中的文件

    我对Python(以及编程)还很陌生.我写了一个简短的程序,可以将一个专用文件夹的文件名读入字符串.在此之后,我将"提取"文件名中的信息(例如文档编号.标题等-&gt:在示 ...

  3. java导入csv分隔符_基于Java的CSV格式文件处理(excel逗号分隔符文件) | 学步园...

    导出 用流写出即可.导出csv文件. /** * 获取csv 文件中的内容 * @param path csv的文件位置 * @return 内容集合 * @throws Exception */ p ...

  4. ueditor统计字数中文_百度UEditor修改右下角统计字数包含html样式

    百度UEditor修改右下角统计字数默认只统计前台所见的文字个数,为了便于展示实际保存的时候是保存的包含html标签的,所以右下角的统计字数功能需要修改 /** * 计算编辑器当前内容的长度 * @n ...

  5. java 统计阅读量_使用redis实现【统计文章阅读量】及【最热文章】功能

    1.视图函数 # 不需要登录装饰器,匿名用户也可访问 def article_detail(request, id, slug): # print(slug,id) article = get_obj ...

  6. python统计图像直方图_计算机视觉7-像素点直方图统计、掩膜图像

    1.灰度图的直方图 (1)调用库 import cv2 import matplotlib.pyplot as plt import numpy as np #创建掩膜时需要 (2)绘图-方法1 im ...

  7. 基于强边缘有效性统计的图像清晰度评价

    摘要 图像清晰度评价是图像质量评价中的一个重要组成部分,对于自动对焦.图像压缩.视频封面提取等应用具有重要意义.目前图像清晰度评价可分为有参考图像清晰度评价和无参考图像清晰度评价[1]. 对于无参考清 ...

  8. 统计csv词频_分词词频统计

    网上随便找段文字,就以Power BI官网上这段文字为例好了: 想要统计其中的词频,实现如下图的效果: 解法1:使用输入法词库 其中的难点无疑在分词了,中文不像英文可以按空格拆开分词,仅仅单靠Powe ...

  9. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

最新文章

  1. 有关转换流中涉及的【乱码问题】
  2. Wordcount on YARN 一个MapReduce示例
  3. 如何在win7(xp)home version下安装 rose 32 bit
  4. 马云谈 5G 危机;腾讯推出车载版微信;Ant Design 3.22.1 发布 | 极客头条
  5. 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析
  6. php 模板 自己,php自己写了一个模板
  7. rf 433/868MHZ sub-1g 无线通信知识系列(3):组网信道
  8. 堆米微信H5页面怎么制作?易企秀微信H5页面制作,微信简历制作,
  9. vue 表单验证正则_vue表单验证
  10. 谷歌浏览器如何配置SSL证书
  11. 【C语言循环结构题】迭代法求平方根
  12. SAP快速学习小结1
  13. JavaScript DOM编程-佟刚-专题视频课程
  14. 南京邮电大学计算机考研专硕初试经验分享
  15. 武汉大学—华为 “遥感领域人工智能项目合作”
  16. 基于Javaweb的商铺租赁管理系统/租赁管理系统
  17. 服务器系统事件1014,事件ID1014
  18. alibaba otter docker 测试环境一键生成
  19. win0计算机内存不足,Windows电脑提示内存不足的原因分析及解决办法
  20. 完整版 html代码简洁说明,html简单网页代码模板

热门文章

  1. java中不用impore导入的_java import机制(不用IDE)
  2. docker搭建webug4.0并——示范.支付漏洞,邮箱轰炸
  3. python 列表比较不同_python实现比较两段文本不同之处的方法
  4. osgQt::GLWidget的坑
  5. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGI
  6. cultureinfo 类 java_System.Globalization.CultureInfo.cs(示例代码)
  7. linux fpga通信,基于Linux的FPGA通信技术研究与实现
  8. 巧用这19条MySQL优化,效率至少提高3倍
  9. Python 通过 pip 安装第三方模块成功,导入该模块失败的解决方法
  10. 中国人自己的框架——蚂蚁金服RPC框架结构分析