Estou planejando usar o classificador SVM (scikit linear support vector machine) para classificação de texto em um corpus composto por 1 milhão de documentos rotulados. O que pretendo fazer é que, quando um usuário digitar alguma palavra-chave, o classificador primeiro a classifique em uma categoria e, em seguida, uma consulta subsequente de recuperação de informações ocorrerá nos documentos dessa categoria. Eu tenho algumas perguntas:
- Como confirmo que a classificação não levará muito tempo? Não quero que os usuários gastem tempo aguardando o término de uma classificação para obter melhores resultados.
- O uso da biblioteca scikit do Python para sites / aplicativos da web é adequado para isso?
- Alguém sabe como a amazon ou o flipkart realizam a classificação nas consultas dos usuários ou usam uma lógica completamente diferente?
Respostas:
A única maneira confiável de ver quanto tempo leva é codificá-lo e tentar. O treinamento levará mais tempo, e você poderá salvar seu modelo (pickle) para usá-lo mais tarde.
fonte
Não vejo um grande problema aqui. Então, eu tentaria responder a todas as suas perguntas do ponto de vista do nível de produção:
Pegue um subconjunto dos dados do corpus que você possui (você pode fazê-lo aleatoriamente, sem necessidade de amostragem) e teste seu algoritmo nele, e eles os aproximam / generalizam no conjunto de dados geral.
(O SVM é comparativamente mais rápido. No entanto, faça o processo acima apenas para ter certeza.)
E teste-o no ambiente de desenvolvimento antes de avançar para a produção.
É sim. Ele já está sendo usado por um bom grupo de empresas por aí.
A terceira pergunta sobre Amazon e Flipkart não pode ser respondida por alguém de fora de suas equipes.
Além disso, recomendo que você use as técnicas de mapreduce para treinar seus modelos. E, como já recomendado, escolha seus modelos para que você não precise treiná-los com todas as solicitações.
fonte