Huggingface datasets库读取yelp_review_full数据集时下载失败的解决方法
问题:datasets.load_dataset()下载失败
from datasets import load_dataset
dataset = load_dataset('yelp_review_full')
运行上述代码,程序会将yelp_review_full数据集下载到C:\Users\“你的用户名”\.cache\huggingface下(Windows系统),如果下载成功,最终完整的目录格式为
C:\Users\“你的用户名”\.cache\huggingface\yelp_review_full\yelp_review_full\1.0.0\e8e18e1(最后目录名是一大串,可能不同),在此目录下面有三个文件dataset_info.json、yelp_review_full-test.arrow、yelp_review_full-train.arrow。
但是由于yelp_review_full数据集是从https://s3.amazonaws.com/fast-ai-nlp/yelp_review_full_csv.tgz下载的,国内下载非常慢,目前在网上没有找到解决这个问题的方法,例如https://blog.csdn.net/weixin_42655901/article/details/124246300中的方法并没有解决问题。
解决方法
方法一:修改数据集下载脚本,挂代理下载
git clone https://huggingface.co/datasets/yelp_review_full
下载yelp_review_full在huggingface的下载脚本,打开其中yelp_review_full.py,将
_URLs = {
"yelp_review_full": "https://s3.amazonaws.com/fast-ai-nlp/yelp_review_full_csv.tgz",
}
中的https改成http,然后挂梯子下载。
注意:如果直接挂梯子会下载失败,原因参考这篇https://blog.csdn.net/gzxb1995/article/details/119084974
方法二:手动从其他源下载
第一步,从https://huggingface.co/datasets/yelp_review_full/tree/refs%2Fconvert%2Fparquet/yelp_review_full下载两个parquet文件;
第二步,使用git clone https://huggingface.co/datasets/yelp_review_full
取出其中的dataset_infos.json,将其改名为dataset_info.json;
第三步,将dataset_info.json和之前的两个parquet文件一起放在某一目录中,例如./datasets/yelp_review_full(注意这里如果用相对路径不能为yelp_review_full,否则后面还是会下载,不会读取本地文件)。
读取方式为
dataset = load_dataset('./datasets/yelp_review_full')
即可成功读取。
注意:如果手动从https://s3.amazonaws.com/fast-ai-nlp/yelp_review_full_csv.tgz下载,解压后得到两个csv,分别是train.csv和test.csv,但我将这两个csv按照前面parquet文件的方式改名,并和dataset_info.json放在一个目录下时,读取会出现错误can only join an iterable datasets
,目前我不知道为什么用csv文件无法读取,如果有解决方法可以教我一下。