quantulum3: 强大的数量和单位提取工具

Ray

quantulum3

quantulum3: 从文本中提取数量信息的利器

在自然语言处理和信息提取领域,准确识别和提取文本中的数量信息一直是一个具有挑战性的任务。quantulum3作为一个专门用于数量和单位提取的Python库,为这一难题提供了强大的解决方案。本文将详细介绍quantulum3的功能特性、使用方法以及扩展性,帮助读者充分了解和利用这一强大工具。

quantulum3简介

quantulum3是一个专门用于从非结构化文本中提取数量、测量值及其单位的Python库。它不仅能够识别常见的数字和单位表达,还能处理拼写的数字、范围和不确定性。更重要的是,quantulum3具备消除单位歧义的能力,这得益于其利用单位在GloVe向量表示和Wikipedia页面中的k近邻关系进行判断。

这个库最初由Marco Lagi开发,后经过多次fork和改进,现在的quantulum3是由nielstron维护的Python 3兼容版本。它继承了原始版本的强大功能,并进行了多项优化和扩展,使其成为目前最强大和易用的数量提取工具之一。

quantulum3 logo

主要特性

  1. 广泛的单位和实体支持:包含超过290个单位和75个实体,覆盖了大多数常见的度量领域。

  2. 智能的单位歧义消除:利用机器学习技术,基于上下文智能判断歧义单位的正确含义。

  3. 灵活的数字识别:不仅支持阿拉伯数字,还能识别拼写的数字、科学计数法等多种表达方式。

  4. 范围和不确定性处理:能够正确解析如"12.8-13.0 TeV"或"12.9±0.1 TeV"这样的表达。

  5. Wikipedia集成:所有单位和实体都与Wikipedia页面关联,便于进一步查询和验证。

  6. 多语言支持:虽然目前主要支持英语,但已经为其他语言支持奠定了基础。

  7. 可扩展性强:支持自定义单位和实体,可以根据特定领域需求进行扩展。

安装和基本使用

安装quantulum3非常简单,只需使用pip命令即可:

pip install quantulum3

如果需要使用或训练消歧分类器,可以安装带有classifier依赖的版本:

pip install quantulum3[classifier]

使用quantulum3提取数量信息同样简单直观。以下是一个基本示例:

from quantulum3 import parser

# 解析文本中的数量信息
quants = parser.parse('I want 2 liters of wine')
print(quants)
# 输出: [Quantity(2, 'litre')]

# 获取更多详细信息
print(quants[0].surface)  # 原文中的表面形式
print(quants[0].span)     # 在原文中的位置
print(quants[0].value)    # 数值
print(quants[0].unit.name)  # 单位名称

高级功能

单位和实体信息

quantulum3不仅能识别数量,还能提供丰富的单位和实体信息:

quant = parser.parse('The temperature is 20 degrees Celsius')[0]
print(quant.unit)
# 输出: Unit(name="degree Celsius", entity=Entity("temperature"), uri=https://en.wikipedia.org/wiki/Celsius)

print(quant.unit.entity)
# 输出: Entity(name="temperature", uri=https://en.wikipedia.org/wiki/Temperature)

这种与Wikipedia的集成为进一步的信息查询和验证提供了便利。

处理复杂表达

quantulum3能够处理各种复杂的数量表达:

print(parser.parse('The LHC smashes proton beams at 12.8–13.0 TeV'))
# 输出: [Quantity(12.8, "teraelectronvolt"), Quantity(13, "teraelectronvolt")]

quant = parser.parse('The LHC smashes proton beams at 12.9±0.1 TeV')[0]
print(quant.uncertainty)
# 输出: 0.1

单位歧义消除

quantulum3的一大亮点是其单位歧义消除能力:

print(parser.parse('I spent 20 pounds on this!'))
# 输出: [Quantity(20, "pound sterling")]

print(parser.parse('It weighs no more than 20 pounds'))
# 输出: [Quantity(20, "pound-mass")]

这种基于上下文的智能判断大大提高了提取结果的准确性。

Unit disambiguation

扩展性和自定义

quantulum3的另一个强大特性是其良好的扩展性。用户可以添加自定义单位和实体,以适应特定领域的需求:

from quantulum3.load import add_custom_unit

add_custom_unit(name="schlurp", surfaces=["slp"], entity="dimensionless")
print(parser.parse("This extremely sharp tool is precise up to 0.5 slp"))
# 输出: [Quantity(0.5, "Unit(name=\"schlurp\", entity=Entity(\"dimensionless\"), uri=None)")]

此外,quantulum3还支持完全自定义的单位和实体集,可以通过JSON文件加载:

from quantulum3 import load, parser

with load.CustomQuantities(["path/to/units.json"], ["path/to/entities.json"]):
    print(parser.parse("Custom unit example"))

开发者指南

对于希望为quantulum3贡献代码的开发者,项目提供了清晰的贡献指南。主要步骤包括:

  1. Fork项目并克隆到本地
  2. 安装开发依赖
  3. 进行修改
  4. 运行格式化和构建脚本
  5. 测试更改
  6. 提交Pull Request

项目使用Travis CI进行持续集成,确保代码质量。

未来展望

虽然quantulum3已经是一个非常强大的工具,但仍有进一步改进的空间:

  1. 多语言支持的完善:目前主要支持英语,未来可以扩展到更多语言。
  2. 性能优化:随着单位和实体数量的增加,提高处理速度将变得更加重要。
  3. 与其他NLP工具的集成:如何更好地与主流NLP库协同工作是一个值得探索的方向。
  4. 领域特定模型:为不同领域(如医疗、金融)开发专门的单位识别模型。

结语

quantulum3作为一个专门的数量和单位提取工具,在文本分析、信息提取等领域具有广泛的应用前景。无论是数据科学家、NLP工程师,还是需要从文本中提取结构化数量信息的任何人,都能从这个强大的库中受益。随着持续的开发和社区贡献,我们有理由相信quantulum3将在未来变得更加强大和易用,为更多的数据处理任务提供有力支持。

项目GitHub地址

通过本文的详细介绍,相信读者已经对quantulum3有了全面的了解。无论是直接使用还是进行二次开发,quantulum3都是一个值得尝试和深入研究的优秀工具。在数据驱动的时代,能够准确提取和理解文本中的数量信息变得越来越重要,而quantulum3正是为此而生的得力助手。

avatar
0
0
0
最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号