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 :)
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:
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 grep
con xargs
.