Estoy tratando de buscar subcadenas largas y aproximadas en una base de datos grande. Por ejemplo, una consulta podría ser una subcadena de 1000 caracteres que podría diferir de la coincidencia por una distancia de Levenshtein de varios cientos de ediciones. He oído que los q-gramas indexados pueden hacer esto, pero no conozco los detalles de la implementación. También he escuchado que Lucene podría hacerlo, pero ¿el algoritmo levenshtein de Lucene es lo suficientemente rápido para cientos de ediciones? Tal vez algo fuera del mundo de la detección de plagio? Cualquier consejo es apreciado.Buscar (muy) subcadenas aproximadas en una base de datos grande
Respuesta
Q-gramos podría ser un enfoque, pero hay otros, como explosiva, BlastP - que se utilizan para la proteína, partidos de nucleótidos etc.
Simmetrics La biblioteca es una colección completa de los enfoques distancia cadena.
También debería mirar la similitud Cosine – Mikos
Lucene no parece ser la herramienta adecuada aquí. Además de las buenas sugerencias de Mikos, he oído hablar de AGREP, FASTA y Locality-Sensitive Hashing(LSH). Creo que un método eficiente debería primero podar el espacio de búsqueda en gran medida, y solo entonces hacer una puntuación más sofisticada en los candidatos restantes.
- 1. diseño de base de datos muy grande para buscar texto
- 2. Actualizar tabla de base de datos PostgreSQL MUY GRANDE eficientemente
- 3. Consejos para crear una base de datos de hashes muy grande
- 4. Establecer la clave principal en una base de datos muy grande
- 5. Buscar todas las subcadenas (en inglés) de una cadena determinada
- 6. Estructura de datos muy grande necesaria. En busca de ideas
- 7. Filtrar archivos en una carpeta muy grande
- 8. SQLite: Búsqueda de subcadenas eficiente en la tabla grande
- 9. WAMP server. ¿Directorio de datos muy grande en MySQL?
- 10. Cómo generar un diagrama de un esquema de base de datos muy grande (SQL Server)
- 11. Algoritmo rápido para buscar subcadenas en una cadena
- 12. Cómo buscar fragmentos de texto en una base de datos
- 13. Buscar tamaño de una base de datos en Oracle
- 14. cadena muy grande en la memoria
- 15. ¿Cómo puedo usar un diccionario muy grande en C#?
- 16. Buscar todas las subcadenas entre dos cadenas
- 17. ¿Qué es DEMASIADO GRANDE para una base de datos?
- 18. Echo un número muy grande
- 19. HTTP Descargar archivo muy grande
- 20. Inserte una gran cantidad de datos en la base de datos en inserciones muy pequeñas
- 21. Aplicar PCA en matriz dispersa muy grande
- 22. Buscar y reemplazar palabras completas (no subcadenas) en Emacs
- 23. ¿Cómo debo lidiar con una matriz muy grande en Java?
- 24. Círculo de lienzo HTML5 muy grande impreciso
- 25. Linq a SQL y modelo de base de datos grande
- 26. PostgreSQL: Definición de una clave principal en una base de datos grande
- 27. ¿Está almacenando una matriz o cadena de caracteres muy grande?
- 28. Calculando el inverso de una matriz muy grande
- 29. ¿Qué sucede si necesito una identificación de autoincrement muy grande?
- 30. ¿Cómo mides un proyecto pequeño, grande y muy grande?
Fuera de interés, ¿cuál sería la información de cadena que está buscando - información textual o algo estructurado en una forma diferente? –