J'ai un django Backend (Postgre DB). Supposons qu'une table donnée, disons A, ait un champ appelé "message". Maintenant, ce que je veux faire est de trouver tous les éléments dans A qui ont un 'message' similaire au champ 'message' d'une instance donnée. La similarité sera basée sur un algorithme. TL; DR Je souhaite rechercher des éléments en fonction de la similarité des éléments.Django: Filtre Articles semblables à donné Article
La question comporte 3 parties:
Comment puis-je faire? Puis-je le faire en temps réel (lent) ou devrais-je précalculer la similarité entre tous les éléments du tableau A. (Cela pourrait faire exploser ma base de données)
Comment puis-je trouver des similitudes entre les champs 'message'? Notez que l'article ressemble plus à un message de 400 caractères qu'à un groupe de mots-clés. J'ai rencontré de nombreux algorithmes qui calculent la distance entre les cordes, mais je ne pense pas que cela le réduira. Je pense que quelque chose de TF-IDF suivi de similarité de cosinus est plus approprié.
Comment puis-je atteindre ci-dessus dans le cadre de la production? Comme dans quelle structure de données devrait utiliser pour optimiser le temps de réponse des demandes par rapport au stockage.
Juste une idée. Marquer le champ "message" avec les mots clés importants. Ensuite, recherchez des tags. –
C'est une bonne idée. Mais la procédure doit être automatisée. Par conséquent, j'ai besoin d'un bon moyen d'extraire des mots-clés. Le problème est que 'message' pourrait être un anglais non standard. –
Umm ... Comment à propos de ceci, pour un long message si je ne considère que les verbes et les noms, ce sera raisonnablement un petit ensemble de mots-clés. En cas d'anglais non standard, il n'y a pas de solution facile. –