Watson-NLU的速度基准是什么?

时间:2018-04-23 21:08:07

标签: python watson-nlu

我正在尝试处理存储在文本文件中的推文。我的代码读取推文(逐个),处理它们,然后将Watson的结果保存在csv文件中。速度仅为每分钟28条推文。数据文件处理是否导致此延迟?

while 1:
    where = file.tell()
    line = file.readline()
    if not line:
        print "no line found, waiting for a 1 seconds"
        time.sleep(1)
        file.seek(where)
    else:
        if (re.search('[a-zA-Z]', line)):
            print "-----------------------------"
            print "the line is: "
            print line
            print "-----------------------------"
            response = natural_language_understanding.analyze(
                text=line,
                features=Features(
                    entities=EntitiesOptions(
                        emotion=True,
                        sentiment=True,
                        limit=2),
                    keywords=KeywordsOptions(
                        emotion=True,
                        sentiment=True,
                        limit=2)),
                language='en'
                )
            response["tweet"] = line
            print(json.dumps(response, indent=2))
            with open('#DDvKXIP.csv', 'a') as csv_file:
                writer = csv.writer(csv_file)
                for key, value in response.items():
                    writer.writerow([key, value])
        else:
            print "--------------------------------"
            print "found a line without any alphabet in it, hence not considering."
            print line
            print "--------------------------------"

1 个答案:

答案 0 :(得分:1)

简短的回答是你应该在代码的主要部分之间放置时间标记,以确定什么是最慢的。

提高速度的其他选择。

  1. 您可以创建一个一次发送10-20个呼叫的线程应用程序。这应该会使你的速度提高到每分钟280-560条推文。
  2. 如果您使用的是Lite版本,则需要确保自己不限价。

    1. 您可以批量推送来自同一用户的推文,并作为一个大块发送。而不是个别电话。例如,如果你只想捕捉整体情绪,这可能没有用。