JioNLP:一款实用的中文NLP预处理工具包

一、什么是 JioNLP?

JioNLP是一个面向NLP开发者的工具包,提供了常见的中文文本预处理、解析等功能,使用简单、高效准确、无需配置,可极大加快NLP项目的开发进度。

主要特点包括:

  • 代码开源,使用MIT协议
  • 功能丰富,涵盖多个NLP预处理需求
  • 使用简单,无需复杂配置即可调用
  • 准确高效,算法经过精心设计和性能优化
  • 文档完善,提供详细使用说明

二、JioNLP功能

文本预处理

  • 关键短语抽取
  • 文本摘要
  • 停用词过滤
  • 分句
  • 文本清洗(去除异常字符、HTML标签等)

命名实体识别

  • 地址解析(省市县区乡村)
  • 新闻地名识别
  • 手机号/座机号归属地查询
  • 车牌号解析
  • 身份证号解析
  • 时间语义解析

正则抽取和替换

  • 抽取Email/URL/电话号码/IP等
  • 替换/删除上述实体字符串
  • 抽取括号/金额/QQ等信息

词典加载

  • 中国省市县地名词典
  • 世界国家城市词典
  • 成语/歇后语词典
  • 新华字/词典

语料处理

  • 按行读写文件
  • 分词/命名实体语料处理辅助
  • 情感分析词典

数据增强

  • 同音字替换
  • 实体替换
  • 邻近字符换位
  • 回译

可见,JioNLP囊括了NLP预处理中常见的需求,且还在不断完善和扩充功能中。

三、使用示例

Python安装

复制代码
pip install jionlp

地址解析

复制代码
import jionlp as jio

text = "我现在的位置是四川省成都市武侯区红牌楼街19号"
res = jio.parse_location(text, town_village=True)
print(res)

输出:

复制代码
{'province': '四川省', 'city': '成都市', 'county': '武侯区', 'town': '红牌楼街道','village': None, 'detail': '红牌楼街道19号','full_location': '四川省成都市武侯区红牌楼街道19号','orig_location': '武侯区红牌楼街19号'}

可以看到,JioNLP准确解析出了文本中的省市区县街道等地址信息,并以字典形式返回,非常方便。

货币金额抽取

复制代码
import json
import jionlp as jio
text = '张三赔偿李大花人民币车费601,293.11元,工厂费大约一万二千三百四十五元,利息9佰日元,打印费十块钱。'
res = jio.ner.extract_money(text, with_parsing=False)
print(json.dumps(res, ensure_ascii=False, indent=4, separators=(',', ':')))

输出:

复制代码
[{'text': '601,293.11元', 'offset': [12, 23], 'type': 'money'},
 {'text': '大约一万二千三百四十五元', 'offset': [27, 39], 'type': 'money'},
{'text': '9佰日元', 'offset': [42, 46], 'type': 'money'},
{'text': '人民币十块钱', 'offset': [50, 56], 'type': 'money'}]

四、总结

JioNLP为NLP开发者提供了实用的预处理解析工具,有效减轻了开发负担,值得去了解和使用。

相关推荐
沃达德软件18 小时前
智慧警务图像融合大数据
大数据·图像处理·人工智能·目标检测·计算机视觉·目标跟踪
QxQ么么18 小时前
移远通信(桂林)26校招-助理AI算法工程师-面试纪录
人工智能·python·算法·面试
愤怒的可乐19 小时前
从零构建大模型智能体:统一消息格式,快速接入大语言模型
人工智能·语言模型·自然语言处理
每天一个java小知识20 小时前
AI Agent
人工智能
猫头虎20 小时前
如何解决 pip install 编译报错 fatal error: hdf5.h: No such file or directory(h5py)问题
人工智能·python·pycharm·开源·beautifulsoup·ai编程·pip
龙赤子20 小时前
人工智能AI的大框架
人工智能
比奥利奥还傲.20 小时前
本地+AI+大模型自由用!Cherry+Studio打破局域网限制
人工智能
雪碧聊技术20 小时前
深度学习、机器学习、人工智能三者的关系
人工智能·深度学习·机器学习
β添砖java20 小时前
机器学习初级
人工智能·机器学习
陈奕昆20 小时前
n8n实战营Day3:电商订单全流程自动化·需求分析与流程拆解
大数据·开发语言·人工智能·自动化·需求分析·n8n