将包含文本的csv文件转换为recordIO格式的正确方法是什么?

xt0899hw  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(113)

我需要将我的数据集(包括文本格式)转换为recordIO格式。我已尝试以下代码。但是,我无法修复以下错误。我是否需要进一步更改数据格式?

ValueError: Unsupported dtype object on array

代码:

import io
import sagemaker.amazon.common as smac
X = df[['Subject','Body']].to_numpy()
y = df[['Label']].to_numpy()
buf = io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, X, y)
buf.seek(0)

数据集示例-

Label   Subject   Body
label a Test one  Test Body
label b Test two  Test second
ws51t4hk

ws51t4hk1#

根据“Common Data Formats for Training“中的文档,您的content-type与下表中的算法相关联:
| 内容类型|算法|
| - ------|- ------|
| 应用程序/x记录|目标检测算法|
| 应用程序/x-记录-协议缓冲区|因子分解机、K均值、k近邻、潜在狄利克雷分配、线性学习器、NTM、PCA、RCF、序列间|
查看文档中的指南(数据转换),数据应该作为数字数组而不是字符串传递。
这意味着需要某种类型的编码器(例如LabelEncoder用于精确的标签,但是编码/嵌入算法将需要用于剩余的数据)。基于您想要实现的结果,您可以决定使用各种方法,例如One-hot-encoding、二进制编码、k中取一编码或任何其他方法,甚至复杂的单词/句子嵌入算法。
例如,对于使用RFC/SVM的文本分类任务,首先需要使用或多或少表达性的嵌入算法(例如fastText)对文本进行编码。

相关问题