我正在使用Python为IBM Watson的Personality Insights服务编写脚本。我将结果用作机器学习项目的培训数据。
由于服务非常有限(100个电话/月),是否可以通过一次API调用获得多个人格见解?
答案 0 :(得分:3)
Jeff对API限制是正确的:您不限于每月100次api通话;这只是您每月获得的免费电话的数量。
但是回答你的问题:是的,可以计算多张肖像。如果您使用application/json
作为内容类型,则会注意到每个内容元素都包含userid
字段。您可以包含来自不同作者(userid
)的内容,只是因为您不能以JSON格式获取输出,因为这个仅支持单个作者。您可以使用CSV API并获取多行,一行对应于输入中的每位作者。
以下是可能有用的示例代码:
导入请求,json
data = { "contentItems" : [
{
"userid" : "user1",
"id" : "uuid1.1",
"contenttype" : "text/plain",
"language" : "en",
"created" : 1393264847000,
"content": "some text"
},
{
"userid" : "user1",
"id" : "uuid1.2",
"contenttype" : "text/plain",
"language" : "en",
"created" : 1393263869000,
"content": "even more"
},
{
"userid" : "user2",
"id" : "uuid2",
"contenttype" : "text/plain",
"language" : "en",
"created" : 1394826985000,
"content": "this is a different author"
}
] }
response = requests.post(
"https://gateway.watsonplatform.net/personality-insights"+
"/api/v2/profile", # Or append: "?headers=True",
auth=("API_USERID", "API_PASSWORD"),
headers={"Content-Type": "application/json", "Accept": "text/csv"},
data = json.dumps(data)
)
print("HTTP %d:\n%s" % (response.status_code, response.content))
关于此代码的两点说明:
content
字段 - 更多文字!user1
,最后一个属于user2
Accept: "text/csv"
标题,则默认为JSON API并返回HTTP 400:"找到多个作者"。请记住为多位作者使用CSV API。通过这种方式,您可以在单个API调用中批量处理某些作者。请记住,您需要保持在请求大小限制(目前为20Mb)之下,因此您需要更加小心。
答案 1 :(得分:1)
您不仅限于每月100次API调用,只需100多次就可以为API调用付费。