Microsoft Recognizers Text 概述
Microsoft.Recognizers.Text 提供了对多种语言中表达的数字、单位和日期/时间等实体的强大识别和解析能力。目前全面支持中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、土耳其语、印地语和荷兰语。对日语、韩语、阿拉伯语和瑞典语提供部分支持。更多语言支持正在开发中。
项目应用
Microsoft.Recognizers.Text 为以下服务提供支持:LUIS:语言理解智能服务、Power Virtual Agents 和 Microsoft Bot Framework 中的预构建实体;文本分析认知服务 中的基础实体类型;同时也以独立包的形式提供(包括基类和各种实体识别器)。
Microsoft.Recognizers.Text 包目前针对四个平台:
- C#/.NET - NuGet 包可在此获取:https://www.nuget.org/profiles/Recognizers.Text
- JavaScript/TypeScript - NPM 包可在此获取:https://www.npmjs.com/~recognizers.text
- Python - PyPI 包可在此获取:https://pypi.org/user/recognizers-text/ (alpha 版)
- Java (开发中)
我们非常欢迎贡献!无论是对当前支持语言的修复和扩展,还是对新语言的扩展。 特别是对日语、韩语、阿拉伯语、瑞典语等语言的支持!更多信息请见下文。
.NET 是主要的包版本,贡献会随时间逐步传播到其他平台。
引用 Recognizers-Text 项目
如果您在学术作品中使用了这些识别器,请按以下方式引用(您可以省略版本号或更新为特定版本,如果相关的话):
@software{soft:recognizers-text,
author = {Wenhao Huang and Zijia Lin and Chris McConnell and B{\"{o}}rje F. Karlsson},
title = {{Recognizers-Text}: {R}ecognition and resolution of numbers, units, and date/time entities expressed across multiple languages},
month = jul,
year = 2017,
publisher = {Zenodo},
version = {1.0.0},
doi = {10.5281/zenodo.6860598},
url = {https://doi.org/10.5281/zenodo.6860598}
}
如果更符合您的模板,可以将"@software"改为"@misc"。
帮助
如果您有任何问题,请随时提出问题,即使不是实际的 bug。问题也可以作为一个可接受的讨论论坛。
贡献
本项目采用了 Microsoft 开源行为准则。欲了解更多信息,请参阅行为准则常见问题或联系 opencode@microsoft.com 获取任何其他问题或意见。
贡献的良好起点包括:
- 未解决问题列表(特别是那些标记为
help wanted
的问题); - 临时标记为
NotSupported
的 json 规范案例(规范);以及 - 翻译在英语中有效但在目标语言中尚不存在的 json 测试规范案例。
以下链接描述了项目结构,并提供了贡献的概述和技巧(尽管某些步骤可能已经有些过时)。感谢您的贡献!
跨文化支持的实体
下表总结了当前支持的实体。英语的支持通常比其他语言更完整。主要平台是 .NET(表中所示),支持应逐步传播到其他平台。
实体类型 | 英语 | 中文 | 荷兰语 | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语 | 西班牙语 |
---|---|---|---|---|---|---|---|---|---|---|
数字(基数) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
序数 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
百分比 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
数字范围 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | PA/EO | ✓ | ✓ | ✓ |
单位 - 年龄 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | PA/EO | ✓ | ✓ |
单位 - 货币 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | PA/EO | ✓ | ✓ |
单位 - 尺寸 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | PA/EO | ✓ | ✓ |
单位 - 温度 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
选择 - 布尔值 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | SO | ✓ | ✓ |
序列 - 电子邮件 | G | G* | G | G | G | G | G* | G* | G | G |
序列 - GUID | G | G | G | G | G | G | G | G | G | G |
序列 - 社交媒体 | G | G | G | G | G | G | G | G | G | G |
序列 - IP地址 | G | G | G | G | G | G | G | G | G | G |
序列 - 电话号码 | G | G | G | G | G | G | G | G | G | G |
序列 - URL | G | G* | G | G | G | G | G* | G* | G | G |
日期时间(及子类型) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | SO | ✓ | ✓ |
实体类型 | 瑞典语 | 保加利亚语 | 土耳其语 | 印地语 | 阿拉伯语 | |||||
---|---|---|---|---|---|---|---|---|---|---|
数字(基数) | ✓ | :x: | ✓ | ✓ | PA/EO | |||||
序数 | ✓ | :x: | ✓ | ✓ | PA/EO | |||||
百分比 | ✓ | :x: | ✓ | ✓ | PA/EO | |||||
数字范围 | :x: | :x: | ✓ | ✓ | PA/EO | |||||
单位 - 年龄 | ✓ | :x: | ✓ | ✓ | :x: | |||||
单位 - 货币 | ✓ | :x: | ✓ | ✓ | :x: | |||||
单位 - 尺寸 | ✓ | :x: | ✓ | ✓ | :x: | |||||
单位 - 温度 | ✓ | :x: | ✓ | ✓ | :x: | |||||
选择 - 布尔值 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
序列 - 电子邮件 | G | G | G | G | G | |||||
序列 - GUID | G | G | G | G | G | |||||
序列 - 社交媒体 | G | G | G | G | G | |||||
序列 - IP地址 | G | G | G | G | G | |||||
序列 - 电话号码 | :x: | :x: | :x: | :x: | :x: | |||||
序列 - URL | G | G | G | G* | G* | |||||
日期时间(及子类型) | SP | :x: | ✓ | ✓ | SO |
- G: 通用实体,非特定语言(* 不支持Unicode顶级域名);
- EO: 仅提取(解析/解决/规范化待定);
- PA: 部分支持(类型未完全支持);
- SO: 仅规范(测试规范覆盖OK,但支持待定);
- SP: 部分规范;
- SI: 非常初步的规范(通常是新语言支持的开始阶段)。