有趣的自然語言處理資源集錦
最近需要從文字中抽取結構化資訊,用到了很多github上的包,遂整理了一下,後續會不斷更新。 詳見fighting41love/funNLP
很多包非常有趣,值得收藏,滿足大家的收集癖! 如果覺得有用,請分享並star,謝謝!
涉及內容包括:中英文敏感詞、語言檢測、中外手機/電話歸屬地/運營商查詢、名字推斷性別、手機號抽取、身份證抽取、郵箱抽取、中日文人名庫、中文縮寫庫、拆字詞典、詞彙情感值、停用詞、反動詞表、暴恐詞表、繁簡體轉換、英文模擬中文發音、汪峰歌詞生成器、職業名稱詞庫、同義詞庫、反義詞庫、否定詞庫、汽車品牌詞庫、汽車零件詞庫、連續英文切割、各種中文詞向量、公司名字大全、古詩詞庫、IT詞庫、財經詞庫、成語詞庫、地名詞庫、歷史名人詞庫、詩詞詞庫、醫學詞庫、飲食詞庫、法律詞庫、汽車詞庫、動物詞庫、中文聊天語料、中文謠言資料
1. textfilter: 中英文敏感詞過濾 observerss/textfilter
>>> f = DFAFilter()
>>> f.add("sexy")
>>> f.filter("hello sexy baby")
hello **** baby
複製程式碼
敏感詞包括政治、髒話等話題詞彙。其原理主要是基於詞典的查詢(專案中的keyword檔案),內容很勁爆。。。
2. langid:97種語言檢測 github.com/saffsd/lang…
pip install langid
>>> import langid
>>> langid.classify("This is a test" )
('en', -54.41310358047485)
複製程式碼
3. langdetect:另一個語言檢測code.google.com/archive/p/l…
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
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的正則表示式
email_pattern = '^[*#\u4e00-\u9fa5 a-zA-Z0-9_.-][email protected][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}$'
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
中文(現代、古代)名字、日文名字、中文的姓和名、稱呼(大姨媽、小姨媽等)、英文->中文名字(李約翰)、成語詞典
複製程式碼
(可用於中文分詞、姓名識別)
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. 時間抽取:
在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
中文詞向量大全
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: 該謠言被舉報時間
複製程式碼