Jieba统计词频并生成csv文件
一、制作简单UI读入数据
包括文本框、导入按钮、开始按钮的
import tkinter as tk # 使用Tkinter前需要先导入
window = tk.Tk()
window.title('My Window')
window.geometry('600x300') # 这里的乘是小x
t = tk.Text(window,width=80,height=15)
t.place(x=10, y=10)
def import_file(): # 在鼠标焦点处插入输入内容
pass
def run(): # 在文本框内容最后接着插入输入内容
print(t.get('0.0','end'))
t.delete('0.0','end')
# tk.messagebox.showinfo(title='', message='')
b1 = tk.Button(window, text='导入', width=10,height=2, command=import_file).place(x=300, y=220)
b2 = tk.Button(window, text='运行', width=10,height=2, command=run).place(x=400, y=220)
window.mainloop()
二、分词功能实现
使用jieba对输入的文本或读取的world内容进行基础分词,转成dataframe输出csv文件
参考文档:
结巴分词和词频统计
结巴自定义词典
结巴和pkuseg
jieba 是一个python实现的中文分词组件,在中文分词界非常出名,支持简、繁体中文,高级用户还可以加入自定义词典以提高分词的准确率。
它支持三种分词模式:
- 精确模式:试图将句子最精确地切开,适合文本分析;
- 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
- 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
另外它还自带有关键词摘取算法:
- 基于 TF-IDF 算法的关键词抽取
- 基于 TextRank 算法的关键词抽取
代码片段:
jieba的使用很简单,通常使用的是精确模式。先清洗数据,将标点符号去掉。然后使用jieba.cut(te_text)进行分析,分词结果匹配停用词如果在停用词就不做统计。
#分词函数
def jiebaword(text):
# 加载自定义词典
jieba.load_userdict(os.getcwd() + os.sep + 'userdict.txt')
# 加载停用词
# path = os.getcwd() + os.sep
stoppath = path + 'stopword.txt'
logger.info("加载停用词 %s " % stopwordslist(stoppath))
# 过滤文本标点符号
te_text = re_content(text)
# 分词
logger.info("开始分词")
data = [i for i in jieba.cut(te_text) if i not in stopwordslist(stoppath) and i != ' ']
# 使用collections统计词频
logger.info("转换成datafram")
count_data = collections.Counter(list(data))
# 将结果转成dataframe
df = pd.DataFrame(count_data.items(), columns=['key', 'cnt'])
return df
三、全部代码
---------------------------------------------------------
恐惧是因为努力的还不够,加油 ~~---------------------------------------------