funNLP/README.md
2019-06-16 15:04:54 +08:00

35 KiB
Executable File
Raw Blame History

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

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

涉及内容包括:中英文敏感词、语言检测、中外手机/电话归属地/运营商查询、名字推断性别、手机号抽取、身份证抽取、邮箱抽取、中日文人名库、中文缩写库、拆字词典、词汇情感值、停用词、反动词表、暴恐词表、繁简体转换、英文模拟中文发音、汪峰歌词生成器、职业名称词库、同义词库、反义词库、否定词库、汽车品牌词库、汽车零件词库、连续英文切割、各种中文词向量、公司名字大全、古诗词库、IT词库、财经词库、成语词库、地名词库、历史名人词库、诗词词库、医学词库、饮食词库、法律词库、汽车词库、动物词库、中文聊天语料、中文谣言数据、百度中文问答数据集、句子相似度匹配算法集合、bert资源、文本生成&摘要相关工具、cocoNLP信息抽取工具、国内电话号码正则匹配、清华大学XLORE:中英文跨语言百科知识图谱、清华大学人工智能技术系列报告、自然语言生成、NLU太难了系列、自动对联数据及机器人、用户名黑名单列表、罪名法务名词及分类模型、微信公众号语料、cs224n深度学习自然语言处理课程、中文手写汉字识别、中文自然语言处理 语料/数据集、变量命名神器、分词语料库+代码、任务型对话英文数据集、ASR 语音数据集 + 基于深度学习的中文语音识别系统、笑声检测器、Microsoft多语言数字/单位/如日期时间识别包、中华新华字典数据库及api(包括常用歇后语、成语、词语和汉字)、文档图谱自动生成、SpaCy 中文模型、Common Voice语音识别数据集新版、神经网络关系抽取、基于bert的命名实体识别、关键词(Keyphrase)抽取包pke、基于医疗领域知识图谱的问答系统、基于依存句法与语义角色标注的事件三元组抽取、依存句法分析4万句高质量标注数据、cnocr用来做中文OCR的Python3包、中文人物关系知识图谱项目、中文nlp竞赛项目及代码汇总、中文字符数据、speech-aligner: 从“人声语音”及其“语言文本”产生音素级别时间对齐标注的工具、AmpliGraph: 知识图谱表示学习(Python)库知识图谱概念链接预测、Scattertext 文本可视化(python)、语言/知识表示工具BERT & ERNIE、中文对比英文自然语言处理NLP的区别综述、Synonyms中文近义词工具包、HarvestText领域自适应文本挖掘工具新词发现-情感分析-实体链接等、word2word(Python)方便易用的多语言词-词对集62种语言/3,564个多语言对、语音识别语料生成工具从具有音频/字幕的在线视频创建自动语音识别(ASR)语料库、构建医疗实体识别的模型包含词典和语料标注、单文档非监督的关键词抽取、Kashgari中使用gpt-2语言模型、开源的金融投资数据提取工具、文本自动摘要库TextTeaser: 仅支持英文、人民日报语料处理工具集、一些关于自然语言的基本模型、基于14W歌曲知识库的问答尝试--功能包括歌词接龙and已知歌词找歌曲以及歌曲歌手歌词三角关系的问答、基于Siamese bilstm模型的相似句子判定模型并提供训练数据集和测试数据集、用Transformer编解码模型实现的根据Hacker News文章标题自动生成评论、用BERT进行序列标记和文本分类的模板代码、LitBankNLP数据集——支持自然语言处理和计算人文学科任务的100部带标记英文小说语料、百度开源的基准信息抽取系统、虚假新闻数据集、Facebook: LAMA语言模型分析提供Transformer-XL/BERT/ELMo/GPT预训练语言模型的统一访问接口、CommonsenseQA面向常识的英文QA挑战、中文知识图谱资料、数据及工具、各大公司内部里大牛分享的技术文档 PDF 或者 PPT、自然语言生成SQL语句英文、中文NLP数据增强EDA工具、英文NLP数据增强工具 、基于医药知识图谱的智能问答系统、京东商品知识图谱、基于mongodb存储的军事领域知识图谱问答项目、基于远监督的中文关系抽取、语音情感分析、中文ULMFiT-情感分析-文本分类-语料及模型、一个拍照做题程序、世界各国大规模人名库、一个利用有趣中文语料库 qingyun 训练出来的中文聊天机器人、中文聊天机器人seqGAN、省市区镇行政区划数据带拼音标注

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

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

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

2. langid97种语言检测 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 engineetinyfool/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执行測試结果如下

Hiall。下周一下午三点开会

>> 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资源

  • bert论文中文翻译: link
  • bert原作者的slides: link 提取码: iarj

  • 文本分类实践: github

  • bert tutorial文本分类教程: github

  • bert pytorch实现: github

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

  • BERT生成句向量BERT做文本分类、文本相似度计算github

  • bert 基于 keras 的封装分类标注框架 Kashgari几分钟即可搭建一个分类或者序列标注模型: 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时在陕西省安康市汉滨区走失。丢失发型短发...如有线索请迅速与警方联系18100065143132-6156-2938baizhantang@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领域相关的报告内容包含

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

44.: jiebahanlp就不必介绍了吧。

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是微信公众号IDtitle是题目content是正文

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

  • 课程中模型的pytorch实现 link
  • 面向深度学习研究人员的自然语言处理实例教程 link

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

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

53.变量命名神器:github link

54.分词语料库+代码:百度网盘链接

55. NLP新书推荐《Natural Language Processing》by Jacob Eisenstein link

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

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

58. 笑声检测器: github

59. Microsoft多语言数字/单位/如日期时间识别包: [github](https://github.com/Microsoft/Recognizers-Text

60. chinese-xinhua 中华新华字典数据库及api包括常用歇后语、成语、词语和汉字 github

61. 文档图谱自动生成 github

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

62. SpaCy 中文模型 github

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

63. Common Voice语音识别数据集新版 link

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

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

  • 暂不支持中文

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

  • 暂不支持中文

66. 关键词(Keyphrase)抽取包 pke github
pke: an open source python-based keyphrase extraction toolkit

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

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

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

69. 依存句法分析4万句高质量标注数据 by 苏州大学汉语依存树库SUCDT Homepage 数据下载详见homepage底部需要签署协议需要邮件接收解压密码。

70. cnocr用来做中文OCR的Python3包自带了训练好的识别模型 github

71. 中文人物关系知识图谱项目 github

  • 中文人物关系图谱构建
  • 基于知识库的数据回标
  • 基于远程监督与bootstrapping方法的人物关系抽取
  • 基于知识图谱的知识问答等应用

72. 中文nlp竞赛项目及代码汇总 github

  • 文本生成、文本摘要Byte Cup 2018 国际机器学习竞赛
  • 知识图谱瑞金医院MMC人工智能辅助构建知识图谱大赛
  • 视频识别 问答2018之江杯全球人工智能大赛视频识别&问答

73. 中文字符数据 github

  • 简/繁体汉字笔顺
  • 矢量笔画

74. speech-aligner: 从“人声语音”及其“语言文本”,产生音素级别时间对齐标注的工具 github

75. AmpliGraph: 知识图谱表示学习(Python)库:知识图谱概念链接预测 github

  • 埃森哲出品,目前尚不支持中文

76. Scattertext 文本可视化(python) github

  • 很好用的工具包,简单修改后可支持中文
  • 能否分析出某个类别的文本与其他文本的用词差异

77. 语言/知识表示工具BERT & ERNIE github

  • 百度出品ERNIE也号称在多项nlp任务中击败了bert

78. 中文对比英文自然语言处理NLP的区别综述 link

79. Synonyms中文近义词工具包 github

  • Synonyms 中文近义词工具包,可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等

80. HarvestText领域自适应文本挖掘工具新词发现-情感分析-实体链接等) github

81. word2word(Python)方便易用的多语言词-词对集62种语言/3,564个多语言对 github

82. 语音识别语料生成工具:从具有音频/字幕的在线视频创建自动语音识别(ASR)语料库 github

83. ASR语音大辞典/词典: github

84. 构建医疗实体识别的模型包含词典和语料标注基于python: github

85. 单文档非监督的关键词抽取: github

86. Kashgari中使用gpt-2语言模型 github

87. 开源的金融投资数据提取工具 github

88. 文本自动摘要库TextTeaser: 仅支持英文 github

89. 人民日报语料处理工具集 github

90. 一些关于自然语言的基本模型 github

91. 基于14W歌曲知识库的问答尝试功能包括歌词接龙已知歌词找歌曲以及歌曲歌手歌词三角关系的问答 github

92. 基于Siamese bilstm模型的相似句子判定模型,提供训练数据集和测试数据集 github

  • 提供了10万个训练样本

93. 用Transformer编解码模型实现的根据Hacker News文章标题自动生成评论 github

94. 用BERT进行序列标记和文本分类的模板代码 github

95. LitBankNLP数据集——支持自然语言处理和计算人文学科任务的100部带标记英文小说语料 github

96. 百度开源的基准信息抽取系统 github

97. 虚假新闻数据集 fake news corpus github

98. Facebook: LAMA语言模型分析提供Transformer-XL/BERT/ELMo/GPT预训练语言模型的统一访问接口 github

99. CommonsenseQA面向常识的英文QA挑战 link

100. 中文知识图谱资料、数据及工具 github

101. 各大公司内部里大牛分享的技术文档 PDF 或者 PPT github

102. 自然语言生成SQL语句英文 github

103. 中文NLP数据增强EDA工具 github

  • 英文NLP数据增强工具 github

104. 基于医药知识图谱的智能问答系统 github

105. 京东商品知识图谱 github

  • 基于京东网站的1300种商品上下级概念约10万商品品牌约65万品牌销售关系商品描述维度等知识库基于该知识库可以支持商品属性库构建商品销售问答品牌物品生产等知识查询服务也可用于情感分析等下游应用

106. 基于mongodb存储的军事领域知识图谱问答项目 github

  • 基于mongodb存储的军事领域知识图谱问答项目包括飞行器、太空装备等8大类100余小类共计5800项的军事武器知识库该项目不使用图数据库进行存储通过jieba进行问句解析问句实体项识别基于查询模板完成多类问题的查询主要是提供一种工业界的问答思想demo。

107. 基于远监督的中文关系抽取 github

108. 语音情感分析 github

109. 中文ULMFiT 情感分析 文本分类 语料及模型 github

110. 一个拍照做题程序。输入一张包含数学计算题的图片,输出识别出的数学计算式以及计算结果 github

111. 世界各国大规模人名库 github

112. 一个利用有趣中文语料库 qingyun 训练出来的中文聊天机器人 github

  • 使用了青云语料10万语料本repo中也有该语料的链接

113. 中文聊天机器人, 根据自己的语料训练出自己想要的聊天机器人,可以用于智能客服、在线问答、智能聊天等场景 github

  • 根据自己的语料训练出自己想要的聊天机器人可以用于智能客服、在线问答、智能聊天等场景。加入seqGAN版本。
  • repo中提供了一份质量不太高的语料

114. 省市区镇行政区划数据带拼音标注 github

  • 国家统计局中的省市区镇行政区划数据带拼音标注高德地图的坐标和行政区域边界范围在浏览器里面运行js代码采集的2019年发布的最新数据含采集源码提供csv格式数据支持csv转成省市区多级联动js代码
  • 坐标、边界范围、名称、拼音、行政区等多级地址