基于Python的中文分词词性标注词频统计的实现

时间:2024-05-31 11:21:55

基于Python的中文分词词性标注词频统计的实现

今天是2018年10月22号,小亮继续着自己深度学习与自然语言处理的打怪升级之路。今天给大家介绍一下最近接的小项目,基于Python的中文分词词性标注词频统计的实现,在这里与大家交流一下!

笔者信息:Next_Legend QQ:1219154092 机器学习 自然语言处理 计算机视觉 深度学习

小亮的博客:https://legendtianjin.github.io/NextLegend.github.io/ ——2018.10.22 于北洋


一、项目需求

        该项目的背景领域是金融工程,处理语料是中文的金融方向的txt书籍,目的是检测出书中的名词与动词等关键信息,并标注词性、统计词频等信息,最后导出数据为Excel格式。下图是需要处理的txt文本数据以及小亮自己找的停用词文本:

基于Python的中文分词词性标注词频统计的实现
基于Python的中文分词词性标注词频统计的实现

二、需求分析

        小亮并没有急于上手开始做项目,而是先分析了一下项目需求,其实主要的流程就是输入数据——>数据预处理——>词性标注(包含了分词)——>词频统计——>数据再次处理——>数据保存为Excel。其中中前后两部分的数据处理考验基本的Python数据结构能力,这部分可能得花一部分时间考虑。然后最难得部分是先做词性标注还是词频统计的顺序问题,刚开始小亮并没有考虑,只是先做了几个小样本的测试,结果到后面数据处理部分非常之麻烦,所以小亮百思终得其姐(解),先处理词性标注,再处理词频统计,从根本上说,词频统计其实也是数据处理问题,而不是自然语言处理(NLP)问题。

三、项目过程

        (1) 导入相关的库

基于Python的中文分词词性标注词频统计的实现

        (2) 读取中文语料数据

基于Python的中文分词词性标注词频统计的实现

        (3) 去除停用词

基于Python的中文分词词性标注词频统计的实现
基于Python的中文分词词性标注词频统计的实现

        (4) 正则表达式过滤非中文字符

基于Python的中文分词词性标注词频统计的实现

        (5) 词性标注

基于Python的中文分词词性标注词频统计的实现

        (6) 去除结果中的空格等现象

基于Python的中文分词词性标注词频统计的实现

        (7) 词频统计

基于Python的中文分词词性标注词频统计的实现

        (8) 数据二次处理整合

基于Python的中文分词词性标注词频统计的实现

        (9) 保存数据为Excel格式

基于Python的中文分词词性标注词频统计的实现

四、项目结果

        (1) 去除停用词后的结果

基于Python的中文分词词性标注词频统计的实现

        (2) 词性标注结果

基于Python的中文分词词性标注词频统计的实现

        (3) 词频统计结果

基于Python的中文分词词性标注词频统计的实现

        (4) Excel结果

基于Python的中文分词词性标注词频统计的实现
基于Python的中文分词词性标注词频统计的实现

五、项目总结

       其实,这个项目对于自然语言处理(NLP)任务来说,还是挺基础的,挺考验基本功的。说它基础是因为就用到了一个分词和词性标注,甚至说分词这一步都没做处理,词性标注包含了分词这一步骤。其次,对于Python的基本语法也很讲究,小亮就是困于数据处理与保存为Excel格式而消耗了大量时间,说明自己的基本功还是很差的,现在还做不到Python语法结构了然于心,项目整体框架形然于胸的地步。小亮还需要做的事情还有很多,理论还是要继续坚持的,代码也还是每天Coding的。小亮曾说过:“因为有你,BATJWM才那么Easy! 今天的挥汗如雨,是为了明天的挥金如土!我是赵小亮,我为自己打Call!”

笔者信息:Next_Legend QQ:1219154092 机器学习 自然语言处理 计算机视觉 深度学习

小亮的博客:https://legendtianjin.github.io/NextLegend.github.io/ ——2018.10.22 于北洋