Medición de similitud semántica entre dos frases [cerradas] -- algorithm campo con nlp campo con semantics campo con wordnet camp Relacionados El problema

Measuring semantic similarity between two phrases [closed]


20
vote

problema

Español
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas.

¿Quieres mejorar esta pregunta? actualizar la pregunta para que sea on-topic para el desbordamiento de la pila.

cerrado 5 años .

Mejorar esta pregunta

Quiero medir la similitud semántica entre dos frases / oraciones. ¿Hay algún marco que pueda usar directamente y de manera confiable?

Ya he comprobado Esta pregunta , pero es bastante vieja y no pude encontrar una respuesta real útil allí. Había un enlace , pero encontré este poco fiable.

e.g.:
Tengo una frase: fieltro aplastado
Tengo varias opciones: la fuerza hacia adentro, pulverizada, destruida emocionalmente, remodelando, etc.
Quiero encontrar el término / frase con mayor similitud con la primera.
La respuesta aquí es: destruida emocionalmente.

La imagen más grande es: Quiero identificar qué marco de Framene Partes al verbo dado según su uso en una oración.

Actualización: Encontré esta biblioteca muy útil para medir la similitud entre dos palabras. También el mecanismo de similitud conceptual es muy bueno.

y esta biblioteca para medir la similitud semántica entre oraciones

Si alguien tiene alguna idea, por favor compare.

Original en ingles

I want to measure semantic similarity between two phrases/sentences. Is there any framework that I can use directly and reliably?

I have already checked out this question, but its pretty old and I couldn't find real helpful answer there. There was one link, but I found this unreliable.

e.g.:
I have a phrase: felt crushed
I have several choices: force inwards,pulverized, destroyed emotionally, reshaping etc.
I want to find the term/phrase with highest similarity to the first one.
The answer here is: destroyed emotionally.

The bigger picture is: I want to identify which frame from FrameNet matches to the given verb as per its usage in a sentence.

Update : I found this library very useful for measuring similarity between two words. Also the ConceptNet similarity mechanism is very good.

and this library for measuring semantic similarity between sentences

If anyone has any insights please share.

           
 
 

Lista de respuestas

9
 
vote

Este es un problema muy complicado.

La técnica principal que puedo pensar (antes de entrar en los procesos de PNL más complicados) sería aplicar la similitud de coseno (o cualquier otra métrica) con cada par de frases. Obviamente, esta solución sería muy ineficiente en este momento debido al problema no coincidente: las oraciones pueden referirse al mismo concepto con palabras diferentes.

Para resolver este problema, debe transformar la representación inicial de cada frase con un significado más "conceptual". Una opción sería extender cada palabra con sus sinónimos (es decir, usando wordnet , otra opción es aplicar métricas como SEMANTICS DS DISTRIBUTIVO ( http://liawww.epfl.ch/publications/archive/besanconetal2001.pdf ) que extiende la representación de cada término con las palabras más probables para aparecer con él.

Ejemplo: Una representación de un documento: {"CAR", "RACE"} se transformaría en {"CAR", "Automóvil", "Race"} con sinónimos. Mientras que, con DS, sería algo así como: {"Coche", "Rueda", "Carretera", "Piloto", ...}

Obviamente, esta transformación no será binaria. Cada término tendrá algunos pesos asociados.

Espero que esto ayude.

 

This is a very complicated problem.

The main technique that I can think of (before going into more complicated NLP processes) would be to apply cosine (or any other metric) similarity to each pair of phrases. Obviously this solution would be very inefficient at the moment due to the non-matching problem: The sentences might refer to the same concept with different words.

To solve this issue, you should transform the initial representation of each phrase with a more "conceptual" meaning. One option would be to extend each word with its synonyms (i.e. using WordNet, another option is to apply metrics such as distributional semantics DS (http://liawww.epfl.ch/Publications/Archive/Besanconetal2001.pdf) that extend the representation of each term with the more likely words to appear with it.

Example: A representation of a document: {"car","race"} would be transform to {"car","automobile","race"} with synonyms. While, with DS it would be something like: {"car","wheel","road","pilot", ...}

Obviously this transformation won't be binary. Each term will have some associated weights.

I hope this helps.

 
 
   
   
1
 
vote

Tal vez el CORTICAL.IO API podría ayudarlo con su problema. El enfoque aquí es que cada palabra se convierte en una huella digital semántica que caracteriza el significado de él con características semánticas 16K. Frases, oraciones o textos más largos se convierten en huellas dactilares al orar las huellas digitales de la palabra. Después de esta conversión en una distancia semántica de representación binaria (numérica), se puede calcular fácilmente utilizando medidas de distancia como la distancia euclidiana o la similitud de coseno. Todas las funciones necesarias de conversión y comparación son proporcionadas por la API.

 

Maybe the cortical.io API could help with your problem. The approach here is that every word is converted into a semantic fingerprint that characterizes the meaning of it with 16K semantic features. Phrases, sentences or longer texts are converted into fingerprints by ORing the word fingerprints together. After this conversion into a (numeric) binary vector representation semantic distance can easily be computed using distance measures like Euclidian Distance or cosine-similarity. All necessary conversion- and comparison-functions are provided by the api.

 
 

Relacionados problema

9  ¿Cómo obtener todas las hipónimos de una palabra / sintonizar en Python NLTK y WordNet?  ( How to get all the hyponyms of a word synset in python nltk and wordnet ) 
Tengo una lista de todos los sustantivos en Wordnet Ahora quiero dejar solo las palabras que son vehículos y eliminar el resto. ¿Cómo lo hago? A continuación ...

2  Diferencia entre ontología y wordnet [cerrado]  ( Difference between ontology and wordnet ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

1  ¿Cómo usar NLTK WORDNT para verificar las palabras incompletas en Python?  ( How to use nltk wordnet to check for incomplete words in python ) 
Tengo un conjunto de palabras: {corporal, perro, gato, distingue, compañía, teléfono, autoridad, vhicule, asientos, Ligero, reglas, residente, experienci...

1  Sedimpling Algunos plurales con Lemmatizer Wordnet no funcionan  ( Stemming some plurals with wordnet lemmatizer doesnt work ) 
Hola tengo un problema con NLTK (2.0.4): Estoy tratando de derivar la palabra "hombres" o "dientes", pero no parece funcionar. Aquí está mi código: An ex...

4  Extracción de relaciones entidades-verbales de bases de conocimiento abierto como Freebase y Dbpedia  ( Extracting entity verb relations from open knowledge bases like freebase and dbp ) 
¿Hay alguna forma de que podamos extraer las relaciones entidades y verbales de KBS ya existentes en línea como Freebase, Dbpedia, Wikidata o Wordnet, verifiq...

0  Número de instalación de WordNet 3.0 en Fedora 17  ( Wordnet 3 0 installation issue on fedora 17 ) 
Estoy tratando de instalar WordNet 3.0 en Fedora 17 He descargado tar.gz para WordNet 3.0 de su sitio web. He ejecutado siguiendo con éxito Uptil ahora: ...

63  Lemmatización de Wordnet y POS Etiquetado en Python  ( Wordnet lemmatization and pos tagging in python ) 
Quería usar Lemmatizer WordNet en Python y he aprendido que la etiqueta POS predeterminada es sustantivo y que no emite el lemma correcto para un verbo, a men...

139  ¿Cómo comprobar si una palabra es una palabra inglesa con Python?  ( How to check if a word is an english word with python ) 
Quiero registrar en un programa de Python si una palabra está en el diccionario de inglés. Creo que la interfaz de WordNet NLTK podría ser la forma de ir, p...

5  Lobo (WordNet Libre du Français, Free French Wordnet) Especificaciones  ( Wolf wordnet libre du fran%c3%a7ais free french wordnet specifications ) 
Estoy tratando de crear una interfaz para Wolf (WordNet Libre du Français, Wordnet Free French). El objetivo es replicar el awndatabasemanger para el WordNet ...

0  Extraer el recuento de palabras / recuento de frecuencia utilizando la base de datos WordNet  ( Extracting word count frequency count using wordnet database ) 
Estoy buscando una extracción de conteo / frecuencia de palabras de acuerdo con el uso de la palabra en general inglés como http: // www.wordcount.org/main.p...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos