python实现中⽂⽂档jieba分词和分词结果写⼊excel⽂件
输⼊
本篇⽂章中采⽤的是对京东某商品的2000个正⾯评价txt⽂档和2000个负⾯评价txt⽂档,总共是4000个txt⽂档。
⼀个正⾯评价txt⽂档中的内容类似如下:
1 钢琴漆,很滑很亮。
2 LED宽屏,看起来很爽
3 按键很舒服
4 活动赠品多
⼀个负⾯评价txt⽂档中的内容类似如下:
送货上门后发现电脑显⽰器的两边有缝隙;成型塑料表⾯凹凸不平。做⼯很差,,,,,
输出
⾸先,是对4000个txt⽂档进⾏jieba分词后的输出结果。
对应上⾯输⼊中正⾯评价txt⽂档中的内容经过分词后,分词结果如下:
钢琴漆很滑很亮 LED 宽屏很爽按键舒服活动赠品
对应上⾯负⾯评价txt⽂档中的内容经过分词后,分词结果如下:
送货上门发现电脑显⽰器两边缝隙成型塑料表⾯凹凸不平做⼯很差
然后,把2000个正⾯评价txt⽂档和2000个负⾯评价txt⽂档的分词结果写⼊excel⽂件,每个分词结果都对应⼀个标签(正⾯评为1,负⾯评价为0),图⽰如下:
⼯具
python中文文档 本⽂使⽤⼯具为:Anaconda、PyCharm、python语⾔、jieba中⽂分词⼯具、⽹上下载的停⽤词⽂档原理
使⽤jieba⼯具对每篇txt⽂档中的中⽂段落进⾏分词,分词后的结果去掉停⽤词后写⼊excel⽂档。Python代码实现
1from os.path import os
2from xlwt.Workbook import Workbook
3import jieba
4
5# 将停⽤词⽂档转换为停⽤词列表
6def stopwordslist():
7 stopwords = [line.strip() for line in open('', encoding='UTF-8').readlines()]
8return stopwords
9
10# 对⽂档字符串进⾏中⽂分词
11def seg_depart(sentence):
12print('sentence:{}'.format(sentence))
13# jieba⼯具分词结果
14 sentence_depart = jieba.cut(sentence.strip())
15# 停⽤词列表
16 stopwords = stopwordslist()
17
18# 输出结果保存⾄outstr
19 outstr = ''
20# 去停⽤词
21for word in sentence_depart:
22if word not in stopwords:
23if word != '\t':
24 outstr += word
25 outstr += ''
26print('outstr:{}'.format(outstr))
27return outstr
28
29# txt⽂档的路径
30#mypath = 'F:\\Jingdong_4000\\neg\\'
31 mypath = 'F:\\Jingdong_4000\\pos\\'
32 myfiles = os.listdir(mypath)
33
34# txt⽂档名列表
35 fileList = []
36for f in myfiles:
37if(os.path.isfile(mypath + '/' + f)):
38if os.path.splitext(f)[1] == '.txt':
39 fileList.append(f)
40# 待写⼊excel⽂件的每⼀⾏组成的列表
41# excellist中的元素为列表,包括分词结果和标签两部分
42 excellist = []
43for ff in fileList:
44 f = open(mypath+ff,'r',encoding='gb2312', errors='ignore')
45 sourceInLines = f.readlines()
46 f.close()
47 str = ''
48 rowList = []
49for line in sourceInLines:
50 str += line
51 str = str.strip()
52
53# 对str做分词
54 str = seg_depart(str)
55 str = str.strip()
56 rowList.append(str)
57
58# 添加对应的标签0或1
59#rowList.append(0)
60 rowList.append(1)
61
62 excellist.append(rowList)
63
64# excel表格式
65 book = Workbook()
66 sheet1 = book.add_sheet('Sheet1')
67 row0 = ['review', 'label']
68
69for i in range(len(row0)):
70 sheet1.write(0,i,row0[i])
71
72# 两个for循环,第⼀个for循环针对写⼊excel的每⾏,第⼆个for循环针对每⾏的各列73for i, li in enumerate(excellist):
74print('i:{}, li:{}'.format(i, li))
75for j, lj in enumerate(li):
76 sheet1.write(i+1,j,lj)
77# 数据存⼊excel⽂件
78#book.save('neg_fenci_excel.xls')
79 book.save('pos_fenci_excel.xls')
代码运⾏结果
⽣成如输出⼀节展⽰内容的excel⽂档。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论