Estoy tratando de implementar la predicción mediante el análisis de oraciones. Tenga en cuenta los siguientes [más] aburridas frasesEstructura de datos para almacenar asociaciones de palabras
Call ABC
Call ABC again
Call DEF
Me gustaría tener una estructura de datos para las oraciones anteriores de la siguiente manera:
Call: (ABC, 2), (again, 1), (DEF, 1)
ABC: (Call, 2), (again, 1)
again: (Call, 1), (ABC, 1)
DEF: (Call, 1)
En general, Word: (Word_it_appears_with, Frequency), ....
Tenga en cuenta la inherente redundancia en este tipo de datos. Por supuesto, si la frecuencia de ABC
es 2 en Call
, la frecuencia de Call
es 2 en ABC
. ¿Cómo optimizo esto?
La idea es utilizar esta información cuando se escribe una nueva oración. Por ejemplo, si se ha tipeado Call
, de los datos, es fácil decir que ABC
es más probable que esté presente en la oración, y lo ofrece como primera sugerencia, seguido de nuevo y DEF
.
Me doy cuenta de que esta es una de un millón de formas posibles de implementar la predicción, y espero con impaciencia las sugerencias de otras formas de hacerlo.
Gracias
Estoy bastante seguro de que no hay una respuesta bien establecida porque su objetivo no es lo suficientemente tangible. Básicamente, este es un problema de IA, y las soluciones de IA generalmente tienen sus propios caprichos con los que la gente puede vivir; sin embargo, sin conocer su contexto exacto, es difícil decir qué caprichos serían aceptables. Por este motivo, votaré para cerrar su pregunta. (Es una muy interesante, que no es adecuada para Stack Overflow en mi opinión.) – zneak
Dicho esto, podría usar una representación en árbol para sus palabras, y hacer que cada rama del árbol tenga una probabilidad. Esto podría funcionar bien si la entrada es repetitiva y la sintaxis relativamente fija, pero tendrá problemas para emparejar un lenguaje natural como ese. – zneak
Podría usar un árbol, sí, pero me gustaría eliminar la redundancia en los datos: la frecuencia de word1 que ocurre con word2 obviamente será la misma que con word2 que ocurre con word1. Además, la entrada es continua, por lo que las probabilidades están fuera de discusión. – WeNeigh