打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
听不懂人话?stata分词帮你搞定(三)

在《听不懂人话?stata分词帮你搞定(一)》中,我们介绍了如何使用stata进行简单的分词,但由于stata进行的分词不能显示词性也不能添加词典,《听不懂人话?stata分词帮你搞定(二)》中我们又介绍了如何使用stata与Python交互调用pynlpir以及添加词典进行分词。有粉丝留言说我们用的江南皮革厂的例子都可以跟着节奏念起来,看来分词的效果还是不错的呢~那今天我们就继续放大招:介绍stata与Python交互调用jieba进行分词,它能够实现不同精度模式下的分词哦。

结巴(jieba)是国人推出的一个精品插件,可以对一段中文进行分词,目前已有Python、JAVA、C++和Nodejs版本,可以适应不同需求。我们调用dos命令,运行

!pip install jieba

安装jieba

jieba有三种分词模式:全模式可以列出句子中所有能够成词的词语,如输入文本“皮革厂”,全模式下会将 “皮革”、“皮革厂”都列出,速度非常快,但是不能解决歧义,如“武汉市/长江大桥”和“武汉/市长/江大桥”。精确模式试图将句子最精确地切开,会列出不重复的所有词,适合进行文本分析。搜索引擎模式在精确模式的基础上,对长词再次切分,适合用于搜索引擎分词。今天我们主要介绍全模式和精确模式。在Python中,调用jieba进行分词时,cut_all = True表示全模式,cut_all = False表示精确模式。

全模式

我们用file命令编辑Python脚本,调用jieba使用全模式进行分词。

clear all

cd E:/分词与情感分析

tempname handle

file open `handle' using 分词.py, replace text write

file write `handle' `'import jieba'' _n //导入jieba模块

file write `handle' `'string = '浙江温州,浙江温州,''

file write `handle' `'最大皮革厂,江南皮革厂倒闭了!''

file write `handle' `'老板黄鹤吃喝嫖赌,欠下了3.5个亿,''

file write `handle' `'带着他的小姨子跑了。''

file write `handle' `'我们没有办法,拿着钱包抵工资。''

file write `handle' `'原价都是三百多、二百多、一百多的钱包,''

file write `handle' `'通通二十块,通通二十块!''

file write `handle' `'黄鹤你不是人,我们辛辛苦苦给你干了大半年,''

file write `handle' `'你不发工资,你还我血汗钱,还我血汗钱!''' _n

file write `handle' `'seg_list = jieba.cut(string, cut_all = True)'' _n // jieba.cut方法接受两个输入参数:第一个参数为需要分词的字符串,第二个参数cut_all用来控制是否采用全模式,cut_all = True表示全模式

file write `handle' `'for word in seg_list:'' _n

file write `handle' `' print(word)''

file close `handle'

! python 分词.py > 分词结果.txt

shellout 分词结果.txt

可以看出,全模式会把句子中所有可以成词的词语全部列出来。

精确模式

我们用file命令编辑Python脚本,调用jieba使用精确模式进行分词。

clear all

cd E:/分词与情感分析

tempname handle

file open `handle' using 分词1.py, replace text write

file write `handle' `'import jieba'' _n

file write `handle' `'string = '浙江温州,浙江温州,''

file write `handle' `'最大皮革厂,江南皮革厂倒闭了!''

file write `handle' `'老板黄鹤吃喝嫖赌,欠下了3.5个亿,''

file write `handle' `'带着他的小姨子跑了。''

file write `handle' `'我们没有办法,拿着钱包抵工资。''

file write `handle' `'原价都是三百多、二百多、一百多的钱包,''

file write `handle' `'通通二十块,通通二十块!''

file write `handle' `'黄鹤你不是人,我们辛辛苦苦给你干了大半年,''

file write `handle' `'你不发工资,你还我血汗钱,还我血汗钱!''' _n

file write `handle' `'seg_list = jieba.cut(string, cut_all = False)'' _n //cut_all = False表示精确模式

file write `handle' `'for word in seg_list:'' _n

file write `handle' `' print(word)''

file close `handle'

! python 分词1.py > 分词结果1.txt

shellout 分词结果1.txt

可以看出,精确模式能够将句子最精确地切开,会列出不重复的所有词,相对于全模式来说更加适合进行文本分析。

有时候,根据不同的分词需求,还要获得词性,我们在Python中调用jieba进行分词时可以通过import jieba.posseg加载jieba词性标注模块

clear all

cd E:/分词与情感分析

tempname handle

file open `handle' using 分词2.py, replace text write

file write `handle' `'import jieba.posseg'' _n //加载jieba词性标注模块

file write `handle' `'string = '浙江温州,浙江温州,''

file write `handle' `'最大皮革厂,江南皮革厂倒闭了!''

file write `handle' `'老板黄鹤吃喝嫖赌,欠下了3.5个亿,''

file write `handle' `'带着他的小姨子跑了。''

file write `handle' `'我们没有办法,拿着钱包抵工资。''

file write `handle' `'原价都是三百多、二百多、一百多的钱包,''

file write `handle' `'通通二十块,通通二十块!''

file write `handle' `'黄鹤你不是人,我们辛辛苦苦给你干了大半年,''

file write `handle' `'你不发工资,你还我血汗钱,还我血汗钱!''' _n

file write `handle' `'seg_list = jieba.posseg.cut(string)'' _n //对文本切词并显示词性

file write `handle' `'for word in seg_list:'' _n

file write `handle' `' print(word.word, word.flag)'' //把切词结果里的每一个词及词性打印出来

file close `handle'

! python 分词2.py > 分词结果2.txt

shellout 分词结果2.txt

可以看到,输出结果列出了分词后的每个词和相应的词性,如ns表示地名,a表示形容词,v表示动词,ul表示“了”“喽”等。


看不懂的记得戳下方视频哦~


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

     应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                        文字编辑:闫续文

技术总编:刘贝贝



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Py之jieba:Python包之jieba包(中文分词最好的组件)简介、安装、使用方法之详细攻略
用lua给wxEditor扩展显示相关变量信息
python 如何将数据写入本地txt文本文件的实现方法
手把手教你对抓取的文本进行分词、词频统计、词云可视化和情感分析
实践篇(五):KBQA Demo
Django 如何实现全文检索?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服