Advertisement
Guest User

jaccardcoeficient.c

a guest
Dec 20th, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Calcular similitud sintáctica usando el coeficiente de Jaccard (basado en shingles) #
  4. documents     = ["También es texto una composición de caracteres imprimibles (con grafema) generados por un algoritmo de cifrado que, aunque no tienen sentido para cualquier persona, sí puede ser descifrado por su destinatario original. En otras palabras, un texto es un entramado de signos con una intención comunicativa que adquiere sentido en determinado contexto.",
  5.                  "También es texto una composición imprimible de caracteres generados por un algoritmo de cifrado que, a pesar de no tener sentido para cualquier persona, sí puede ser descifrado por el destinatario. En resumen, un texto es un conjunto de signos con una intención comunicativa que adquiere sentido en contextos determinados."]
  6. threshold     = 0.8
  7.  
  8. def __extractShingles(document,n):
  9.     document = document.split(" ")
  10.     ret      = set()
  11.     for i in xrange(len(document)-n+1):
  12.         res = ""
  13.         for j in xrange(n): res += document[i+j]
  14.         ret.add(res)
  15.     return ret
  16.  
  17. def __jaccardCoeficient(setDocument1,setDocument2):
  18.     return float(len(setDocument1.intersection(setDocument2)))/float(len(setDocument1.union(setDocument2)))
  19.  
  20. print __jaccardCoeficient(__extractShingles(documents[1],2),__extractShingles(documents[0],2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement