Avoir un corpus de plus d'un million de documents
Pour un document donné, vous voulez trouver des documents similaires en utilisant le cosinus comme dans le modèle d'espace vectoriel
Tous les tf ont été normalisés en utilisant une fréquence augmentée, pour éviter un biais vers des documents plus longs comme dans ce tf-idf :
Avoir pré-calculé tout
Avoir les valeurs du dénominateur pré-calculées
Donc, pour un donné, il faut marquer plus de 1 million de
Avoir un seuil de 0,6 cosinus pour la similitude d 1 d 2
Je peux observer que pour unil existe une plage assez étroite depour cosinus 0.6
Par exemple dans une recherche similaire pour un cosinus de 0.6 et unde 7,7631 alorsplage de 7,0867 à 8,8339
En dehors du seuil de cosinus 0,6plage de 0,7223 à 89,3395
C'était avec la normalisation standard des documents tf.
Il examine BEAUCOUP dequi n'ont aucune chance d'être un match cosinus 0.6
Enfin la question:
Pour un donneret cosinus de> = 0,6 comment déterminer la plage dequi ont une chance?
Quipuis-je éliminer en toute sécurité?
Je connais également le nombre de termes en et s'il y a une plage de nombre de termes .
Via l'expérimentationet
semble être sûr, mais j'espère qu'il y a une portée qui s'est avérée sûre
| | d 2 | | < | | d 1 | | / .8
Créé des cas de test avec des termes très uniques, certains pas si uniques et certains courants. Effectivement, vous pouvez prendre le terme le plus unique et augmenter cette fréquence dans la comparaison. Le numérateur augmentera (produit scalaire) et il en sera de même pour || comparer || et obtiendra un cosinus très proche de 1.
Type de relation et PAS la question.
J'utilise également le tf-idf pour regrouper des documents en groupes. La clientèle dans laquelle je vends est habituée à se rapprocher des groupes de dup. Là, je prends une approche connexe dans je regarde comme le plus petit nombre de termes et je l'évalue par rapport au nombre de termes jusqu'à 3x. Ainsi, un nombre de termes de 10 ressemble à 10 à 30 (4-9 avait déjà son tir à 10). Ici, je peux me permettre d'en manquer un, de le récupérer dans un autre. J'ai terminé 10% et le plus grand ratio est de 1,8.
Veuillez identifier les défauts de cette analyse
Comme le souligne AN6U5 il y a un défaut dans cette analyse
Ce n'est plus un cosinus si le document est normalisé sur pondéré
Et comme le souligne Mathew ne peut pas non plus conclure d1⋅d2≤d1⋅d1
Je suis en espérant toujours quelque chose pour me donner un lien solide, mais les gens qui semblent connaître ce genre de choses me disent non,
je ne veux pas changer la question, alors ignorez cela,
je ferai une analyse et peut-être publier une question distincte sur la normalisation des documents
Pour le but de cette question suppose que le document est normalisé sur tf brut
Désolé mais je ne suis pas bon avec ce que le balisage est utilisé pour faire les équations
Donc dans ma notation
|| d1 || = sqrt (somme (w1 x w1))
d1 point d2 = somme (w1 X w2)
Supposons que d1 est le document le plus court
Le meilleur d1 point d2 qui peut être atteint est d1 point d1
Si d1 est marié 100 paul 20
Et d2 est marié 100 paul 20 peter 1
Normalisé
d1 est marié 1 paul 1/5
d2 est marié 1 paul 1/5 peter 1/100
Clairement marier et paul ont le même idf dans les deux documents
Le meilleur point d1 possible d2 est d1 point d1
La correspondance maximale possible avec d1 est d1
cos = d1 point d1 / || d1 || || d2 ||
carré des deux côtés
cos X cos = (d1 point d1) X (d1 point d1) / ((d1 point d1) X (d2 point d2)) cos X cos = (d1 point d1) / (d2 point d2)
prendre le carré racine des deux côtés
cos = || d1 || / || d2 ||
est || d2 || pas limité par le cos?
Si j'utilise juste || d2 || > = cos || d1 || et || d2 || <= || d1 || / cos j'obtiens la vitesse de calcul dont j'ai besoin