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

三、全部代码

下载地址

posted @ 2020-08-30 21:03  名字很长容易被惦记  阅读(957)  评论(0编辑  收藏  举报