意图数据集HWU、Banking预处理

news/2024/7/8 5:04:52 标签: easyui, 前端, javascript, python

当谈到意图数据集时,HWU、Banking和Clinc是三个常见的数据集。以下是关于这三个数据集的介绍:

目录

一、数据集介绍

HWU数据集

Banking数据集

Clinc数据集

二、数据集预处理

数据处理 

数据存储

数据类别分析

句子长度统计


一、数据集介绍

HWU数据集

  • 来源与用途:HWU数据集通常用于自然语言处理和任务型对话系统的研究中,特别是在意图识别和对话状态追踪方面。
  • 内容特点:该数据集包含多种用户意图和对应的语句,这些语句旨在反映真实世界中用户可能提出的各种请求和查询。
  • 使用场景:研究人员可以使用HWU数据集来训练和测试他们的模型,以准确识别用户的意图,并据此作出相应的响应。

Banking数据集

  • 专注领域:Banking数据集(以BANKING77为例)专注于银行领域的对话意图识别。它包含了与银行服务相关的各种用户查询和意图。
  • 数据构成:这个数据集通常包含大量的用户提问样本,每个样本都标注了具体的意图类别,如查询余额、转账、查询交易记录等。
  • 应用价值:对于开发智能银行助理或金融领域的自然语言处理应用来说,Banking数据集是一个宝贵的资源。它可以帮助模型更好地理解和响应用户在银行业务方面的需求。

Clinc数据集

  • 广泛覆盖:Clinc数据集(以CLINC150为例)是一个相对大型的数据集,涵盖了广泛的用户意图和场景,不仅限于特定领域。
  • 意图多样性:该数据集包含多达150种不同的意图,这些意图涉及各种日常活动和信息查询,如播放音乐、查询天气、设置提醒等。
  • 研究价值:由于Clinc数据集的多样性和广泛性,它成为了研究通用意图识别和对话系统的重要资源。研究人员可以利用这个数据集来开发和测试更加通用和健壮的自然语言处理模型。

总的来说,HWU、Banking和Clinc这三个数据集在意图识别和对话系统研究中各有侧重,共同为研究人员提供了丰富的数据和场景来训练和测试他们的模型。

二、数据集预处理

数据处理 

python读取数据

python">import pandas as pd
from datasets import load_from_disk
raw_datasets = load_from_disk("./banking77/")

展示数据

python">raw_datasets

DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 10003
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 3080
    })
})

可以看到,数据集是json格式 ,我们要把它转换成tsv或者csv格式,一列内容,一列标签的格式。

python"># 转换 train 数据集为 DataFrame
train_df = raw_datasets['train'].to_pandas()

# 转换 test 数据集为 DataFrame
test_df = raw_datasets['test'].to_pandas()
train_df.head(2)

 

从打印前两行可知,数据已成功转换为text和label两列并转换为tsv格式方便读取。 

数据存储

python">train_df.to_csv('./banking77/banking_train.tsv',index=False,sep='\t')
test_df.to_csv('./banking77/banking_dev.tsv',index=False,sep='\t')

数据类别分析

python">import pandas as pd
df = pd.read_csv('./HWU/HWU_train_data.tsv', sep='\t')
# # df = pd.read_csv('./SST-2/dev.tsv', sep='\t')
df.head()
# # 统计 label 列的种类数量
label_counts = df['label'].value_counts()
print(label_counts)

# # 输出种类数量
print(f"label 列共有 {len(label_counts)} 种不同的取值。")

label
9     1216
48    1014
27     920
67     894
53     892
      ... 
34      35
41      21
5       18
23      18
10       5
Name: count, Length: 68, dtype: int64
label 列共有 68 种不同的取值。

句子长度统计

python">import csv
 
# 读取CSV文件
filename = './HWU/HWU_dev_data.tsv'  # 请替换成你的CSV文件路径
with open(filename, 'r', newline='', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    next(reader)  # 跳过标题行
    word_counts = [len(row[0].split()) for row in reader]  # 假设你想要获取第二列句子的单词个数
 
# 统计单词个数
total_sentences = len(word_counts)
average_words = sum(word_counts) / total_sentences
 
# 打印结果
print("句子总数:", total_sentences)
print("平均单词数:", average_words)

句子总数: 2000
平均单词数: 6.8565


http://www.niftyadmin.cn/n/5536570.html

相关文章

细说QT程序高分屏适配

文章目录 高分屏适配适配屏幕缩放禁用屏幕缩放开启系统配置属性获取当前屏幕信息在Qt中实现高分辨率屏幕的适配,主要涉及对界面元素、字体大小和布局进行优化,以保证应用程序在不同分辨率和设备像素比率(DPI)的显示屏上均能正确显示。下面是一些关键步骤和技巧,用于在Qt应用…

Spring Boot集成fastjson2快速入门Demo

1.什么是fastjson2? fastjson2是阿里巴巴开发的一个高性能的Java JSON处理库,它支持将Java对象转换成JSON格式,同时也支持将JSON字符串解析成Java对象。本文将介绍fastjson2的常见用法,包括JSON对象、JSON数组的创建、取值、遍历…

IT专业入门:高考假期预习指南

七月,是一个充满转折与希望的月份。随着各省高考分数的揭晓,许多有志于踏入IT领域的少年们正站在新旅程的起点上。高考的完结并不意味着学习的结束,相反,它是一个全新的开始,一个探索未知世界的绝佳时机。作为IT领域的…

stm8玩耍日记1

写在前面,如题所示,这是一个stm8L051F3的玩耍记录。 环境使用的是IAR for stm8,使用stlink v2作为调试下载器,跟着st中文论坛的一个大佬的教程学习的。 整体配置下来,点亮了led,感觉和stm32的开发差不多&…

Java基础-控制流、异常处理、

控制流 条件语句 if 语句: if语句用于基于条件执行代码块。基本语法: if (condition) { // 条件为true时执行的代码 } 可以与else结合使用,提供当条件为false时的备选执行路径: if (condition) { // 条件为true时执行的代码 } else { // 条件为false时执行的代码 } 支持el…

无线传感器网络(物联网通信技术)期末考试2024年真题

目录 WSN期末复习资料 第一章:概述 第二章MAC协议 第三章路由协议 第四章时间同步技术 第五章定位技术 第六章安全技术 第七章拓扑控制 补充TPSN、HRTS公式推导 2024年期末考试考点 一、简述 二、考试真题回忆 WSN期末复习资料 第一章:概述 …

maven打包指定依赖与commitId

maven打包指定依赖与commitId 1. 需求说明2. 实现方式3. 读取jar包git-properties配置4. 参考资料 1. 需求说明 这是两个需求&#xff0c;一个是打包指定依赖&#xff0c;另一个是打包时关联指定git的commitId。 2. 实现方式 maven打包关联commitId采用。 ......<plugin…

学懂C#编程:实用方法——string字符串指定连接符拼接之 string.Join 的详细用法

在C#中&#xff0c;string.Join 方法用于将一个字符串数组或集合中的元素连接成一个单一的字符串&#xff0c;并在每个元素之间插入指定的分隔符。这个方法非常有用&#xff0c;特别是在需要将多个字符串合并成一个字符串时。以下是 string.Join 方法的详细用法&#xff1a; 方…