python读取txt, jieba分词并统计词频后输出结果到Excel和txt文档

1
2
3
4
5
with  open ( '1.txt' 'r' ) as fp:
     lines  =  fp.readlines()
     res  =  [line.split()[ 1 ][ 9 :]  for  line  in  lines]
     with  open ( 'out.txt' 'w+' ) as out:
         out.write( '\n' .join(res))

#encoding=utf-8
import jieba
import jieba.posseg as pseg
import re
filename='result.txt'
fileneedCut='test.txt'
fn=open(fileneedCut,"r")
f=open(filename,"w+")
for line in fn.readlines():
    words=pseg.cut(line)
    for w in words:
        print >>f,str(w)
f.close()

fn.close()


  1. import sys  
  2. reload(sys)  
  3.   
  4. sys.setdefaultencoding('utf-8')  
  5.   
  6. import jieba  
  7. import jieba.analyse  
  8. import xlwt #写入Excel表的库  
  9.   
  10. if __name__=="__main__":  
  11.   
  12.     wbk = xlwt.Workbook(encoding = 'ascii')  
  13.     sheet = wbk.add_sheet("wordCount")#Excel单元格名字  
  14.     word_lst = []  
  15.     key_list=[]  
  16.     for line in open('1.txt'):#1.txt是需要分词统计的文档  
  17.   
  18.         item = line.strip('\n\r').split('\t'#制表格切分  
  19.         # print item  
  20.         tags = jieba.analyse.extract_tags(item[0]) #jieba分词  
  21.         for t in tags:  
  22.             word_lst.append(t)  
  23.   
  24.     word_dict= {}  
  25.     with open("wordCount.txt",'w') as wf2: #打开文件  
  26.   
  27.         for item in word_lst:  
  28.             if item not in word_dict: #统计数量  
  29.                 word_dict[item] = 1  
  30.             else:  
  31.                 word_dict[item] += 1  
  32.   
  33.         orderList=list(word_dict.values())  
  34.         orderList.sort(reverse=True)  
  35.         # print orderList  
  36.         for i in range(len(orderList)):  
  37.             for key in word_dict:  
  38.                 if word_dict[key]==orderList[i]:  
  39.                     wf2.write(key+' '+str(word_dict[key])+'\n'#写入txt文档  
  40.                     key_list.append(key)  
  41.                     word_dict[key]=0  
  42.       
  43.       
  44.     for i in range(len(key_list)):  
  45.         sheet.write(i, 1, label = orderList[i])  
  46.         sheet.write(i, 0, label = key_list[i])  
  47.     wbk.save('wordCount.xls'#保存为 wordCount.xls文件  

1.txt是你需要分词统计的文本内容,最后会生成wordCount.txt和wordCount.xls两个文件。下图是最后结果




  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Python使用jieba分词统计词频,然后将结果导出为CSV格式,你可以结合使用jieba库进行分词,collections库进行词频统计,以及csv库进行CSV文件的写入。以下是一个示例: ```python import jieba from collections import Counter import csv # 打开本地文本文件 with open('input.txt', 'r', encoding='utf-8') as file: # 读取文件内容 text = file.read() # 执行分词 seg_list = jieba.cut(text) # 统计词频 word_freq = Counter(seg_list) # 创建一个CSV文件,并写入词频统计结果 with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile: writer = csv.writer(csvfile) writer.writerow(['词语', '词频']) for word, freq in word_freq.items(): writer.writerow([word, freq]) ``` 在这个示例,我们使用`open()`函数打开名为`input.txt`的本地文本文件,并使用`read()`方法读取文件内容到变量`text`。然后,我们使用jieba库的`cut()`函数对文本进行分词,并使用collections库的Counter类对分词结果进行词频统计。 接下来,我们创建了一个CSV文件,并使用csv.writer对象将词语和词频写入文件。请注意,代码的`'input.txt'`是要读取的本地文本文件的路径和名称,而`'output.csv'`是要生成的CSV文件的路径和名称。 运行代码后,将生成一个名为`output.csv`的CSV文件,其包含词语和对应的词频统计结果。CSV文件的第一行是列标题,分别为`'词语'`和`'词频'`。每个词语及其对应的词频将占据一行。你可以根据需要修改列名和文件路径。 请确保已经安装了jieba库(可以使用 `pip install jieba` 进行安装),以及collections库和csv库,并导入了所需的模块。同时,确保指定的文件路径是正确的,并且你有权限读取和写入文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值