funNLP: 从文本中抽取结构化信息的超级资源包

2019 年 1 月 25 日 AINLP

作者:杨洋(mountain blue)

知乎专栏:机器学习小知识

Github链接,可点击文末"阅读原文“直达:

https://github.com/fighting41love/funNLP


继续分享杨洋同学整理的一个超级资源包:funNLP,这是作者在文本中抽取结构化信息时,整理出所用到 GitHub 上的资源整合,内容包括:中英文敏感词、语言检测、中外手机/电话归属地/运营商查询、名字推断性别、手机号抽取、身份证抽取等等。以下信息来自Github原文,点击文末阅读原文可直达相关链接。






最近需要从文本中抽取结构化信息,用到了很多github上的包,遂整理了一下,后续会不断更新。

很多包非常有趣,值得收藏,满足大家的收集癖! 如果觉得有用,请分享并star,谢谢!

涉及内容包括:中英文敏感词、语言检测、中外手机/电话归属地/运营商查询、名字推断性别、手机号抽取、身份证抽取、邮箱抽取、中日文人名库、中文缩写库、拆字词典、词汇情感值、停用词、反动词表、暴恐词表、繁简体转换、英文模拟中文发音、汪峰歌词生成器、职业名称词库、同义词库、反义词库、否定词库、汽车品牌词库、汽车零件词库、连续英文切割、各种中文词向量、公司名字大全、古诗词库、IT词库、财经词库、成语词库、地名词库、历史名人词库、诗词词库、医学词库、饮食词库、法律词库、汽车词库、动物词库、中文聊天语料、中文谣言数据、百度中文问答数据集、句子相似度匹配算法集合、bert资源、文本生成&摘要相关工具、cocoNLP信息抽取工具、国内电话号码正则匹配、清华大学XLORE:中英文跨语言百科知识图谱、清华大学人工智能技术系列报告、自然语言生成、NLP太难了系列、自动对联数据及机器人、用户名黑名单列表、罪名法务名词及分类模型、微信公众号语料、cs224n深度学习自然语言处理课程、中文手写汉字识别、中文自然语言处理 语料/数据集、变量命名神器

1. textfilter: 中英文敏感词过滤 observerss/textfilter

 >>> f = DFAFilter()
 >>> f.add("sexy")
 >>> f.filter("hello sexy baby")
 hello **** baby

敏感词包括政治、脏话等话题词汇。其原理主要是基于词典的查找(项目中的keyword文件),内容很劲爆。。。

2. langid:97种语言检测 https://github.com/saffsd/langid.py

pip install langid

>>> import langid
>>> langid.classify("This is a test")
('en', -54.41310358047485)

3. langdetect:另一个语言检测https://code.google.com/archive/p/language-detection/

pip install langdetect

from langdetect import detect
from langdetect import detect_langs

s1 = "本篇博客主要介绍两款语言探测工具,用于区分文本到底是什么语言,"
s2 = 'We are pleased to introduce today a new technology'
print(detect(s1))
print(detect(s2))
print(detect_langs(s3))    # detect_langs()输出探测出的所有语言类型及其所占的比例

输出结果如下: 注:语言类型主要参考的是ISO 639-1语言编码标准,详见ISO 639-1百度百科

跟上一个语言检测比较,准确率低,效率高。

4. phone 中国手机归属地查询: ls0f/phone

已集成到 python package cocoNLP中,欢迎试用

from phone import Phone
p  = Phone()
p.find(18100065143)
#return {'phone': '18100065143', 'province': '上海', 'city': '上海', 'zip_code': '200000', 'area_code': '021', 'phone_type': '电信'}

支持号段: 13*,15*,18*,14[5,7],17[0,6,7,8]

记录条数: 360569 (updated:2017年4月)

作者提供了数据phone.dat 方便非python用户Load数据。

5. phone国际手机、电话归属地查询:AfterShip/phone

npm install phone

import phone from 'phone';
phone('+852 6569-8900'); // return ['+85265698900', 'HKG']
phone('(817) 569-8900'); // return ['+18175698900, 'USA']

6. ngender 根据名字判断性别:observerss/ngender 基于朴素贝叶斯计算的概率

pip install ngender

>>> import ngender
>>> ngender.guess('赵本山')
('male', 0.9836229687547046)
>>> ngender.guess('宋丹丹')
('female', 0.9759486128949907)

7. 抽取email的正则表达式

已集成到 python package cocoNLP中,欢迎试用

email_pattern = '^[*#\u4e00-\u9fa5 a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$'
emails = re.findall(email_pattern, text, flags=0)

8. 抽取phone_number的正则表达式

已集成到 python package cocoNLP中,欢迎试用

cellphone_pattern = '^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$'
phoneNumbers = re.findall(cellphone_pattern, text, flags=0)

9. 抽取身份证号的正则表达式

IDCards_pattern = r'^([1-9]\d{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX])$'
IDs = re.findall(IDCards_pattern, text, flags=0)

10. 人名语料库: wainshine/Chinese-Names-Corpus

人名抽取功能 python package cocoNLP,欢迎试用

中文(现代、古代)名字、日文名字、中文的姓和名、称呼(大姨妈、小姨妈等)、英文->中文名字(李约翰)、成语词典

(可用于中文分词、姓名识别)

11. 中文缩写库:github

全国人大: 全国/n 人民/n 代表大会/n
中国: 中华人民共和国/ns
女网赛: 女子/n 网球/n 比赛/vn

12. 汉语拆字词典:kfcd/chaizi

漢字	拆法 (一)	拆法 (二)	拆法 (三)
拆	手 斥	扌 斥	才 斥

13. 词汇情感值:rainarch/SentiBridge

山泉水	充沛	0.400704566541	0.370067395878
视野	        宽广	0.305762728932	0.325320747491
大峡谷	惊险	0.312137906517	0.378594957281

14. 中文词库、停用词、敏感词 dongxiexidian/Chinese

此package的敏感词库分类更细:

反动词库, 敏感词库表统计, 暴恐词库, 民生词库, 色情词库

15. 汉字转拼音:mozillazg/python-pinyin

文本纠错会用到

16. 中文繁简体互转:skydark/nstools

17. 英文模拟中文发音引擎 funny chinese text to speech enginee:tinyfool/ChineseWithEnglish

say wo i ni
#说:我爱你

相当于用英文音标,模拟中文发音。

18. 汪峰歌词生成器:phunterlau/wangfeng-rnn

我在这里中的夜里
就像一场是一种生命的意旪
就像我的生活变得在我一样
可我们这是一个知道
我只是一天你会怎吗

19. 同义词库、反义词库、否定词库:guotong1988/chinese_dictionary

20. 无空格英文串分割、抽取单词:wordinja

>>> import wordninja
>>> wordninja.split('derekanderson')
['derek', 'anderson']
>>> wordninja.split('imateapot')
['im', 'a', 'teapot']

21. IP地址正则表达式:

(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)

22. 腾讯QQ号正则表达式:

[1-9]([0-9]{5,11})

23. 国内固话号码正则表达式:

[0-9-()()]{7,18}

24. 用户名正则表达式:

[A-Za-z0-9_\-\u4e00-\u9fa5]+

25. 汽车品牌、汽车零件相关词汇:

见本repo的data文件 [data](https://github.com/fighting41love/funNLP/tree/master/data)

26. 时间抽取:

已集成到 python package cocoNLP中,欢迎试用

在2016年6月7日9:44执行測試,结果如下

Hi,all。下周一下午三点开会

>> 2016-06-13 15:00:00-false

周一开会

>> 2016-06-13 00:00:00-true

下下周一开会

>> 2016-06-20 00:00:00-true

java version

python version

27. 各种中文词向量: github repo

中文词向量大全

28. 公司名字大全: github repo

29. 古诗词库: github repo 更全的古诗词库

30. THU整理的词库: link

已整理到本repo的data文件夹中.

IT词库、财经词库、成语词库、地名词库、历史名人词库、诗词词库、医学词库、饮食词库、法律词库、汽车词库、动物词库

31. 中文聊天语料 link

该库搜集了包含:豆瓣多轮, PTT八卦语料, 青云语料, 电视剧对白语料, 贴吧论坛回帖语料,微博语料,小黄鸡语料

32. 中文谣言数据: github

该数据文件中,每一行为一条json格式的谣言数据,字段释义如下:

rumorCode: 该条谣言的唯一编码,可以通过该编码直接访问该谣言举报页面。
title: 该条谣言被举报的标题内容
informerName: 举报者微博名称
informerUrl: 举报者微博链接
rumormongerName: 发布谣言者的微博名称
rumormongerUr: 发布谣言者的微博链接
rumorText: 谣言内容
visitTimes: 该谣言被访问次数
result: 该谣言审查结果
publishTime: 该谣言被举报时间

33. 情感波动分析:github

词库已整理到本repo的data文件夹中.

本repo项目是一个通过与人对话获得其情感值波动图谱, 内用词库在data文件夹中.

34. 百度中文问答数据集:链接 提取码: 2dva

35. 句子、QA相似度匹配:MatchZoo github

文本相似度匹配算法的集合,包含多个深度学习的方法,值得尝试。

36. bert资源:

  • 文本分类实践: github

  • bert tutorial文本分类教程: github

  • bert pytorch实现: github

  • bert用于中文命名实体识别 tensorflow版本: github

  • bert、ELMO的图解: github

  • BERT: Pre-trained models and downstream applications: github

37. Texar - Toolkit for Text Generation and Beyond: github

基于Tensorflow的开源工具包,旨在支持广泛的机器学习,特别是文本生成任务,如机器翻译、对话、摘要、内容处置、语言建模等

38. 中文事件抽取: github

中文复合事件抽取,包括条件事件、因果事件、顺承事件、反转事件等事件抽取,并形成事理图谱。

39. cocoNLP: github

人名、地址、邮箱、手机号、手机归属地 等信息的抽取,rake短语抽取算法。

pip install cocoNLP

>>> from cocoNLP.extractor import extractor

>>> ex = extractor()

>>> text = '急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,...如有线索,请迅速与警方联系:18100065143,132-6156-2938,baizhantang@sina.com.cn 和yangyangfuture at gmail dot com'

# 抽取邮箱
>>> emails = ex.extract_email(text)
>>> print(emails)

['baizhantang@sina.com.cn', 'yangyangfuture@gmail.com.cn']
# 抽取手机号
>>> cellphones = ex.extract_cellphone(text,nation='CHN')
>>> print(cellphones)

['18100065143', '13261562938']
# 抽取手机归属地、运营商
>>> cell_locs = [ex.extract_cellphone_location(cell,'CHN') for cell in cellphones]
>>> print(cell_locs)

cellphone_location [{'phone': '18100065143', 'province': '上海', 'city': '上海', 'zip_code': '200000', 'area_code': '021', 'phone_type': '电信'}]
# 抽取地址信息
>>> locations = ex.extract_locations(text)
>>> print(locations)
['陕西省安康市汉滨区', '安康市汉滨区', '汉滨区']
# 抽取时间点
>>> times = ex.extract_time(text)
>>> print(times)
time {"type": "timestamp", "timestamp": "2018-11-27 11:00:00"}
# 抽取人名
>>> name = ex.extract_name(text)
>>> print(name)
特朗普

40. 国内电话号码正则匹配(三大运营商+虚拟等): github

41. 清华大学XLORE:中英文跨语言百科知识图谱: link
上述链接中包含了所有实体及关系的TTL文件,更多数据将在近期发布。 概念,实例,属性和上下位关系数目


百度 中文维基 英文维基 总数
概念数量 32,009 150,241 326,518 508,768
实例数量 1,629,591 640,622 1,235,178 3,505,391
属性数量 157,370 45,190 26,723 229.283
InstanceOf 7,584,931 1,449,925 3,032,515 12,067,371
SubClassOf 2,784 191,577 555,538 749,899

跨语言连接(概念/实例)


百度 中文维基 英文维基
百度 - 10,216/336,890 4,846/303,108
中文维基 10,216/336,890 - 28,921/454,579
英文维基 4,846/303,108 28,921/454,579 -

42. 清华大学人工智能技术系列报告: link
每年会出AI领域相关的报告,内容包含

  • 自然语言处理 link

  • 知识图谱 link

  • 数据挖掘 link

  • 自动驾驶 link

  • 机器翻译 link

  • 区块链 link

  • 机器人 link

  • 计算机图形学 link

  • 3D打印 link

  • 人脸识别 link

  • 人工智能芯片 link

  • 等等

43.自然语言生成方面:
Ehud Reiter教授的博客 北大万小军教授强力推荐,该博客对NLG技术、评价与应用进行了深入的探讨与反思。
文本生成相关资源大列表
自然语言生成:让机器掌握自动创作的本领 - 开放域对话生成及在微软小冰中的实践
文本生成控制

44.: jieba和hanlp就不必介绍了吧。

45.NLP太难了系列: github

  • 来到杨过曾经生活过的地方,小龙女动情地说:“我也想过过过儿过过的生活。”

  • 来到儿子等校车的地方,邓超对孙俪说:“我也想等等等等等过的那辆车。”

  • 赵敏说:我也想控忌忌己不想无忌。

  • 你也想犯范范范玮琪犯过的错吗

  • 对叙打击是一次性行为?

46.自动对联数据及机器人:
70万对联数据 link
代码 link

上联 下联
殷勤怕负三春意 潇洒难书一字愁
如此清秋何吝酒 这般明月不须钱

47.用户名黑名单列表: github 包含了用户名禁用列表,比如: link

administrator
administration
autoconfig
autodiscover
broadcasthost
domain
editor
guest
host
hostmaster
info
keybase.txt
localdomain
localhost
master
mail
mail0
mail1

48.罪名法务名词及分类模型: github

包含856项罪名知识图谱, 基于280万罪名训练库的罪名预测,基于20W法务问答对的13类问题分类与法律资讯问答功能

49.微信公众号语料: github

3G语料,包含部分网络抓取的微信公众号的文章,已经去除HTML,只包含了纯文本。每行一篇,是JSON格式,name是微信公众号名字,account是微信公众号ID,title是题目,content是正文

50.cs224n深度学习自然语言处理课程:link

51.中文手写汉字识别:github

52.中文自然语言处理 语料/数据集:github 竞品:THUOCL(THU Open Chinese Lexicon)中文词库

53.变量命名神器:github link




登录查看更多
20

相关内容

纽约州立大学布法罗分校(University at Buffalo–SUNY)成立于 1846 年,学校于 1962 年并入纽约州立大学(SUNY)系统。作为纽约州立大学系统中的旗舰机构,纽约州立大学布法罗分校是 SUNY 系统 64 个校区的中规模最大、综合性最强的校区。同时,学校是美国大学协会的成员。纽约州立大学布法罗分校是一所致力于学术卓越的一流研究密集型公立大学。学校以坚韧乐观的文化、足智多谋的思维和务实的梦想为特色,吸引了州内和来自全球是学生。其计算机专业在 CSRankings 排名 43,USnews 排名 61,学生将受益于计算机系全面多样的研究方向: https://engineering.buffalo.edu/computer-science-engineering/research/research-areas.html
专知会员服务
215+阅读 · 2020年5月6日
【ACL2020-复旦大学NLP】异构图神经网络的文档摘要提取
专知会员服务
34+阅读 · 2020年5月1日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
【哈工大】基于抽取的高考作文生成
专知会员服务
36+阅读 · 2020年3月10日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【阿里技术干货】知识结构化在阿里小蜜中的应用
专知会员服务
96+阅读 · 2019年12月14日
资源 | 李航老师《统计学习方法》(第2版)课件下载
专知会员服务
248+阅读 · 2019年11月10日
深度学习自然语言处理综述,266篇参考文献
专知会员服务
225+阅读 · 2019年10月12日
最全中文自然语言处理数据集、平台和工具整理
深度学习与NLP
34+阅读 · 2019年6月22日
别找了,送你 20 个文本数据集
机器学习算法与Python学习
66+阅读 · 2019年5月17日
R语言自然语言处理:词性标注与命名实体识别
R语言中文社区
7+阅读 · 2019年3月5日
优质中文NLP资源集合,做项目一定用得到!
数据派THU
18+阅读 · 2019年3月3日
Jiagu:中文深度学习自然语言处理工具
AINLP
90+阅读 · 2019年2月20日
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
资源 | 中文NLP资源库
机器学习算法与Python学习
20+阅读 · 2018年11月22日
资源警告!有人收罗了40个中文NLP词库,放到了GitHub上
中国人工智能学会
9+阅读 · 2018年11月16日
自然语言处理(NLP)知识结构总结
AI100
51+阅读 · 2018年8月17日
分享 | 精选课程资源汇总
黑龙江大学自然语言处理实验室
10+阅读 · 2017年11月1日
Arxiv
4+阅读 · 2019年9月26日
Few-shot Learning: A Survey
Arxiv
362+阅读 · 2019年4月10日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
21+阅读 · 2019年3月25日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
VIP会员
相关VIP内容
专知会员服务
215+阅读 · 2020年5月6日
【ACL2020-复旦大学NLP】异构图神经网络的文档摘要提取
专知会员服务
34+阅读 · 2020年5月1日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
【哈工大】基于抽取的高考作文生成
专知会员服务
36+阅读 · 2020年3月10日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【阿里技术干货】知识结构化在阿里小蜜中的应用
专知会员服务
96+阅读 · 2019年12月14日
资源 | 李航老师《统计学习方法》(第2版)课件下载
专知会员服务
248+阅读 · 2019年11月10日
深度学习自然语言处理综述,266篇参考文献
专知会员服务
225+阅读 · 2019年10月12日
相关资讯
最全中文自然语言处理数据集、平台和工具整理
深度学习与NLP
34+阅读 · 2019年6月22日
别找了,送你 20 个文本数据集
机器学习算法与Python学习
66+阅读 · 2019年5月17日
R语言自然语言处理:词性标注与命名实体识别
R语言中文社区
7+阅读 · 2019年3月5日
优质中文NLP资源集合,做项目一定用得到!
数据派THU
18+阅读 · 2019年3月3日
Jiagu:中文深度学习自然语言处理工具
AINLP
90+阅读 · 2019年2月20日
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
资源 | 中文NLP资源库
机器学习算法与Python学习
20+阅读 · 2018年11月22日
资源警告!有人收罗了40个中文NLP词库,放到了GitHub上
中国人工智能学会
9+阅读 · 2018年11月16日
自然语言处理(NLP)知识结构总结
AI100
51+阅读 · 2018年8月17日
分享 | 精选课程资源汇总
黑龙江大学自然语言处理实验室
10+阅读 · 2017年11月1日
相关论文
Top
微信扫码咨询专知VIP会员