Es posible que desee buscar la categoría de "medidas de similitud" o "medidas de distancia" (que es diferente, en la jerga de la minería de datos, de "clasificación")
Básicamente, una medida de similitud es una manera en matemáticas puede:.
- tomar dos conjuntos de datos (en su caso, las palabras)
- Hacer algunos cálculos/ecuación/algoritmo
- El resultado es que tiene un número que le dice qué tan "similar" es esa información.
Con medidas de similitud, este número es un número entre 0 y 1, donde "0" significa "nada se compara en absoluto" y "1" significa "idéntico"
Así que en realidad se puede pensar en su oración como un vector - y cada palabra en su oración representa un elemento de ese vector. Del mismo modo para la lista de palabras clave de cada categoría.
Y entonces usted puede hacer algo muy simple: tomar el "cosine similarity" o "Jaccard index" (. Dependiendo de cómo se estructura sus datos)
Qué tanto de estas métricas hacen es que toman ambos vectores (la entrada oración, y su lista de "palabras clave") y darle un número. Si haces esto en todas tus categorías, puedes clasificar esos números para ver qué partido tiene el mayor coeficiente de similitud.
A modo de ejemplo:
Desde su pregunta: Transacciones
del cliente: depósitos, depósito, cliente, cuenta, cuentas
Por lo que podría construir un vector con los 5 elementos : (1, 1, 1, 1, 1). Esto significa que, para la palabra clave "transacciones del cliente", tiene 5 palabras, y (esto parecerá obvio, pero) cada una de esas palabras está presente en su cadena de búsqueda. mantente conmigo
Así que ahora usted toma su frase:
El sistema se aplicará a los depósitos de cuenta especificado de un cliente .
Esto tiene 2 palabras de las "Transacciones de Clientes" Set: {depósitos, cuentas, clientes}
(en realidad, esto ilustra otro matiz:. Que realmente tiene "cliente de" ¿Esto es equivalente al "cliente ?")
el vector para su sentencia podría ser (1, 0, 1, 1, 0)
los números 1 de este vector están en la misma posición que los números 1 de la primera vector - porque esas palabras son lo mismo.
Entonces podríamos decir: ¿cuántas veces difieren estos vectores? Permite comparar:
(1,1,1,1,1) (1,0,1,1,0)
Hm. Tienen el mismo "bit" 3 veces, en la 1.ª, 3.ª y 4.ª posición. Solo difieren en 2 bits. Entonces, digamos que cuando comparamos estos dos vectores, tenemos una "distancia" de 2. ¡Felicidades, acabamos de calcular el Hamming distance! Cuanto menor sea tu distancia de Hamming, más "similar" será la información.
(La diferencia entre una medida de "similitud" y una medida de "distancia" es que la primera se normaliza: le da un valor entre 0 y 1. Una distancia es cualquier número, por lo que solo le da un pariente valor.)
De todos modos, esta podría no ser la mejor manera de procesar el lenguaje natural, pero para sus propósitos es la más simple y podría funcionar bastante bien para su aplicación, o al menos como punto de partida.
(PD: "clasificación" - como tiene en su título - sería responder a la pregunta "Si toma mi oración, ¿en qué categoría es más probable que caiga?" Que es un poco diferente que decir "cómo Mucho más similar es mi oración a la categoría 1 que a la categoría 2 ", que parece ser lo que buscas.
¡buena suerte!
Una palabra de advertencia: las técnicas descritas aquí se aplican mejor en tareas de tipo clúster. Aquí, las listas predefinidas de palabras asociadas con cada categoría no son en absoluto elementos prototípicos y las funciones de distancia tradicionales entre estos y los elementos reales no son representativas de la pertenencia de los elementos a las categorías correspondientes. Por ejemplo, una categoría en particular puede tener docenas de palabras clave (aunque solo esperamos encontrar algunas en una instancia determinada de un elemento), dicha categoría probablemente estará subrepresentada debido a la baja puntuación en la distancia jerárquica. – mjv
Hm, tiene razón acerca de que Hamming es una medida pobre, como dice en su respuesta, sería bueno que los resultados se normalicen, para obtener una proporción de "aciertos" a "errores" para ver qué tan cerca está el los conjuntos están relacionados. Tal vez usar ese método como ejemplo fue una elección subóptima. – poundifdef
Ambos tienen razón, y lo que idealmente me gustaría hacer es normalizar el tiempo y la pluralidad tanto en palabras clave como en oraciones. De esta forma, solo incluyo "cliente" y no "clientes", "depósito" y no "depósitos" ni "depositados". Creo que Hamming todavía corre el riesgo de una representación insuficiente, pero creo que es una buena prueba de lo que estoy tratando de hacer. – technomalogical