La primera parte, el conteo, lo sé hacer: creo un hash con clave y frecuencia y voy añadiendo valores. Él mismo está ordenado de mayor a menor por frecuencia de aparición.
Mi problema surge cuando una vez tengo ese hash, no sé cómo hacer para que el segundo se compare con el primero y me diga cuánto se parecen y así hasta n comparaciones, siempre el de abajo con todos los de arriba.
ejemplo:
- pentium comp dell 25
comp dell pentium 10
pentium comp ibm 12
ibm pentium comp 22
- pentium comp dell 25 = comp dell pentium 10 | 100%
pentium comp ibm 12 = ibm pentium comp 22 | 100%
pentium comp dell 25 = pentium comp ibm 12 | 80%
pentium comp dell 25 = ibm pentium comp 22 | 80%
He probado con ngramas pero no lo consigo. El hecho de contar con la frecuencia es bueno porque se puede usar para luego cambiar una forma por la otra, si pentium comp dell aparece 25 veces y comp dell pentium aparece 10 y entre ambas hay un 100% de similaridad me quedo con la de mayor frecuencia.
Espero que puedan darme una manito y gracias.