Watson-NLU 中的速度基准是什么?
What are the speed benchmarks in 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 "--------------------------------"
简短的回答是您应该在代码的主要部分之间放置时间标记以确定最慢的部分。
其他提高速度的选项。
- 您可以创建一个线程应用程序,一次发送 10-20 个调用。这应该会将您的速率提高到每分钟 280-560 条推文。
如果您使用的是精简版,请确保您没有限制自己的速率。
- 您可以批量发送来自同一用户的推文,并作为一个大块发送。而不是个人电话。例如,如果您只是想捕捉整体情绪,这可能无济于事。
我正在尝试处理存储在文本文件中的推文。我的代码读取推文(一条一条),处理它们,然后将 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 "--------------------------------"
简短的回答是您应该在代码的主要部分之间放置时间标记以确定最慢的部分。
其他提高速度的选项。
- 您可以创建一个线程应用程序,一次发送 10-20 个调用。这应该会将您的速率提高到每分钟 280-560 条推文。
如果您使用的是精简版,请确保您没有限制自己的速率。
- 您可以批量发送来自同一用户的推文,并作为一个大块发送。而不是个人电话。例如,如果您只是想捕捉整体情绪,这可能无济于事。