6.26. funNLP

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

很多包非常有趣,值得收藏,满足大家的收集癖!

如果觉得有用,请分享并 star,谢谢!

涉及内容包括:

  • 中英文敏感词

  • 语言检测

  • 中外手机/电话归属地/运营商查询

  • 名字推断性别

  • 手机号抽取

  • 身份证抽取

  • 邮箱抽取

  • 中日文人名库

  • 中文缩写库

  • 拆字词典

  • 词汇情感值

  • 停用词

  • 反动词表

  • 暴恐词表

  • 繁简体转换

  • 英文模拟中文发音

  • 汪峰歌词生成器

  • 职业名称词库

  • 同义词库

  • 反义词库

  • 否定词库

  • 汽车品牌词库

  • 汽车零件词库

  • 连续英文切割

  • 各种中文词向量

  • 公司名字大全

  • 古诗词库

  • IT 词库

  • 财经词库

  • 成语词库

  • 地名词库

  • 历史名人词库

  • 诗词词库

  • 医学词库

  • 饮食词库

  • 法律词库

  • 汽车词库

  • 动物词库

  • 中文聊天语料

  • 中文谣言数据

  • 百度中文问答数据集

  • 句子相似度匹配算法集合

  • bert 资源

  • 文本生成&摘要相关工具

  • cocoNLP 信息抽取工具

  • 国内电话号码正则匹配

  • 清华大学 XLORE:中英文跨语言百科知识图谱

  • 清华大学人工智能技术系列报告

  • 自然语言生成

  • NLU 太难了系列

  • 自动对联数据及机器人

  • 用户名黑名单列表

  • 罪名法务名词及分类模型

  • 微信公众号语料

  • cs224n 深度学习自然语言处理课程

  • 中文手写汉字识别

  • 中文自然语言处理 语料/数据集

  • 变量命名神器

  • 分词语料库+代码

  • 任务型对话英文数据集

  • ASR 语音数据集 + 基于深度学习的中文语音识别系统

  • 笑声检测器

  • Microsoft 多语言数字/单位/如日期时间识别包

  • 中华新华字典数据库及 api(包括常用歇后语

  • 成语

  • 词语和汉字)

  • 文档图谱自动生成

  • SpaCy 中文模型

  • Common Voice 语音识别数据集新版

  • 神经网络关系抽取

  • 基于 bert 的命名实体识别

  • 关键词(Keyphrase)抽取包 pke。

6.26.1. 1. 中英文敏感词过滤

observerss/textfilter

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

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

6.26.2. 2. 97 种语言检测

langid

pip install langid

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

6.26.3. 3. 另一个语言检测

langdetect

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 百度百科

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

6.26.4. 4. 中国手机归属地查询

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 数据。

6.26.5. 5. 国际手机电话归属地查询

AfterShip/phone

npm install phone

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

6.26.6. 6. 根据名字判断性别

observerss/ngender 基于朴素贝叶斯计算的概率

pip install ngender

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

6.26.7. 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)

6.26.8. 8. 抽取电话的正则表达式

已集成到 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)

6.26.9. 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)

6.26.10. 10. 人名语料库

wainshine/Chinese-Names-Corpus

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

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

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

6.26.11. 11. 中文缩写库

github

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

6.26.12. 12. 汉语拆字词典

kfcd/chaizi

漢字 拆法 () 拆法 () 拆法 ()
拆 手 斥 扌 斥 才 斥

6.26.13. 13. 词汇情感值

rainarch/SentiBridge

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

6.26.14. 14. 中文停用词敏感词

dongxiexidian/Chinese

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

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

6.26.15. 15. 汉字转拼音

mozillazg/python-pinyin

文本纠错会用到

6.26.16. 16. 中文繁简体互转

skydark/nstools

6.26.17. 17. 英文模拟中文发音引擎

funny chinese text to speech enginee:tinyfool/ChineseWithEnglish

say wo i ni
#说:我爱你

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

6.26.18. 18. 汪峰歌词生成器:

phunterlau/wangfeng-rnn

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

6.26.19. 19. 同义词库、反义词库、否定词库

guotong1988/chinese_dictionary

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

wordinja

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

6.26.21. 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)

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

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

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

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

6.26.24. 24. 用户名正则表达式

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

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

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

6.26.26. 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

6.26.27. 27. 中文词向量

Embedding/Chinese-Word-Vectors

中文词向量大全

6.26.28. 28. 公司名字大全

wainshine/Company-Names-Corpus

6.26.29. 29. 古诗词库:

panhaiqi/AncientPoetry 更全的古诗词库

6.26.30. 30. THU 整理的词库:

thuocl

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

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

6.26.31. 31. 中文聊天语料

codemayq/chaotbot_corpus_Chinese

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

6.26.32. 32. 中文谣言数据

thunlp/Chinese_Rumor_Dataset

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

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

6.26.33. 33. 情感波动分析

CasterWx/python-girlfriend-mood

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

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

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

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

github

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

6.26.37. 37. Texar

Toolkit for Text Generation and Beyond

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

6.26.38. 38. 中文事件抽取

liuhuanyong/ComplexEventExtraction

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

6.26.39. 39. cocoNLP

fighting41love/cocoNLP

人名、地址、邮箱、手机号、手机归属地 等信息的抽取,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)
特朗普

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

VincentSit/ChinaMobilePhoneNumberRegex

6.26.41. 41. 清华大学 XLORE:中英文跨语言百科知识图谱

xlore

上述链接中包含了所有实体及关系的 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

6.26.42. 42. 清华大学人工智能技术系列报告:

aminer

每年会出 AI 领域相关的报告,内容包含

6.26.43. 43. 自然语言生成方面

6.26.44. 44. jieba

jiebahanlp就不必介绍了吧。

6.26.45. 45. NLP 太难了系列

github

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

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

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

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

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

6.26.46. 46. 自动对联数据及机器人

上联

下联

殷勤怕负三春意

潇洒难书一字愁

如此清秋何吝酒

这般明月不须钱

6.26.47. 47. 用户名黑名单列表:

marteinn/The-Big-Username-Blacklist 包含了用户名禁用列表,比如: list_raw.txt

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

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

liuhuanyong/CrimeKgAssitant

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

6.26.49. 49. 微信公众号语料

nonamestreet/weixin_public_corpus

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

6.26.51. 51. 中文手写汉字识别

chizhanyuefeng/Chinese_OCR_CNN-RNN-CTC

6.26.52. 52. 中文自然语言处理 语料/数据集

6.26.53. 53. 变量命名神器

unbug/codelf codelf

6.26.56. 56. 任务型对话英文数据集

AtmaHou/Task-Oriented-Dialogue-Dataset-Survey 【最全任务型对话数据集】主要介绍了一份任务型对话数据集大全,这份数据集大全涵盖了到目前在任务型对话领域的所有常用数据集的主要信息。此外,为了帮助研究者更好的把握领域进展的脉络,我们以 Leaderboard 的形式给出了几个数据集上的 State-of-the-art 实验结果。

6.26.57. 57. ASR 语音数据集 + 基于深度学习的中文语音识别系统:

nl8590687/ASRT_SpeechRecognition

6.26.58. 58. 笑声检测器:

ideo/LaughDetection

6.26.59. 59. Microsoft 多语言数字/单位/如日期时间识别包:

[Microsoft/Recognizers-Text](https://github.com/Microsoft/Recognizers-Text

6.26.60. 60. chinese-xinhua

中华新华字典数据库及 api,包括常用歇后语、成语、词语和汉字

pwxcoo/chinese-xinhua

6.26.61. 61. 文档图谱自动生成

liuhuanyong/TextGrapher

  • TextGrapher - Text Content Grapher based on keyinfo extraction by NLP method。输入一篇文档,将文档进行关键信息提取,进行结构化,并最终组织成图谱组织形式,形成对文章语义信息的图谱化展示

6.26.62. 62. SpaCy 中文模型

howl-anderson/Chinese_models_for_SpaCy

  • 包含 Parser, NER, 语法树等功能。有一些英文 package 使用 spacy 的英文模型的,如果要适配中文,可能需要使用 spacy 中文模型。

6.26.63. 63. Common Voice

语音识别数据集新版

Common Voice

  • 包括来自 42,000 名贡献者超过 1,400 小时的语音样本,涵 github

6.26.64. 64. 神经网络关系抽取 pytorch

github

  • 暂不支持中文

6.26.65. 65. 基于 bert 的命名实体识别 pytorch

github

  • 暂不支持中文

6.26.66. 66. 关键词(Keyphrase)抽取包 pke

github pke: an open source python-based keyphrase extraction toolkit

  • 暂不支持中文,我于近期对其进行修改,使其适配中文。 请关注我的 github 动态,谢谢!

6.26.67. 67. 基于医疗领域知识图谱的问答系统

github

6.26.68. 68. 基于依存句法与语义角色标注的事件三元组抽取

github