zoukankan      html  css  js  c++  java
  • 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
    

    三、全部代码

    下载地址

    --------------------------------------------------------- 恐惧是因为努力的还不够,加油 ~~---------------------------------------------
  • 相关阅读:
    TV 丽音(NICAM)功能
    TV TimeShift和PVR的区别
    VGA、DVI、HDMI三种视频信号接口
    单词记忆
    gdb调试的基本使用
    Shell中字符串的切割、拼接、比较、替换
    I2C通信基本原理及其实现
    为什么单片机需要时钟系统,时钟信号在单片机中扮演怎样的角色?
    HDMI热插拔检测原理
    HDMI接口之HPD(热拔插)
  • 原文地址:https://www.cnblogs.com/zhaobowen/p/13582275.html
Copyright © 2011-2022 走看看