专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
哔哩哔哩  ·  哔哩哔哩视频号招实习生了! ·  14 小时前  
练瑜伽  ·  崩塌了……果然还是轮到她了 ·  18 小时前  
時間的玩家TimeIsArt  ·  每日临在 | 2025.02.21 ·  3 天前  
時間的玩家TimeIsArt  ·  每日临在 | 2025.02.21 ·  3 天前  
哔哩哔哩  ·  五毛特效拍哪吒,我的笑点和泪点在打架 ·  3 天前  
51好读  ›  专栏  ›  爬虫俱乐部

听不懂人话?stata分词帮你搞定(二)

爬虫俱乐部  · 公众号  ·  · 2017-09-13 15:49

正文

有问题,不要怕!点击推文底部“ 阅读原文 ”下载爬虫俱乐部用户问 题登记表并按要求填写后发送至邮箱 [email protected] ,我们会及时为您解答哟~

上一篇推文我们介绍了如何使用stata进行 分词 ,今天主要介绍stata与Python交互调用pynlpir进行 分词

一、stata与Python交互调用pynlpir进行分词

NLPIR汉语 分词 系统是一款功能很强大的 分词 工具,又名ICTCLAS2013,主要功能包括中文 分词 ;词性标注;命名实体识别;用户词典添加;微博 分词 、新词发现与关键词提取等,支持GBK编码、UTF8编码、BIG5编码。而pynlpir提供了NLPIR/ICTCLAS汉语分词的Python接口。

我们首先安装pynlpir,打开cmd窗口,输入pip install pynlpir

在stata中调用Python程序的方式有很多,可以通过cmd来运行写好的python程序,也可以使用往期推文 I have a Stata, I have a python 中介绍的命令“python”。但由于“python”命令需要在电脑上安装Microsoft Visual Studio,并且Python的语言也无法写入stata的do文件中运行,而如果在命令框中用回车键换行,就会直接运行命令并报错,所以在stata中通过调用cmd来运行Python写好的程序远远比用stata中的python命令方便的多。

我们爬虫俱乐部团队前段时间去了温州呢 (详见 《第一届Stata中国用户大会在温州商学院圆满闭幕——“通过新技术获取实时的高品质数据已成潮流”》 ), 一提到温州,总是能首先想到江南皮革厂那洗脑力满分的广告词,我们就对这个来 分词 吧。怎么用stata来写Python命令呢?用file write就好了。我们用file命令编辑Python脚本,写入江南皮革厂的广告词,调用pynlpir进行 分词。

clear all

cd E:/分词与情感分析

tempname handle

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

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

file write `handle' `"pynlpir.open(encoding="utf8")"' _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 = pynlpir.segment(string, pos_tagging=True)"' _n //切词,pos_tagging=True表示显示词性

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

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

file close `handle'

在stata中,调用cmd来运行Python程序“分词.py”,并将结果导入“分词结果.txt”。

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

shellout 分词结果.txt

如上图所示,切词结果里的每一个词都被列了出来,并标注了词性。

二、添加用户词典进行分词

很多时候,我们需要在基础词典上添加自定义的词汇,适应特定的 分词 任务。汉语 分词 系统进行的 分词 ,会把“江南皮革厂”分为“江南”、“皮革”、“厂”。

我们添加用户词典“dict.txt”,把“江南皮革厂”作为新增的词。

clear all

cd E:/分词与情感分析

tempname handle

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

file write `handle' `"import pynlpir"' _n

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

file write `handle' `"os.chdir("E:/分词与情感分析/")"' _n //改变工作路径到“E:/分词与情感分析”

file write `handle' `"pynlpir.open(encoding="utf8")"' _n

file write `handle' `"pynlpir.nlpir.ImportUserDict(b"dict.txt")"' _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 = pynlpir.segment(string, pos_tagging=True)"' _n

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


从运行结果我们可以看到,“江南皮革厂”变成了一个词。

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



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

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

文字编辑:王    悦

技术总编:刘贝贝



往期推文推荐:

1. 高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3. 命令 sum2docx 输出统计量表到 docx 文件

4. reg2docx 报告你的实证结果吧!

5. 爬虫俱乐部又出新命令了 ——wordconvert 转换你的 word 文件

6. putdocx+wordconvert— 将实证结果输出到 Word .docx )文档

7. Stata 15 Markdown—— 没有做不到,只有想不到!

8.







请到「今天看啥」查看全文