最近,我整理了一些用于从文本中抽取结构化信息的 GitHub 库,这些库涵盖了许多实用的功能,如中英文敏感词过滤、语言检测、手机号和身份证号识别、邮箱抽取、性别推断等。以下是整理的内容,希望能帮助到需要这些工具的开发者们。
敏感词过滤是文本处理中的一个重要环节。这里介绍了一个名为 textfilter 的工具,它可以用于过滤中英文敏感词。
```python from textfilter import DFAFilter
f = DFAFilter() f.add("sexy") filtered_text = f.filter("hello sexy baby") # 输出:hello ** baby ```
准确的语言检测对于多语言应用来说非常关键。这里有两个常用的工具:langid 和 langdetect。
```python
pip install langid import langid langid.classify("This is a test") # 输出:('en', -54.41310358047485)
pip install langdetect from langdetect import detect text1 = "本篇博客主要介绍两款语言探测工具,用于区分文本到底是什么语言" text2 = 'We are pleased to introduce today a new technology' print(detect(text1)) # 输出:'zh-cn' print(detect(text2)) # 输出:'en' ```
手机号码和身份证号识别也是常见的文本处理任务。这里介绍了一个集成到 cocoNLP 中的工具,它可以帮助开发者轻松实现这些功能。
```python from cocoNLP.extractor import extractor
ex = extractor() text = '急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,...如有线索,请迅速与警方联络:18100065143,132-6156-2938,baizhantang@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']
celllocs = [ex.extractcellphonelocation(cell, 'CHN') for cell in cellphones] print(celllocs) ```
人名库在多种应用场景中都有重要作用,例如文本分词、姓名识别等。这里介绍了一个名为 Chinese-Names-Corpus 的库。
```python from cocoNLP.extractor import extractor
ex = extractor() text = '急寻特朗普,男孩,于2018年11月27号11时在陕西省安康市汉滨区走失。丢失发型短发,...如有线索,请迅速与警方联络:18100065143,132-6156-2938,baizhantang@sina.com.cn 和yangyangfuture at gmail dot com'
names = ex.extract_name(text) print(names) # 输出:['特朗普'] ```
除了上述功能外,还有许多其他有用的工具和词库,如词汇情感值、中文缩写库、拆字词典、同义词库、反义词库、否定词库等。这些工具可以应用于文本分析、情感分析、实体识别等多个领域。
以上是对一些常用文本处理工具的简要介绍。这些工具不仅在日常开发中非常实用,还可以帮助开发者更好地理解和处理文本数据。希望这些整理的内容能对大家有所帮助。
如果你有其他问题或需要更多信息,请随时告诉我。