Que yo sepa, no existe tal cosa en el mercado. Si le das un par de años, habrá ofertas comerciales. IBM ya está proporcionando un software que puede responder a preguntas basadas en datos estructurados (@IBM Watson Analytics – Descripción general – Estados Unidos). Es solo cuestión de tiempo hasta que haya una oferta similar para redes semánticas.
Estuve involucrado en una prueba de concepto de “búsqueda semántica” (lo que la gente podría llamar) una vez (diseñando el 90% de la ontología e implementando alrededor del 80% del código en torno a eso). Queríamos ver cómo el lenguaje natural y las soluciones de búsqueda empresarial existentes pueden beneficiarse de una ontología subyacente. Al final, se nos ocurrió una aplicación que respondería preguntas naturales, ya sea con un dato estructurado (valores literales), relaciones con conceptos (básicamente individuos o clases) y una porción saludable del contenido del documento, ya sea como una especie de “evidencia “para buscar dónde se mencionó lo que está pidiendo o como una búsqueda de contenido normal si la aplicación no tiene sentido para la pregunta.
Lo hicimos, en forma piloto, para algunos tipos de preguntas. En cualquier caso, el enfoque general para una pieza de software de este tipo podría terminar igual sin importar qué tipo de pregunta:
1) Analice la consulta en lenguaje natural e intente asignar clases / individuos y propiedades a la oración dada. DBPedia Spotlight lo hace de alguna manera.
2) Intente analizar las dependencias en la pregunta para identificar el sujeto de la oración y averiguar qué está pidiendo el usuario, ergo “la entidad desconocida”. Echa un vistazo a esta demostración: Página en informatik.tu-darmstadt.de:10080?
3) Presente una consulta (o más bien un conjunto de consultas) que mencione los conceptos proporcionados y devuelva el tema .
4) Clasifique cada conjunto de resultados e intente encontrar el que tenga el tema más adecuado.
- ¿Qué consejo le darías a los estudiantes de doctorado que comienzan su doctorado en aprendizaje automático?
- Estoy atrapado en la regresión. ¿Qué debo aprender después de esto?
- ¿Cuáles son las ventajas y desventajas de las API de servicios cognitivos de Microsoft?
- ¿Cuál es la mejor manera de encontrar análisis de sentimientos?
- ¿Qué especificaciones de computadora se recomiendan para entrenar redes neuronales?
Logramos realizar preguntas de propiedad simples como “¿Cuál es el peso de X?”, “¿Qué tan rápido va Y?”, “¿Cuántas X pertenecen a Y?”. Para cosas más complejas, tuvimos que hacer un árbol de decisión bastante complejo, haciendo que toda la solución no tuviera sentido, porque no se podían hacer preguntas arbitrarias.
Existen múltiples desafíos al tratar de implementar dicho sistema. Una de ellas es asignar preguntas a predicados / propiedades en su esquema de datos. Imagine la siguiente pregunta:
“¿Cuál es el auto deportivo legal de carretera más rápido”?
La consulta podría terminar siendo algo como esto:
SELECCIONE * DONDE {
? car a * someNs: sports_car.
? car a * someNs: Street-legal_vehicle.
Velocidad del coche.
} ORDER BY DESC? Velocidad. LÍMITE 1.
El desafío es identificar el modificador adjetivo (el más rápido -> automóvil) como criterio de clasificación / filtro y tratar los términos compuestos “carretera legal” y “automóvil deportivo” como conceptos de tipo o subclase. Si bien esto puede parecer bastante sencillo para este caso específico, es una tarea de PNL increíblemente complicada la mayor parte del tiempo.