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

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

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个预训练的模型,外加重用、训练、调优和轻松扩展模型的功能。”

 

试用NLP的最佳实践

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50348.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3dsmax制作一个机器人

文章目录 建模身子:眼睛:头饰:肩膀手臂腿调整细节 渲染导出objMarmoset Toolbag 3.08渲染给眼睛添加材质,设置为自发光添加背景灯光 建模 身子: 眼睛: 头饰: 肩膀 手臂 腿 调整细节 渲染 导出…

k8s核心概念

一、集群架构与组件 1,相关组件 【1】 master node三个组件 k8s的控制节点,对集群进行调度管理,接受集群外用户去集群操作请求master node 组成(四个组件):控制面 API Server:通信kube-Sche…

路由的配置

1、在router中设置路由导航跳转函数,在index.js文件中写这句话: 1.1 只要发生跳转, 就会调用这个函数: 1.2 导航的声明函数 2、访问系统访问控制系统如何形成 3、来一个导航守卫的案例:看看导航守卫的案例,写一个Main.Vue 和login…

结构型设计模式:装饰器模式

设计模式专栏目录 创建型设计模式-单例模式/工厂模式/抽象工厂 行为型设计模式:模板设计模式/观察者设计模式/策略设计模式 结构型设计模式:装饰器模式 C#反射机制实现开闭原则的简单工厂模式 目录 设计模式专栏目录设计模式分类设计模式的设计原则装饰…

Spring Boot——Spring Boot启动原理

系列文章目录 Spring Boot启动原理 系列文章目录一、Spring Boot启动的宏观流程图二、Spring Boot启动流程2.1 初始化new SpringApplication2.1.1Spring Boot入口2.1.2初始化SpringApplication2.1.2.1判断当前应用程序类型2.1.2.2设置应用程序的所有初始化器(initializers)2.1.…

Lab———Git使用指北

Lab———Git使用指北 🤖:使用IDEA Git插件实际工作流程 💡 本文从实际使用的角度出发,以IDEA Git插件为基本讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目,在本地分支进行开发&#x…

OpenCvSharp (C# OpenCV) 二维码畸变矫正--基于透视变换(附源码)

导读 本文主要介绍如何使用OpenCvSharp中的透视变换来实现二维码的畸变矫正。 由于CSDN文章中贴二维码会导致显示失败,大家可以直接点下面链接查看图片: C# OpenCV实现二维码畸变矫正--基于透视变换 (详细步骤 + 代码) 实现步骤 讲解实现步骤之前先看下效果(左边是原图,右边…

CSS 瀑布流效果效果

示例 <!DOCTYPE html> <html lang="cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>瀑布流效果</title><style>…

Windows安装PyTorch

文章目录 前言CPU版本安装安装步骤测试CPU版PyTorch是否安装成功 GPU版本安装新建一个conda环境安装torch法一&#xff1a;在线安装(建议用法二)法二&#xff1a;下载torch、torchvision后本地安装(建议使用此方法)Jupyter Lab虚拟环境的配置测试是否安装成功 前言 此份文档适…

Java 版 spring cloud +spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…

【JavaEE初阶】HTTP请求的构造及HTTPS

文章目录 1.HTTP请求的构造1.1 from表单请求构造1.2 ajax构造HTTP请求1.3 Postman的使用 2. HTTPS2.1 什么是HTTPS?2.2 HTTPS中的加密机制(SSL/TLS)2.2.1 HTTP的安全问题2.2.2 对称加密2.2.3 非对称加密2.2.3 中间人问题2.2.5 证书 1.HTTP请求的构造 常见的构造HTTP 请求的方…

EMO:重新思考高效的基于注意力的移动块模型

文章目录 摘要1、介绍2、方法论:归纳法和演绎法2.1、通用效率模型标准2.2、元移动块2.3、微设计:倒置残余移动块2.4、面向密集预测的EMO宏观设计 3、实验3.1、图像分类3.2、下游任务3.3、额外的消融和解释分析 4、相关工作5、结束语及未来工作 摘要 论文链接&#xff1a;https…

Ubuntu更改虚拟机网段(改成桥接模式无法连接网络)

因为工作需要&#xff0c;一开始在安装vmware和虚拟机时&#xff0c;是用的Nat网络。 现在需要修改虚拟机网段&#xff0c;把ip设置成和Windows端同一网段&#xff0c;我们就要去使用桥接模式。 环境&#xff1a; Windows10、Ubuntu20.04虚拟机编辑里打开虚拟网络编辑器&#…

在Mac上搭建Gradle环境

在Mac上搭建Gradle环境&#xff1a; 步骤1&#xff1a;下载并安装Java开发工具包&#xff08;JDK&#xff09; Gradle运行需要Java开发工具包&#xff08;JDK&#xff09;。您可以从Oracle官网下载适合您的操作系统版本的JDK。请按照以下步骤进行操作&#xff1a; 打开浏览器…

520 · 一致性哈希 II

链接&#xff1a;LintCode 炼码 - ChatGPT&#xff01;更高效的学习体验&#xff01; 题解&#xff1a; class Solution{private:int n;const int mVirtualNodeCount;map<int, int> mVirtualNodeToMachineIdMap;set<int> mVirtualNodeSet;public:Solution(int n…

SpringBoot房屋租赁系统【附ppt|万字文档(LW)和搭建文档】

主要功能 前台登录&#xff1a; ①首页&#xff1a;公告信息、房屋信息展示、查看更多等 ②房屋信息、房屋类型、我要当房主、公告信息、留言反馈等 ③个人中心&#xff1a;可以查看自己的信息、更新图片、更新信息、退出登录、我的收藏 后台登录&#xff1a; ①首页、个人中心…

软件测试-基础阶段学习

目录 一、测试介绍 二、测试常用分类 三、模型 四、测试流程 五、测试用例 六、用例设计方法 七、缺陷 八、html 资料获取方法 阶段目标 能独立针对web项目实施功能测试 一、测试介绍 什么是软件测试 使用技术手段验证软件是否满足需求 测试主流技能 功能测试自…

golang,gin框架的请求参数(一)--推荐

golang&#xff0c;gin框架的请求参数&#xff08;一&#xff09; gin框架的重要性不过多的强调&#xff0c;重点就gin使用中的参数传递&#xff0c;获取进行梳理文件&#xff0c;满足使用需求。 获取前端请求参数的几种方法&#xff1a; 一、获取参数【浏览器地址获取参数】…

【业务功能篇58】Springboot + Spring Security 权限管理 【中篇】

4.2.3 认证 4.2.3.1 什么是认证&#xff08;Authentication&#xff09; 通俗地讲就是验证当前用户的身份&#xff0c;证明“你是你自己”&#xff08;比如&#xff1a;你每天上下班打卡&#xff0c;都需要通过指纹打卡&#xff0c;当你的指纹和系统里录入的指纹相匹配时&…

图注意力网络论文详解和PyTorch实现

图神经网络(gnn)是一类功能强大的神经网络&#xff0c;它对图结构数据进行操作。它们通过从节点的局部邻域聚合信息来学习节点表示(嵌入)。这个概念在图表示学习文献中被称为“消息传递”。 消息(嵌入)通过多个GNN层在图中的节点之间传递。每个节点聚合来自其邻居的消息以更新其…