我们从搜狗细胞词库下载了计算机名词大全,从网上找到了哈工大,百度和四川大学停用词词库并进行了合并去重操作,得到了相对完整的中文停用词词库,将它们对jieba库进行对接,使用jieba对csv文件进行操作
技术细节
1、csv文件提取一列,转化为list进行分词
2、分词操作中,计算机名词大全让jieba不要把词分错,如“机器学习”不要分成“机器”“学习”,停用词库进行对比,将很明显不需要的词,特殊字符给删除
3、分词后得到list列表,将其替换到csv文件
4、保存为新文件
代码
"""
Created on Sat Dec 28 18:53:55 2019
@author: 姬大叔
"""
import os
import pandas as pd
import jieba
"""
csv文件读取一列,转为list
"""
def columnOflist(datas,cName):
job_info=datas.loc[:,cName]
job_info=job_info.tolist()
return job_info
"""
对列表数据进行分词操作
返回一个分词后的list
"""
def stripWord(job_info):
"""
停用词表
"""
stop=open('停用词.txt','r',encoding='utf-8')
stopWord=stop.read().split("\n")
"""
调用新词库
"""
print("正在分词。。。。。。。")
jieba.load_userdict('计算机名词大全.txt')
wordlists=[]
for input in job_info:
seg_list=jieba.cut(input,cut_all=False)
#print('精确模式','/'.join(seg_list))
wordlist=[]
for key in seg_list:
if not(key.strip() in stopWord) and (len(key.strip()) > 1) and not(key.strip() in wordlist) :
wordlist.append(key)
wordlists.append(wordlist)
print("分词成功。。。。。。。")
return wordlists
"""
将分词到的数据替换成原来杂乱的数据,保存到新表中
"""
def saveCsv(datas,cName,Keylists,file):
print("正在替换。。。。。。")
for i in range(len(Keylists)):
var = ','.join(Keylists[i])
datas.loc[i,cName]=var
print("替换成功,正在保存文件。。。。。")
datas.to_csv('自己路径'+file)
print("保存成功")
path=' ' #源文件夹路径
files=os.listdir(path) #文件名
cName='job_info' #列名
for file in files:
datas=pd.read_csv(path+file)
inputlist=columnOflist(datas,cName)
keylist=stripWord(inputlist)
saveCsv(datas,cName,keylist,file)
分词效果还是很不错的