Cómo calcular la similitud semántica entre un automóvil y una bicicleta mediante el algoritmo Jian y Conrath

Gracias por el A2A. Si está preguntando por la mecánica, así es cómo podría hacer esto en Python con NLTK:

desde nltk.corpus importa wordnet como wn
de nltk.corpus import wordnet_ic

cars = wn.synsets (“auto”, “n”)
bicicletas = wn.synsets (“bicicleta”, “n”)

brown_ic = wordnet_ic.ic (“ic-brown.dat”)
semcor_ic = wordnet_ic.ic (“ic-semcor.dat”)

para automóvil en automóviles:
para bicicleta en bicicleta:
jcs_brown = car.jcn_similarity (bicicleta, brown_ic)
jcs_semcor = car.jcn_similarity (bicicleta, semcor_ic)
print (“JCS (% s,% s) = (% .4f,% .4f)”%
(str (coche), str (bicicleta), jcs_brown, jcs_semcor))

La salida de este fragmento de código se ve así:

JCS (Synset (‘car.n.01’), Synset (‘motorcycle.n.01’)) = (0.0000, 0.0000)
JCS (Synset (‘car.n.01’), Synset (‘bicycle.n.01’)) = (0.2540, 0.2203)
JCS (Synset (‘car.n.02’), Synset (‘motorcycle.n.01’)) = (0.0000, 0.0000)
JCS (Synset (‘car.n.02’), Synset (‘bicycle.n.01’)) = (0.2252, 0.1449)
JCS (Synset (‘car.n.03’), Synset (‘motorcycle.n.01’)) = (0.0000, 0.0000)
JCS (Synset (‘car.n.03’), Synset (‘bicycle.n.01’)) = (0.0758, 0.0000)
JCS (Synset (‘car.n.04’), Synset (‘motorcycle.n.01’)) = (0.0000, 0.0000)
JCS (Synset (‘car.n.04’), Synset (‘bicycle.n.01’)) = (0.0758, 0.0000)
JCS (Synset (‘cable_car.n.01’), Synset (‘motorcycle.n.01’)) = (0.0000, 0.0000)
JCS (Synset (‘cable_car.n.01’), Synset (‘bicycle.n.01’)) = (0.0758, 0.0000)

Esto se basa en la documentación que se encuentra en esta página: Interfaz de WordNet.

También he escrito una interfaz similar a NLTK en Scala (aquí: sujitpal / scalcium) usando ws4j – Similitud de WordNet para Java – Google Project Hosting, por lo que también puede hacer algo similar en Java (u otro lenguaje basado en JVM).

More Interesting

¿Cuáles son algunos de los principales factores que pueden afectar la velocidad de ejecución de un algoritmo?

¿Cómo usaría BFS en un árbol para imprimir los valores de cada nivel por separado?

Dada una serie de dígitos, ¿cómo los clasifica con la complejidad temporal o (n)?

Cómo resolver el problema ALCATRAZ3 (The honeycomb maze) en SPOJ

¿Cuál es la mejor manera de aprender el comercio algorítmico en Python y probar modelos?

Cómo usar la primera búsqueda en profundidad en un laberinto

Cómo resolver CCC2016S4

Cómo demostrar que puedes ir de C a L con secuencias de vuelos

¿Es posible aprender automáticamente los diferentes métodos y algoritmos de aprendizaje automático?

Creo que soy de mente recursiva. No quiero pero observo mi pensamiento mientras estoy pensando en resolver cualquier problema. Y no encuentra solución. ¿Qué hacer?

Dado un componente fuertemente conectado, ¿puede determinar en tiempo lineal si la eliminación de un solo nodo convierte el SCC en un gráfico acíclico dirigido?

¿Cuál es la última actualización del algoritmo SEO de Google?

Los electrones son extraños. ¿Cómo conocen el camino más corto al suelo? ¿No tendrían que 'mirar' hacia adelante?

¿Son suficientes los tutoriales del codificador superior de la estructura de datos y los algoritmos para obtener una base sólida en la programación?

¿Por qué no ha habido un codificador indio en la región 2400+ después de Rudradev Basak, especialmente cuando la cultura de codificación en el país está en aumento?