- 词库
- 工具包
- 学习资料
在入门到熟悉NLP的过程中,用到了很多github上的包,遂整理了一下,分享在这里。
很多包非常有趣,值得收藏,满足大家的收集癖!
1. textfilter: 中英文过滤词 observerss/textfilter
- >>> f = DFAFilter() >>> f.add("sexy") >>> f.filter("hello sexy baby") hello **** baby
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的正则表达式
cellphone_pattern = '^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$'已集成到 python package cocoNLP中,欢迎试用
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
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. 无空格英文串分割、抽取单词:wordninja
- >>> 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
27. 各种中文词向量: github repo
中文词向量大全
一共300个,这里只展示部分。
关注公 众 号,获取全部内容
关注“CDA人工智能学院”,回复“NLP”获取更多中文NLP资源库!