使用“ source-ref”的AWS Ground Truth文本分类清单不显示文本

时间:2018-12-05 03:05:58

标签: amazon-web-services machine-learning amazon-sagemaker

背景

我正在尝试SageMaker地面真理,an AWS service to help you label your data before using it in your ML algorithms

加标签作业需要清单文件,该清单文件每行包含一个JSON对象,该对象包含sourcesource-ref,另请参见文档的Input Data section

设置

Source-ref是对文档在S3存储桶中的位置的引用,

my-bucket/data/manifest.json
my-bucket/data/123.txt
my-bucket/data/124.txt

...

清单文件如下所示(基于blog example):

{"source-ref": "s3://my-bucket/data/123.txt"}
{"source-ref": "s3://my-bucket/data/124.txt"}
...

问题

创建作业时,我得到的只是source-ref值: s3://my-bucket/data/123.txt 作为文本,即文件的内容不显示。

我尝试使用不包含s3协议的清单创建作业,但是得到相同的结果。

这是他们的虫子还是我错过了什么?

观察

  • 我试图将所有文件公开,以为可能存在权限问题?但没有
  • 我确保文件的内容类型为文本(s3->对象->属性->元数据)
  • 如果我使用“源代码”并内联文本,则可以正常工作,但是我应该能够使用单个文档,因为文件大小受到限制,尤其是当我必须标记很多文档或大文档时!

2 个答案:

答案 0 :(得分:2)

我是AWS SageMaker GroundTruth团队的成员。很抱歉得知您在使用我们产品的某些功能时遇到困难。

从您的帖子中我假设您有多个文本文件,每个文本文件包含多行。对于文本分类,为了在控制台中显示预览,我们目前仅支持使用包含每行的“源”的内联模式。

我们知道,使用嵌入式文本创建清单很不方便,因为它既琐碎又费时。这就是为什么我们在控制台中提供了爬网功能(请参见输入清单框上的“创建输入清单”链接),该功能采用输入s3Prefix并在该前缀中爬网所有文本文件(扩展名为.txt,.csv)并读取前缀中每个文本文件的每一行,并创建一个清单,每行的名称为{“ source”:“”}。如果您可以抓取来创建清单,请告诉我们。

请注意,当前的抓取工具仅在您从控制台创建s3:// my-bucket / data /文件夹然后上载此文件夹中的所有文本文件后才起作用(而不是使用s3 cli sync工具上载本地数据/目录)。

很抱歉,如果我们的文档不清楚,我们肯定会收到您的反馈以改进我们的产品。如有任何疑问,请在这里与我们联系:https://aws.amazon.com/contact-us/

答案 1 :(得分:0)

问题在于您的预处理lambda。预处理lambda从清单中接收对象(成批afaik),即s3源。预处理lambda必须读取文件并返回实际内容。听起来您的预处理正在传递文件位置而不是内容。请参阅文档。任何示例的文本预处理lambda应该可以根据您的情况轻松调整