用于提取数据的三个开源NLP工具

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 用于提取数据的三个开源NLP工具

开发人员和数据科学家使用生成式AI和大语言模型(LLM)来查询大量文档和非结构化数据。开源LLM包括Dolly 2.0、EleutherAI Pythia、Meta AI LLaMa和StabilityLM等,它们都是尝试人工智能的起点,可以接受自然语言提示,生成总结式响应。

5230da71115e023faf3aa87a65f01831.jpg

Fluree首席执行官兼联合创始人Brian Platz说:“作为知识和信息的基本来源,文本很重要,但目前还没有任何端到端解决方案可以驾驭处理文本的复杂性。虽然大多数组织处理结构化或半结构化数据、放到集中式数据平台上,但非结构化数据仍然被遗忘,未充分利用起来。”


如果贵组织和团队没有试用自然语言处理(NLP)功能,可能落后于所在行业的竞争对手。2023年专家NLP调查报告发现,77%的组织表示计划增加NLP方面的支出,54%的组织声称部署到生产环境的时间是衡量成功NLP项目的投资回报率的首要指标。


NLP的用例



如果您有大量非结构化数据和文本,那么一些最常见的业务需求包括如下:

  • 通过识别名称、日期、地点和产品,提取实体;
  • 模式识别,以发现货币及其他数量;
  • 对业务术语、主题和分类分门别类;
  • 情绪分析,包括积极的、负面的和讽刺的情绪;
  • 总结文件要点;
  • 机器语言翻译成其他语言;
  • 将文本转换成机器可读的半结构化表示的依赖关系图。


有时候,将NLP功能捆绑到平台或应用程序中是可取的。比如说,LLM支持提问,AI搜索引擎支持搜索和推荐,聊天机器人支持交互。而其他时候,使用NLP工具提取信息以及丰富非结构化文档和文本是最佳选择。


不妨看看开发人员和数据科学家如今使用这三种流行的开源NLP工具,可用于针对非结构化文档执行发现操作,并开发生产就绪的NLP处理引擎。


1. 自然语言工具包



自然语言工具包(NLTK)于2001年发布,是较悠久且较流行的NLP Python库之一。NLTK在GitHub上拥有超过1.18万颗星,列有100多个经过训练的模型。


SPR的数据和分析主管Steven Devoe说:“我认为对于NLP来说,最重要的工具是自然语言工具包(NLTK),它采用了Apache 2.0许可证。在所有的数据科学项目中,处理和清理算法所使用的数据耗用了大量的时间和精力,这在自然语言处理中尤为如此。NLTK加快了这方面的许多工作,比如词干提取、词源化、标记、删除停止词以及跨多种书面语言嵌入词向量,从而使算法更容易解释文本。”


NLTK的优点源于其耐久性,它为刚接触NLP的开发人员提供了许多示例,比如这份初学者实践指南和这个更全面的概述。任何学习NLP技术的人都可能想先试一下这个库,因为它提供了简单的方法来尝试基本技术,比如标记化、词干提取和分块。


2.spaCy



spaCy是一个较新的库,2016年发布了版本1.0。spaCy支持72余种语言,已发布了其性能基准,它在GitHub上积累的星数超过了25000颗。


Domino数据实验室欧洲中东和非洲(EMEA)地区的数据科学主管Nikolay Manchev说:“spaCy是免费的开源Python库,提供了对大量文本进行高速自然语言处理的高级功能。使用spaCy,用户就可以构建模型和生产级应用程序,它们支持文档分析、聊天机器人功能和所有其他形式的文本分析。如今,spaCy框架是Python最流行的自然语言库之一,用于从文本中提取关键字、实体和知识等行业用例。”


spaCy教程显示了NLTK类似的功能,比如命名实体识别和词性标注。一个优点是,spaCy返回文档对象,并支持词向量,这可以为开发人员执行额外的NLP后数据处理和文本分析赋予更大的灵活性。


3.Spark NLP



如果您已经使用Apache Spark并配置了其基础设施,那么Spark NLP可能是开始尝试自然语言处理的更便捷途径之一。Spark NLP有几个安装选项,包括AWS、Azure Databricks和Docker。


John Snow Labs的首席技术官David Talby说:“Spark NLP是一个广泛使用的开源自然语言处理库,它使企业能够以最高的精度从自由文本文档中提取信息和答案。因此企业可以提取只存在于临床记录中的相关健康信息,识别社交媒体上的仇恨言论或虚假新闻,或概述法律协议和财经新闻。”


Spark NLP的不同之处在于其是适用于医疗、金融和法律领域的语言模型。这些商业产品配备了预先训练的模型,用于识别医疗领域的药物名称和剂量、金融实体识别(比如股票行情信息)以及公司名称和高管的法律知识图谱。


Talby表示,Spark NLP可以帮助组织尽量减少开发模型所需的前期训练。他说:“这个免费开源库附带超过11000个预训练的模型,外加重用、训练、调优和轻松扩展模型的功能。”


1c699f9b2f1f4f158ad92e4e0ff9532c.jpg


试用NLP的最佳实践



我在职业生涯的早期有幸监督过开发几个使用NLP功能构建的SaaS产品。第一个NLP是一个搜索报纸分类广告的SaaS平台,包括搜索汽车、工作和房地产。然后,我领导开发了用于从商业建筑文件(包括建筑规格和蓝图)中提取信息的NLP。


在一个新领域开始入手NLP时,我的建议如下:

  • 从文档或文本的一个代表性的小例子入手。
  • 确定目标最终用户角色以及提取的信息如何改进他们的工作流程。
  • 指定所需的信息提取和目标准确性指标。
  • 测试几种方法,使用速度和准确性指标进行基准衡量。
  • 反复提高准确性,尤其是在增加文档的规模和广度时。
  • 准备交付用于处理数据质量和处理异常的数据管理工具。


您可能会发现用于发现和试用新型文档的NLP工具将有助于界定需求。然后,扩大NLP技术的比较范围,涵盖开源方案和商业方案,因为构建和支持生产就绪的NLP数据管道可能成本高昂。随着LLM日益备受关注,对NLP功能方面投入不足会导致落后于竞争对手。幸运的是,您可以从本文介绍的其中一款开源工具入手,构建NLP数据管道,以满足自己的预算和需求。


相关文章
|
1月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
59 2
|
4月前
|
自然语言处理 算法 数据可视化
NLP-基于bertopic工具的新闻文本分析与挖掘
这篇文章介绍了如何使用Bertopic工具进行新闻文本分析与挖掘,包括安装Bertopic库、加载和预处理数据集、建立并训练主题模型、评估模型性能、分类新闻标题、调优聚类结果的详细步骤和方法。
NLP-基于bertopic工具的新闻文本分析与挖掘
|
2月前
|
自然语言处理
【NLP自然语言处理】文本特征处理与数据增强
【NLP自然语言处理】文本特征处理与数据增强
|
4月前
|
机器学习/深度学习 自然语言处理 数据处理
|
4月前
|
机器学习/深度学习 自然语言处理 PyTorch
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案--6 提分方案
在讯飞英文学术论文分类挑战赛中的提分技巧和实现方法,包括数据增强、投票融合、伪标签等策略,以及加快模型训练的技巧,如混合精度训练和使用AdamW优化器等。
49 0
|
4月前
|
数据采集 机器学习/深度学习 存储
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–5 Bert 方案
在讯飞英文学术论文分类挑战赛中使用BERT模型进行文本分类的方法,包括数据预处理、模型微调技巧、长文本处理策略以及通过不同模型和数据增强技术提高准确率的过程。
46 0
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–4 机器学习LGB 方案
在讯飞英文学术论文分类挑战赛中使用LightGBM模型进行文本分类的方案,包括数据预处理、特征提取、模型训练及多折交叉验证等步骤,并提供了相关的代码实现。
54 0
|
4月前
|
数据采集 自然语言处理 机器学习/深度学习
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–3 TextCNN Fasttext 方案
讯飞英文学术论文分类挑战赛中使用TextCNN和FastText模型进行文本分类的方案,包括数据预处理、模型训练和对抗训练等步骤,并分享了模型调优的经验。
44 0
|
4月前
|
机器学习/深度学习 自然语言处理 数据挖掘
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案--2 数据分析
讯飞英文学术论文分类挑战赛数据集的分析,包括数据加载、缺失值检查、标签分布、文本长度统计等内容,并总结了数据的基本情况。
25 0