Спасибо за ответ, думаю, это можно считать академическим проектом. Я уже обнаружил, что самая трудоемкая часть - это расчет df.

лизуютс-IDF алгоритм в веб-приложении, использующем Python, однако он работает крайне медленно. Что я в основном делаю:

1) Создать 2 словаря:

Первый словарь: ключ (идентификатор документа), значение (список всех найденных слов (включая повторные) в документе)Второй словарь; ключ (идентификатор документа), значение (набор, содержащий уникальные слова документа)

Теперь есть ходатайство пользователя, чтобы получить результаты tfidf документа d. Что я делаю это:

2) Зациклите уникальные слова второго словаря для документа d, и для каждого уникального слова w получим:

2.1) оценка tf (сколько раз w появляется в d: цикл по списку слов первого словаря для документа)

2.2) оценка df (во скольких документах содержится w: перебирает набор слов всех документов (второй словарь) и проверяет, содержится ли w). Я использую набор, так как кажется, что он быстрее проверяет, содержит ли набор слово по сравнению со списком.

Шаг 2.2 ужасно медленный. Например, имея 1000 документов, а для документа с 2313 уникальными словами, вывод результатов занимает около 5 минут.

Есть ли другой способ сделать шаг 2.2 быстрее? Являются ли словари медленными для повторения?

Ответы на вопрос(2)

Ваш ответ на вопрос