有趣的自然語言處理資源集錦
最近需要從文字中抽取結構化資訊,用到了很多github上的包,遂整理了一下,後續會不斷更新。 詳見ofollow,noindex">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_.-]+@[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. 詞彙情感值:Express%2FCCF_data%2Fpair_mine_result" rel="nofollow,noindex">rainarch/SentiBridge
山泉水充沛0.4007045665410.370067395878 視野寬廣0.3057627289320.325320747491 大峽谷驚險0.3121379065170.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: 該謠言被舉報時間 複製程式碼