0

我正在尝试处理存储在文本文件中的推文。我的代码(一个接一个)读取推文,处理它们,然后将 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 "--------------------------------"
4

1 回答 1

1

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

其他提高速度的选项。

  1. 您可以创建一个线程应用程序,一次发送 10-20 个调用。这应该会将您的速度提高到每分钟 280-560 条推文。

如果您使用的是精简版,您要确保自己没有速率限制。

  1. 您可以批量发送来自同一用户的推文,并作为一个大块发送。而不是单独的电话。例如,如果您只是想捕捉整体情绪,这可能无济于事。
于 2018-04-24T04:03:01.257 回答