本人是一个文科生,本科学英语,硕士学翻译。学院里都流行的是语言学研究,我个人更喜欢的是计算语言学,看了几本书和论文之后就对计算语言学和语料库语言学深感兴趣。奈何读书那会对这些技术一窍不通,代码也看不进去,工作几年后还是对这方面感兴趣,就从10月份开始学python,做了个基础的入门,然后开始挑选适合自己的NLP技术方案。
对于技术小白来说,能少写代码就少写代码,越简单越好,因为我只是奔着一个目的来的:输入文本,处理文本,返回处理后的数据。即可。
这次我要实现的是语料库语言学研究中的TTR(Type Token Ratio)的统计,它表示的是一个文本中相同的词和所有词之间的比例关系。
举个例子:
CIPS-SIGHAN CLP 2010(国家自然科学基金(基金号:90920004))中,TTR在不同类型的文体中有着不一样的数据(下图),若以其中“文学”的数据为基准,其他作者的文本的TTR超过这个基准数据,那意味着作者在写作的时候用词丰富性不够、重复内容较多、语言较通俗易懂等,低于这个基准数据,则意味着作者用了一些生僻的词语、用词丰富性很高等。
这仅仅是语言学进行分析时的一个指标,还有很多很多其他的。这里只讨论如何用python+百度NLP去实现TTR。
本人半路出家写代码,肯定有各种各样的问题,还请各路大神出来指点,写出来的代码能运行不报错,就ok了。
为何选百度
为什么选百度?
同时留下了没有技术和没有金钱的泪水……
精挑细选(数个小时的尝试),阿里云的NLP,10万次要270块钱,腾讯文智5万次免费,百度云免费用QPS = 5 (Query Per Second,每秒请求次数(这个我当时还不知道啥意思,当超了的时候才明白是一秒只能请求多少次))。
阿里云的基础版说是有每日5万次免费额度,但是没找到在哪。文智的api和sdk,卡在了签名鉴权上,放弃。
最后只能选择百度,而且现在只写百度,以后等我学会了其他的, 我再把另外两家补上。
对于小白来说,除了python本身的一些代码我不需要查之外,剩下的都得慢慢学慢慢查,变学变进步吧!所以,技术文档的详细程度也决定我的动手能力和成果。
NLP号,启动!
(插一句,妈耶,掘金上传图片的背景颜色还会忽闪忽闪的)
环境:python 3.7,baidu-aip 模块,vscode+jupyter notebook(比心)
在shell里输入,然后等待安装完成
pip install baidu-aip复制代码
提示success之后,务必命令行里输入python,进入python后
import aip
复制代码
确认不会报错,就可以启动了!
wait,钥匙没插进去呢
在启动之前,需要去百度云控制面板获取开启本服务的APP_ID
点击左侧的应用列表,创建应用
自然语言处理无法勾选,怎么回事,哦原来是默认全选的,这些足够了,写好名称和描述(随意),立即创建,拿到发动机钥匙了!
留好,下面会用到
程序设计思路
- python读取文档内容,写入变量
- 对内容进行简单处理(去除前后空格)
- 送入百度NLP去处理
- 返回数据后提取相关数据,计算TTR
差不多就是这么个顺序,发动机,打火,启动!
好,让我们来处理一下这首朱自清的现代诗《赠友》
你的手像火把,
你的眼像波涛,
你的言语如石头,
怎能使我忘记呢?
你飞渡洞庭湖,
你飞渡扬子江;
你要建红色的天国在地上!
地上是荆棘呀,
地上是狐兔呀,
地上是行尸呀;
你将为一把快刀,
披荆斩棘的快刀!
你将为一声狮子吼,
狐兔们披靡奔走!
你将为春雷一震,
让行尸们惊醒!
我爱看你的骑马,
在尘土里驰骋---
一会儿, 不见踪影!
我爱看你的手杖,
那铁的铁