繁体   English   中英

计算 AWS Comprehend Sentiment 成本

[英]Calculate AWS Comprehend Sentiment cost

我想以编程方式估算调用 AWS Comprehend Sentiment API 的成本。 我搜索了 SO 和AWS 计算器,但找不到方法。 此外,我确信我将发送大量文本的成本会很小,但我真的很想知道。

根据此处的定价信息,我编写了以下代码。 这是对的吗?

text = ["What a horrible rainy day today", 
        "What a great day today", 
        "This is a neutral statement"]

numChars = sum(len(i) for i in text)

#Sentiment is measured in units of 100 characters, with a 3 unit (300 character) minimum charge per request.
numUnits = int(math.ceil(numChars / 100))

# Up to 10M units
if numUnits < 10000000:
    pricePerunit = 0.0001
    sentimentCost = numUnits * pricePerunit

# From 10M-50M units
elif numUnits >= 10000000 and numUnits <= 50000000:
    pricePerunit = 0.0001
    sentimentCost = 9999999 * pricePerunit

    pricePerunit = 0.00005
    sentimentCost = sentimentCost + ((numUnits - 10000000) * pricePerunit)

# Over 50M units.
elif numUnits > 50000000:
    pricePerunit = 0.0001
    sentimentCost = 9999999 * pricePerunit

    pricePerunit = 0.00005
    sentimentCost = sentimentCost + (40000000 * pricePerunit)

    pricePerunit = 0.000025
    sentimentCost = sentimentCost + ((numUnits - 49999999) * pricePerunit)

print("\nEstimated $ charges to call AWS Comprehend Sentiment are: %0.5f\n" % sentimentCost)

不,这个计算是不正确的。 具体来说:

  • 您需要对单位进行四舍五入,因此请使用math.ceil(numChars / 100)
  • 前 10M、接下来的 40M 和超过 50M 的任何单位的成本是不同的,并且您错误地假设所有单位都按边际费率收费。 您的代码将计算 10M+1 单位的成本为 (10M+1) * 0.00005,而它应该是 10M*0.0001 + 1*0.00005
  • 此外,您的代码将在恰好 10000000 或 50000000 个单位时崩溃

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM