大数跨境
0
0

cocoNLP的安装及使用:提取中文文本信息

cocoNLP的安装及使用:提取中文文本信息 数据皮皮侠
2020-04-03
0
导读:本文提供一个关于中文文本信息的练习例子,及运用过程可能出现的问题及解决方案。


   项目地址

  https://github.com/fighting41love/cocoNLP


文本数据提取有其广泛的应用领域,从报纸上提取有用的信息来完成智能报纸读取,例如,读取文本中的关键词,电话号码,姓名,地址等信息,然后,对其进行分析,本文提供一个关于中文文本信息的练习例子,而且非常有趣。
为便于大家使用,整理了操作过程中的踩坑集锦






安装






法一:命令行执行


pip install cocoNLP
踩坑一:这个方法遇到了很多的问题,起初是缓存问题,解决之后,使用了镜像加速安装在 downloading加载,等了一会儿直接出了错,后来就采取了法二,也可以参考https://blog.csdn.net/weixin_44912159/article/details/103450238采取法一。
法二:Spyder console输入


!pip install cocoNLP
这个方法可能需要大家稍等片刻就安装好了。







代码使用




抽取基本信息


抽取电话、邮箱、身份证号、地址、日期时间、人名等。

  
from cocoNLP.extractor import extractorex = extractor()text = '急寻贝斯特,男孩,于2020年3月30日10时25分在四川省成都市双流区走失。走失发型寸头,上穿粉红色衣服,下穿牛仔裤,脚穿白色板鞋,身份证为410105196904010537。如有线索,速与警方联系:18100065143,132-6165-2938,xiaowangwang@sina.com.cn 和dawangwang at gmail dot com'#抽取邮箱emails = ex.extract_email(text)print(emails)['xiaowangwang@sina.com.cn', 'dawangwang@gmail.com']
#抽取手机号cellphones = ex.extract_cellphone(text,nation='CHN')print(cellphones)['18100065143', '13261652938']
#抽取身份证号ids = ex.extract_ids(text)print(ids)['410105196904010537']
#抽取手机归属地、运营商cell_locs = [ex.extract_cellphone_location(cell,'CHN') for cell incellphones]print(cell_locs)[{'phone': '18100065143', 'province': '上海', 'city': '上海', 'zip_code':'200000', 'area_code': '021', 'phone_type': '电信'}, {'phone':'13261652938', 'province': '北京', 'city': '北京', 'zip_code': '100000','area_code': '010', 'phone_type': '联通'}]
#抽取地址信息locations = ex.extract_locations(text)print(locations)['四川省成都市双流区', '成都市双流区', '双流区']
#抽取时间点times = ex.extract_time(text)print(times){"type": "timestamp", "timestamp": "2020-03-30 10:25:00"}
#抽取人名name = ex.extract_name(text)print(name)贝斯特


踩坑二:运行第一行代后,可能会弹出问题,出现一个网址下载jdk8,这是因为虽然包本身是用python写的,不过它的一个依赖HanLP 是基于jtype用python来调用java包的。这也就是说,要使用这个包,本身要具有python和java的环境才行。所以大家下载号jdk8调好路径就可以成功运行了。


关键词抽取 


抽取关键词,打分并进行排名。

from cocoNLP.config.phrase import raker = rake.Rake()#给定字符串列表的提取,其中每个字符串是一个句子。r.extract_keywords_from_sentences(['英国《镜报》29日报道称,哈里和梅根已经离开加拿大,准备定居美国洛杉矶。对此,特朗普在社交平台上表态,美国不会为两人支付安保费,他们必须自理。对于特朗普的明确态度,哈里梅根的发言人回应称,他们并没打算让美国支付这笔安保费用,已经得到私人资助。英媒称,哈里和梅根离开加拿大来美国是为了避免支付两笔重税。如果两人长居美国,将会产生每年800万英镑(约7200万人民币)的安保费用。一项民意调查显示,超过90%民众认为哈里和梅根应该自己买单。据悉,哈里王子夫妇将于3月31日正式脱离王室头衔,不再是“国际受保护人士”。'],2,7)#抽取的关键词按照排序rank,从高到低ranked_words = r.get_ranked_phrases()#抽取的关键词按照排序rank,带rank分从高到低ranked_words_score = r.get_ranked_phrases_with_scores()for ele in ranked_words_score: print(ele)(25.0, '将会 产生 每年 800 万英镑')(23.333333333333332, '超过 90% 民众 认为 哈里')(20.333333333333332, '美国 支付 这笔 安保 费用')(16.333333333333332, '避免 支付 两笔 重税')(16.333333333333332, '两人 支付 安 保费')(16.0, '社交 平台 上 表态')(16.0, '国际 受 保护 人士')(16.0, '准备 定居 美国 洛杉矶')(15.5, '29 日 报道 称')(10.0, '两人长 居 美国')(9.5, '发言人 回应 称')(9.333333333333334, '哈里 王子 夫妇')(9.0, '一项 民意调查 显示')(9.0, '7200 万 人民币')(7.5, '梅根 离开 加拿大')(7.0, '安保 费用')(5.833333333333334, '哈里 梅根')(5.0, '离开 加拿大')(4.0, '私人 资助')(4.0, '明确 态度')


踩坑三:运行第二行代码时,如果出现了解码问题,此时需要查看源代码,在源代码打开停用词处加上 encoding='utf-8'就好了。




☆ END ☆



【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 3402
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读3.1k
粉丝0
内容3.4k