项目应用自然语言处理-分词词频统计词性标注格式化输出
Posted 人工智能学术前沿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目应用自然语言处理-分词词频统计词性标注格式化输出相关的知识,希望对你有一定的参考价值。
分词后词频统计词性标注格式化输出
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/951331cacc224169a43b84c206550a82.jpg)
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
txt文档读取
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
首先我们获取一个txt文档,按行进行读入,以list列表形式存储,文本内容为教学用课本。
需要用到 os系统模块,来获取文件所在的路径。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/7daae6a458af4c939a385d9241813cb6.jpg)
输入的txt文本样例如下图,注意不注明文件的详细的路径时,默认从项目的文件夹内找文件。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/177f74ac52eb481bab3dda8fac8df4ae.jpg)
读取的文件存入到字符串s中。print输出读取到的文本内容,并通过使用type()函数,显示参数的数据类型。数据类型显示为<class 'str'>,字符串类型。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/9653f07b87b248ffb39782e51d3573f9.jpg)
输出结果:
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/814a1c7a371546fea4204461c8068f29.jpg)
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
数据类型转换:列表类型转字符串
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
通过使用join()函数,进行组合,根据列表间的符号进行连接,构成字符串。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/3bf7a4078b0a47d4bebb94127d5e769e.jpg)
输出结果:
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/3c2d8bb371a24920916b7b26868521cf.jpg)
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/72d93f3ac873402194b4585a3e9c675a.jpg)
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
词性标注和分词
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
上一节中,我们使用了jieba.cut()直接分词功能,本例中我们使用jieba的pseg方法。pseg.cut(),在分词的同时,对词性进行标注。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/21c034c9df7e4d70bc14258626416241.jpg)
输出结果:
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d653a8d02f37498c8ce2beb8ac8b9bb3.jpg)
输出结果为,默认的数据类型字典,存一个词,然后再存一个对应词的词性。为了便于使用,我们将词典中内容提取出来,按字符串结构存储。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
将字典结构中内容存储至字符串
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
首先,我们定义两个空的字符串,用于存储词,和词对应的词性标签。使用for循环并用正则表达式过滤拿出数据,使用append()函数,将拿出的数据存储到字符串中。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/2c923710a3264766aa595fde3b39f2c8.jpg)
输出结果:
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/4646b9678226438f9fbfc35312569f9d.jpg)
提取出的字符串,按照了文章的顺序,存储了下来,里面的分好的词,没有进行去重处理,这样我们可以进行下一步工作,统计每个词的出现次数。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
计算词频
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
上一步工作中,我们将分好的词,按顺序存储到了字符串中,现在,我们想一边进行去重工作,一边进行词频统计工作。使用到了for循环和set数据结构。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/4d4a994d306048c89a5a2a14d6713995.jpg)
输出结果
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/f9c67f48521f436585dc7dfc00fde3ac.jpg)
同样的,我们使用了两个字符串来存储,一个存储去重后的词,一个存储应用词的词频。此时的词的顺序已经打乱,我们想通过表的索引来将数据映射起来。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/dbfe35f361a64572b7af5e89e01e9575.jpg)
构造DataFrame映射出结构化数据
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/d21acd06d8e04ed18687189127dd3343.jpg)
本例中,我们需要调用pandas库,来简单的进行数据处理工作,我们要使用到,pandas的数据结构DataFrame,将两个DataFrame进行链接的merge()函数,以及pandas的csv文件生成结构化的表格。在链接过程中,会出现重复情况,我们由使用了drop_duplicates()函数进行去重。
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/a42432f0a3264735b4f16861c5cfee42.jpg)
输出结果:
![【项目应用】自然语言处理-分词词频统计词性标注格式化输出](https://image.cha138.com/20210412/a0c2e3b0888d4d61926ee94f42442565.jpg)
最终,我们生成了csv文件,里面包含了文档中分好的词,标注好的词性标签,以及词频。
更多精彩内容,尽在阅读原文
以上是关于项目应用自然语言处理-分词词频统计词性标注格式化输出的主要内容,如果未能解决你的问题,请参考以下文章