Python e algoritmo tfidf, tornam mais rápido?

Estou implementando o tf-idflgoritmo @ em um aplicativo Web usando Python, no entanto, é extremamente lento. O que eu basicamente faço é:

1) Crie 2 dicionários:

Primeiro dicionário: chave (ID do documento), valor (lista de todas as palavras encontradas (incl. Repetidas) no documento)egundo dicionário; chave (ID do documento), valor (conjunto que contém palavras exclusivas do documento)

Agora, há uma petição de um usuário para obter os resultados do documento d. O que eu faço é:

2) Passe o loop sobre as palavras exclusivas do segundo dicionário para o documento d e para cada palavra exclusiva que obtemos:

2.1) tf score (quantas vezes w aparece em d: loop sobre a lista de palavras do primeiro dicionário do documento)

2.2) pontuação df (quantos documentos contêm w: repetindo o conjunto de palavras de todos os documentos (segundo dicionário) e verifique se w está contido). Estou usando um conjunto, pois parece ser mais rápido verificar se um conjunto contém uma palavra em comparação com uma list

@Step 2.2 é terrivelmente lento. Por exemplo, com 1000 documentos e para um documento com 2313 palavras únicas, leva cerca de 5 minutos para produzir os resultado

Existe alguma outra maneira de acelerar a etapa 2.2? Os dicionários demoram para iterar?

questionAnswers(2)

yourAnswerToTheQuestion