当前位置: 首页 > news >正文

TnT-LLM: Text Mining at Scale with Large Language Models

TnT-LLM: Text Mining at Scale with Large Language Models

相关链接:arxiv
关键字:Large Language Models (LLMs)Text MiningLabel TaxonomyText ClassificationPrompt-based Interface

摘要

文本挖掘是将非结构化文本转换为结构化和有意义的形式,这对于下游分析和应用是基础步骤。然而,大多数现有的标签分类法和基于文本的标签分类器的生成方法仍然严重依赖于领域专业知识和手动策划,使得这一过程昂贵且耗时。尤其是当标签空间未明确指定且大规模数据注释不可用时,这一挑战尤为突出。本文提出了TnT-LLM框架,利用LLMs基于提示的接口,以最小的人工努力自动化端到端标签生成和分配过程。在第一阶段,我们引入了一种零样本、多阶段推理方法,使LLMs能够迭代地产生和完善标签分类法。在第二阶段,LLMs被用作数据标注器,生成训练样本,以便构建轻量级的监督分类器,这些分类器可以可靠地进行大规模部署和服务。我们使用TnT-LLM对Bing Copilot(以前称为Bing Chat)的用户意图和会话领域进行分析,这是一个开放领域的基于聊天的搜索引擎。通过使用人工和自动评估指标进行的广泛实验表明,与最先进的基线相比,TnT-LLM能够生成更准确和相关的标签分类法,并在大规模分类的准确性和效率之间取得了有利的平衡。我们还分享了在实际应用中使用LLMs进行大规模文本挖掘的挑战和机遇的实践经验和见解。

核心方法

在这里插入图片描述

  1. 零样本、多阶段推理方法:在第一阶段,我们提出了一种方法,使LLMs能够迭代地产生和完善标签分类法,而不需要任何先验的标签样本。
  2. LLMs作为数据标注器:在第二阶段,LLMs被用作数据标注器,生成训练样本,这些样本用于训练轻量级的监督分类器,这些分类器可以大规模部署和服务。
  3. 端到端框架:TnT-LLM是一个端到端的两阶段框架,它结合了LLMs在两个阶段的独特优势,实现了标签生成和文本分类的自动化。
  4. 可定制性和模块化:该框架是可适应和模块化的,可以根据不同用例、文本语料库、LLMs和分类器进行定制,同时需要很少的人工干预或输入。

实验说明

实验结果数据使用以下Markdown表格展示:

指标用例人类标注者 vs. GPT-4标注者
准确度(意图)0.476*0.558*
准确度(领域)0.478*0.578*
相关性(意图)0.466*0.520*
相关性(领域)0.3790.288

*表示中度一致性及以上(> 0.4)。

数据要求:实验使用了来自Bing Copilot系统的对话记录,这些记录是多语言的、开放领域的,并经过隐私和内容过滤以确保质量和隐私。

数据来源:实验数据来自2023年8月6日至10月14日的10周内的1k对话样本,用于第一阶段的标签分类法生成,以及同一时间段的另外5k对话样本,用于第二阶段的标签分配。

结论

我们的TnT-LLM框架能够使用很少的人工指导或干预,从非结构化文本语料库中生成高质量的标签分类法。在对真实世界AI聊天对话的评估中,我们证明了该方法可以找到非结构化文本中的结构和组织。我们的方法在需要超出表面语义的深层推理时,优于传统的基于嵌入的聚类方法。我们还发现,尽管基于嵌入的聚类仍然有效,但它更容易受到建模选择或输入与用例对齐的影响。我们提倡仔细评估LLMs的潜在用例,平衡性能和效率,同时利用它们与常规机器学习分类器的成熟度、速度和成本相结合的力量。

相关文章:

  • 电脑安装双系统windows和ubuntu server
  • 手写JDK Proxy实现InvocationHandler的Invoker
  • 飞鸟写作能用吗 #笔记#笔记
  • excel处理_多个excel文件合并
  • Pear-rec:一键开启多功能捕捉分享,告别繁琐操作!
  • Python Flask 将数据传递给前端
  • matlab 将矩阵写入文件
  • 【python】flask服务端响应与重定向处理
  • 哈工大sse C语言 困难
  • Spring Boot 自动化单元测试类的编写过程
  • ②零基础MySQL数据库-MySQL约束
  • 从零开始一步一步掌握大语言模型---(1-写在最开始)
  • 2024网络安全数据安全加固类资料合集
  • 选择word中的表格VBA
  • 数据结构面试常见问题之串的模式匹配(KMP算法)系列-大师改进实现以及原理
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【剑指offer】让抽象问题具体化
  • javascript 总结(常用工具类的封装)
  • Javascript编码规范
  • mysql 数据库四种事务隔离级别
  • React-生命周期杂记
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • storm drpc实例
  • 百度小程序遇到的问题
  • 缓存与缓冲
  • 前端js -- this指向总结。
  • 前端自动化解决方案
  • 如何用vue打造一个移动端音乐播放器
  • 详解移动APP与web APP的区别
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #### go map 底层结构 ####
  • #传输# #传输数据判断#
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • ()、[]、{}、(())、[[]]命令替换
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (小白学Java)Java简介和基本配置
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .netcore 获取appsettings
  • .Net各种迷惑命名解释
  • .Net小白的大学四年,内含面经
  • /etc/skel 目录作用
  • @javax.ws.rs Webservice注解
  • @SentinelResource详解
  • [20190113]四校联考
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
  • [Machine Learning][Part 7]神经网络的基本组成结构
  • [POJ2446] Chessboard(二分图最大匹配-匈牙利算法)
  • [POJ3067]Japan
  • [shell,hive] 在shell脚本中将hiveSQL分离出去
  • [Silverlight 4 RC]RichTextBox概览
  • [svc]caffe安装笔记