当前位置:   article > 正文

NLP各种词库_nlp 寒暄词库

nlp 寒暄词库

https://github.com/xianhu/funNLP

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

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

涉及内容包括:中英文敏感词、语言检测、中外手机/电话归属地/运营商查询、名字推断性别、手机号抽取、身份证抽取、邮箱抽取、中日文人名库、中文缩写库、拆字词典、词汇情感值、停用词、反动词表、暴恐词表、繁简体转换、英文模拟中文发音、汪峰歌词生成器、职业名称词库、同义词库、反义词库、否定词库、汽车品牌词库、汽车零件词库、连续英文切割、各种中文词向量、公司名字大全、古诗词库、IT词库、财经词库、成语词库、地名词库、历史名人词库、诗词词库、医学词库、饮食词库、法律词库、汽车词库、动物词库、中文聊天语料、中文谣言数据、百度中文问答数据集、句子相似度匹配算法集合、bert资源、文本生成&摘要相关工具、cocoNLP信息抽取工具

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

  1. >>> f = DFAFilter()
  2. >>> f.add("sexy")
  3. >>> f.filter("hello sexy baby")
  4. hello **** baby

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

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

pip install langid

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

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

pip install langdetect

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

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

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

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

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

  1. from phone import Phone
  2. p = Phone()
  3. p.find(18100065143)
  4. #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

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

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

pip install ngender

  1. >>> import ngender
  2. >>> ngender.guess('赵本山')
  3. ('male', 0.9836229687547046)
  4. >>> ngender.guess('宋丹丹')
  5. ('female', 0.9759486128949907)

7. 抽取email的正则表达式

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

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

8. 抽取phone_number的正则表达式

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

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

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

  1. 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])$'
  2. IDs = re.findall(IDCards_pattern, text, flags=0)

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

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

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

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

11. 中文缩写库:github

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

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

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

13. 词汇情感值:rainarch/SentiBridge

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

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

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

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

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

文本纠错会用到

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

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

  1. say wo i ni
  2. #说:我爱你

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

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

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

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

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

  1. >>> import wordninja
  2. >>> wordninja.split('derekanderson')
  3. ['derek', 'anderson']
  4. >>> wordninja.split('imateapot')
  5. ['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中,欢迎试用

  1. 2016679:44执行測試,结果如下
  2. Hi,all。下周一下午三点开会
  3. >> 2016-06-13 15:00:00-false
  4. 周一开会
  5. >> 2016-06-13 00:00:00-true
  6. 下下周一开会
  7. >> 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

  1. 该数据文件中,每一行为一条json格式的谣言数据,字段释义如下:
  2. rumorCode: 该条谣言的唯一编码,可以通过该编码直接访问该谣言举报页面。
  3. title: 该条谣言被举报的标题内容
  4. informerName: 举报者微博名称
  5. informerUrl: 举报者微博链接
  6. rumormongerName: 发布谣言者的微博名称
  7. rumormongerUr: 发布谣言者的微博链接
  8. rumorText: 谣言内容
  9. visitTimes: 该谣言被访问次数
  10. result: 该谣言审查结果
  11. 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 Beyondgithub

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

38. 中文事件抽取: github

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

39. cocoNLP: github

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

pip install cocoNLP

  1. >>> from cocoNLP.extractor import extractor
  2. >>> ex = extractor()
  3. >>> text = '急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,...如有线索,请迅速与警方联系:18100065143,132-6156-2938,baizhantang@sina.com.cn 和yangyangfuture at gmail dot com'
  4. # 抽取邮箱
  5. >>> emails = ex.extract_email(text)
  6. >>> print(emails)
  7. ['baizhantang@sina.com.cn', 'yangyangfuture@gmail.com.cn']
  8. # 抽取手机号
  9. >>> cellphones = ex.extract_cellphone(text,nation='CHN')
  10. >>> print(cellphones)
  11. ['18100065143', '13261562938']
  12. # 抽取手机归属地、运营商
  13. >>> cell_locs = [ex.extract_cellphone_location(cell,'CHN') for cell in cellphones]
  14. >>> print(cell_locs)
  15. cellphone_location [{'phone': '18100065143', 'province': '上海', 'city': '上海', 'zip_code': '200000', 'area_code': '021', 'phone_type': '电信'}]
  16. # 抽取地址信息
  17. >>> locations = ex.extract_locations(text)
  18. >>> print(locations)
  19. ['陕西省安康市汉滨区', '安康市汉滨区', '汉滨区']
  20. # 抽取时间点
  21. >>> times = ex.extract_time(text)
  22. >>> print(times)
  23. time {"type": "timestamp", "timestamp": "2018-11-27 11:00:00"}
  24. # 抽取人名
  25. >>> name = ex.extract_name(text)
  26. >>> print(name)
  27. 特朗普

jiebahanlp就不必说了吧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/344550
推荐阅读
相关标签
  

闽ICP备14008679号