Software para realizar una búsqueda inversa: hacer coincidir un cuerpo de texto con una frase conocida

Tengo una gran lista de frases conocidas. Dado un cuerpo de texto (Diga un tweet), me gustaría ver si contiene una frase conocida de una lista grande. Estoy seguro de que debe existir algo como esto (quizás de los nuevos trajes cognitivos de IBM Watson/Microsoft Cortana o tal vez algo como Apache lucene). Desafortunadamente, no sé el nombre de este problema para identificar un producto que lo resuelva :)

Respuestas (2)

Lo que está tratando de hacer es parte del procesamiento del lenguaje natural y una de las herramientas importantes para esto es Python Natural Language Toolkit ( nltk ).

Se puede encontrar un buen punto de partida en un artículo y coincidencia de un cuaderno de Jupyter con una frase difusa que coincida con Python que analiza la tokenización, la distinción entre mayúsculas y minúsculas, la eliminación de palabras, la derivación, la lematización y apunta hacia la coincidencia parcial.

El proceso que tendrás que seguir es el siguiente:

  1. Tome sus entradas en la lista y para cada entrada produzca una huella dactilar tokenizada, de caso fijo, con palabra vacía, derivada y lematizada de esa entrada.
  2. Tome su tweet, o lo que sea, y haga lo mismo.
  3. Busque en su lista de huellas dactilares puntuando cada una por el número de coincidencias con la huella dactilar de los tweets.
  4. Cualquiera que puntúe por encima de un umbral determinado puede analizarse más a fondo posiblemente para ver si acortar el tweet da como resultado una coincidencia lo suficientemente cercana como para ser considerado una cita.

Un libro sobre el uso de nltk está disponible en línea, pero es solo uno de los miles de libros y artículos sobre el tema.

Este es un problema de búsqueda ordinario. Solo necesita combinar todas sus frases conocidas en un solo término de búsqueda primero. Con expresiones regulares, esto se puede lograr de manera más directa con el operador de alternancia |. Para motores de búsqueda con operadores de estilo booleano, utilice OR.

Para recomendar un programa en particular (ya que se trata de Recomendaciones de software), intente grep. Puede construir una expresión regular mediante programación y luego pasarla grepcon xargs.