E-FewShot数据集处理

Effient Few-Shot复现

第一章 数据集处理(Amazon数据集和Yelp数据集)


一、数据集

该模型数据集大致分为两种类型:合成数据集带注释的数据集

  1. 合成数据集:使用留一法创建合成数据集
  2. 带注释的数据集:使用FewShot的注释数据集

二、合成数据集

1.下载Amazon和Yelp原始数据集

(1)论文中要求Amazon数据集有四个方面的数据

Electronics 数据集
Clothing Shoes and Jewelry 数据集
Home and Kitchen 数据集
Health and Personal Care 数据集
论文中Amazon数据集一共包括四个方面

如下图,在 Amazon数据集中下载

需要下载的Amazon数据集

(2)Amazon网页中主要分为两部分:小数据集和正常数据集

小数据集
小数据集
大数据集
在这里插入图片描述
(已下载,以后可以直接拿,不用在下载了)
Amazon数据集
Yelp数据集

(3)留一法创建合成数据集

在这里,我们使用留一法,来创建合成数据集。来源评论是根据 ROUGE-1 F 分数选择的。
[备注:其实每一个data之前应该都有“. ./”,但是由于我改动了一些代码,其他人运行可以原封不动]

python preprocessing/leave_one_out.py 
--input-file-paths  
    ../data/amazon/reviews/raw/Clothing_Shoes_and_Jewelry.json.gz 
    ../data/amazon/reviews/raw/Electronics.json.gz 
    ../data/amazon/reviews/raw/Health_and_Personal_Care.json.gz 
    ../data/amazon/reviews/raw/Home_and_Kitchen.json.gz 
--output-folder-path=data/amazon/reviews/l1o 
--rev-num=10 --worker-num=80 --src-rev-min-len=20 
--src-rev-max-len=120 --tgt-rev-min-len=20 --tgt-rev-max-len=120 
--dataset=amazon --percentile=95 --measure=f

上面这段python命令是一个Python脚本命令,用于运行名为leave_one_out.py的预处理脚本。以下是命令的各个参数的解释:

	* --input-file-paths:输入文件路径,指定要处理的输入文件的路径。在这个命令中,有四个输入文件被指定,分别是:
		../data/amazon/reviews/raw/Clothing_Shoes_and_Jewelry.json.gz
		../data/amazon/reviews/raw/Electronics.json.gz
		../data/amazon/reviews/raw/Health_and_Personal_Care.json.gz
		../data/amazon/reviews/raw/Home_and_Kitchen.json.gz
	* --output-folder-path:输出文件夹路径,指定预处理后的文件将保存到的文件夹路径。在这个命令中,输出文件将保存在../data/amazon/reviews/l1o文件夹中。
	* --rev-num:每个商品的评论数目。在这个命令中,每个商品将选择前10个评论。
	* --worker-num:工作进程数。在这个命令中,使用80个工作进程来并行处理数据。
	* --src-rev-min-len:源评论的最小长度。在这个命令中,源评论的最小长度被设置为20* --src-rev-max-len:源评论的最大长度。在这个命令中,源评论的最大长度被设置为120* --tgt-rev-min-len:目标评论的最小长度。在这个命令中,目标评论的最小长度被设置为20* --tgt-rev-max-len:目标评论的最大长度。在这个命令中,目标评论的最大长度被设置为120* --dataset:数据集名称。在这个命令中,数据集名称被设置为"amazon"* --percentile:百分位数。在这个命令中,百分位数被设置为95* --measure:度量指标。在这个命令中,度量指标被设置为"f"

注意路径是否正确。

备注
这运行下来其实可以得到train、test、valid,但是由于代码中设置的是

trainvaildtest
90%10%0%

processing/leave_one_out.py文件

代码中数据集的划分

所以没有test数据集,到后续运行可能会出现错误,所以这里需要手动改一下

小数据集运行结果

运行结果

生成的文件

l1o中有test、train、vaild文件

(4)词典

这里使用了作者的提供的词典,直接下载了
Amazon词典:Amazon词典下载地址
Yelp词典:Yelp词典下载地址
在这里插入图片描述

(5)Query/plan creation / 查询和计划创建

为每个拆分创建查询

python preprocessing/create_queries.py \
--input-folder-path=./data/amazon/reviews/l1o \
--output-folder-path=./data/amazon/reviews/l1o \
--lexicon-file-path=./data/misc/amazon_aspect_lexicon.txt
调试出错,shared文件不存在

但是调试时出现了一个错误
错误
调试的时候出现了错误error,系统报错,shared不存在。

这是因为正常运行时,代码是在/home/ylkong/adasum-main中运行

ylkong@cu12:~/adasum-main$ python preprocessing/create_queries.py  
--input-folder-path=./data/amazon/reviews/l1o 
--output-folder-path=./data/amazon/reviews/l1o  
--lexicon-file-path=./data/misc/amazon_aspect_lexicon.txt

> 2023-06-02 02:51:00,439 [INFO]: Split: train

但是如果调成Debug时,此时就会自动变成/home/ylkong,导致出错

(adasum) ylkong@cu12:~$  cd /home/ylkong ; /usr/bin/env 
/home/ylkong/anaconda3/envs/adasum/bin/python 
/home/ylkong/.vscode-server/extensions/ms-python.python-2023.8.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher 41615 
-- /home/ylkong/adasum-main/preprocessing/create_queries.py

如何处理这个问题
解决办法:将debug的运行地址改为当前项目的地址.就是将launch.json文件中添加
"cwd": "${workspaceFolder}/adasum-main"
1
2

再重新运行代码,仍然出现shared文件夹不存在错误

由于操作问题,电脑重启,导致重新分割数据集,但是此时运行代码还是会出现error,系统报错shared文件夹不存在。
具体解决办法:解决办法

import sys
sys.path.append('/home/ylkong/adasum-main')

如果写成下面这个,仍然出错,因为加载的是项目根目录。

import sys
sys.path.append('/home/ylkong/adasum-main/shard')

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了E-Fewshot论文中数据集的处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值