/cutword

一个简单快速的分词、命名实体识别工具

Primary LanguagePythonApache License 2.0Apache-2.0

jieba不维护了,所以有了cutword。

cutword 是一个中文分词库,字典文件根据截止到2024年1月份的最新数据统计得到,词频更加合理。

分词速度是jieba的两倍。 可通过 python -m cutword.comparewithjieba 进行测试。

Note:本项目并不支持英文实体的识别。如需要英文实体的识别,推荐使用nltk。

1、安装:

pip install -U cutword

2、使用:

2.1分词功能

from  cutword import Cutter

cutter = Cutter()
res = cutter.cutword("你好,世界")
print(res)

本分词器提供两种词典库,一种是基本的词库,默认加载。一种是升级词库,升级词库总体长度会比基本词库更长一点。

如需要加载升级词库,需要将 want_long_word 设为True

from  cutword import Cutter

cutter = Cutter()
res = cutter.cutword("精诚所至,金石为开")
print(res) # ['精诚', '所', '至', ',', '金石为开']

cutter = Cutter(want_long_word=True)
res = cutter.cutword("精诚所至,金石为开")
print(res) # ['精诚所至', ',', '金石为开']

初始化Cutter时,支持传入用户自定义的词典,词典格式需要和本项目的dict文件保持一致,词典中的词性一列,暂时没有使用,可随意填写。

2.2命名实体识别

2.2.1 使用方法

from pprint import pprint
from  cutword import NER

ner = NER()
res = ner.predict(
  "奈雪的茶,新茶饮赛道开创者,创立于2015年,推出“茶饮+软欧包”双品类模式。聚焦以茶为核心的现代生活方式,奈雪已形成“现制茶饮”、“奈雪茗茶”及“RTD瓶装茶”三大业务版块,成功打造“霸气玉油柑”、“鸭屎香宝藏茶”等多款行业经典产品。",
  return_words=False
)
# 如果需要分词结果,可将return_words设为True。返回的是(res, words)
pprint(res) 
'''
[[NERItem(entity='奈雪的茶', begin=0, end=4, ner_type_en='COMMERCIAL', ner_type_zh='商业'),
  NERItem(entity='茶饮', begin=6, end=8, ner_type_en='MANUFACTURE', ner_type_zh='物品'),
  NERItem(entity='2015年', begin=17, end=22, ner_type_en='TIME', ner_type_zh='时间'),
  NERItem(entity='茶饮', begin=26, end=28, ner_type_en='MANUFACTURE', ner_type_zh='物品'),
  NERItem(entity='软欧包', begin=29, end=32, ner_type_en='MANUFACTURE', ner_type_zh='物品'),
  NERItem(entity='茶', begin=42, end=43, ner_type_en='FOOD', ner_type_zh='食品'),
  NERItem(entity='现代', begin=47, end=49, ner_type_en='TIME', ner_type_zh='时间'),
  NERItem(entity='奈雪', begin=54, end=56, ner_type_en='ORG', ner_type_zh='组织'),
  NERItem(entity='茶饮', begin=62, end=64, ner_type_en='MANUFACTURE', ner_type_zh='物品'),
  NERItem(entity='奈雪茗茶', begin=67, end=71, ner_type_en='COMMERCIAL', ner_type_zh='商业'),
  NERItem(entity='RTD瓶装茶', begin=74, end=80, ner_type_en='FOOD', ner_type_zh='食品'),
  NERItem(entity='玉油柑', begin=95, end=98, ner_type_en='FOOD', ner_type_zh='食品'),
  NERItem(entity='鸭屎香宝藏茶', begin=101, end=107, ner_type_en='FOOD', ner_type_zh='食品')]]
'''

2.2.2 支持的实体类型

编号 英文类型名 中文类型名
1 FOOD 食品
2 MATTER 物质
3 MANUFACTURE 物品
4 CREATION 作品
5 ORG 组织
6 PC 计算机
7 PROPERTY 属性
8 COMMERCIAL 商业
9 INCIDENT 事件
10 CREATURE 生物
11 BASE 基础
12 AFFAIR 活动
13 TIME 时间
14 LOC 位置
15 PHYSIOLOGY 组织器官
16 PERSON 人名
17 TERMINOLOGY 领域术语

本项目是匠数科技根据多年业务积累开发的NLP基础工具。匠数科技是一家专注于内容安全领域的国家高新技术企业。可以对大模型输出内容、各类网站、媒体进行安全性检测并生成检测报告。

本项目借鉴了苏神的bytepiece的代码,在此表示感谢。

Star History

Star History Chart