Chatbot NER 项目介绍
什么是Chatbot NER?
Chatbot NER是一个用于识别聊天消息中实体的开源框架。经过对现有命名实体识别(NER)系统的深入研究,Haptik团队发现有必要构建一个专为对话式AI设计的框架,并支持印度语言。目前,Chatbot NER支持英语,印地语,古吉拉特语,马拉地语,孟加拉语和泰米尔语,以及这些语言的混合形式。该框架利用常见模式以及一些自然语言处理技术,从数据稀少的语言中提取所需实体。Chatbot NER的API结构旨在方便对话式AI应用程序的使用。Haptik团队正在努力将该框架推广到所有印度语言及其对应的地方方言。
如何安装
详细的安装指南展示了如何使用Docker在您的系统上设置Chatbot NER,参考相关文档进行设置。
支持的实体类型
Chatbot NER框架支持多种实体识别,包括:
- 时间(Time):识别文本中的时间信息,例如"明天早上5点"。
- 日期(Date):识别文本中的日期,例如"下周一"。
- 数字(Number):识别文本中的数字及相应单位,例如"50元每人"。
- 电话号码(Phone number):识别文本中的电话号码,例如"9833530536"。
- 电子邮件(Email):识别文本中的电子邮件地址,例如"hello@haptik.co"。
- 文本(Text):识别自定义的文本实体,通过全文搜索或上下文模型,例如"订购一个披萨,孟买的天气如何"。
- PNR:识别文本中的PNR(序列)代码,例如"我的航班PNR是4SGX3E"。
- 正则表达式(regex):通过自定义的正则表达式模式识别实体。
API结构
Chatbot NER的API结构设计旨在易于从对话式AI应用程序访问,不过同样适用于其他应用程序。完整的API文档提供了对所有实体类型的详细说明。
框架概述
在任何对话式AI应用程序中,需要识别多个实体,而对每个实体的检测逻辑可能不同。我们将这个知识库组织为四种主要类型:数字(numeral)、模式(pattern)、时间(temporal) 和 文本(textual)。
- 数字(numeral):包括处理数字或数字类实体的所有检测逻辑,例如数字检测,预算检测,尺寸检测等。
- 模式(pattern):包括通过模式或正则表达式识别实体的所有检测逻辑,例如电子邮件、电话号码、PNR等。
- 时间(temporal):包括检测时间和日期的逻辑。
- 文本(textual):通过字典检查识别文本实体,包括菜系、城市名称、用户位置等的识别。
数字、时间和模式已移至ner_v2,以增强跨语言的可移植性并拥有更灵活的检测逻辑。在ner_v1中,目前仅文本实体具有语言支持。我们将在不进行重大API更改的情况下将其移至ner_v2。
贡献指南
您可以通过添加训练数据或以正则表达式形式贡献检测模式来为Chatbot NER项目中的ner_v2做出贡献。我们将致力于消除框架的一些架构限制,以方便未来添加机器学习模型和新的实体。
- 添加训练数据:只需将数据添加到CSV文件中即可显著提高Chatbot NER的检测能力。
- 添加检测模式:通过添加简单的函数为不同语言添加自定义语言模式。
遵循通用的贡献、审批和编码指南,帮助改进项目。