Каковы показатели скорости в Уотсон-НЛУ?

Я пытаюсь обработать твиты, хранящиеся в текстовом файле. Мой код читает твиты (один за другим), обрабатывает их, а затем сохраняет результаты 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 ответ

Решение

Короткий ответ: вы должны поместить временные маркеры между основными частями вашего кода, чтобы определить, что является самым медленным.

Другие варианты улучшения скорости.

  1. Вы можете создать потоковое приложение, которое отправляет, скажем, 10-20 вызовов одновременно. Это должно увеличить вашу скорость до 280-560 твитов в минуту.

Если вы используете облегченную версию, вы должны быть уверены, что не ограничиваете себя.

  1. Вы можете пакетировать твиты от одного и того же пользователя и отправлять их в виде большого блока. Вместо индивидуальных звонков. Например, если вы просто пытаетесь уловить общее настроение, это может не помочь.
Другие вопросы по тегам