¿Cómo se usa el álgebra lineal para el procesamiento del lenguaje natural en informática?

El procesamiento del lenguaje natural se basa completamente en matemáticas. Más precisamente, el 90% de esto es estadística y teoría de grafos.

No se puede “calcular” con texto. Las estadísticas requieren valores distintos o continuos (numéricos) para trabajar. Entonces, ¿cómo funciona esto?

En la mayoría de los casos, esto se hace a través de léxicos. Tomemos un mecanismo de agrupamiento simple, por ejemplo. Digamos que tienes un par de oraciones como esta:

Ayer comí una manzana y una banana.
Los plátanos y las manzanas son frutas.
Las frutas son saludables

No puedes hacer matemáticas con esto, ¿verdad?

En primer lugar, hay tareas lingüísticas reales que se pueden realizar. Algunas cosas que podría hacer son la tokenización, la lematización, la normalización . Primero, dividamos las oraciones en tokens (palabras individuales):

Ayer | Yo | comió | una | manzana | y | a | plátano | .
Plátanos | y | manzanas | son | fruta | .
Frutas | son | saludable | .

Ahora, incluso sin aplicar las matemáticas, puede ver que se necesita más trabajo para adquirir un token común (literal) entre las oraciones. Ahí es donde entra en juego la lematización . Podemos devolver todas las palabras a sus formas infinitivas:

Ayer | Yo | comer | una | manzana | y | a | plátano | .
Plátano | y | manzana | ser | fruta | .
Fruta | ser | saludable | .

Para ser exhaustivos, deberíamos poner todo en minúsculas para asegurarnos de que son exactamente los mismos tokens. Además, podríamos eliminar las palabras vacías : las palabras comunes que conocemos de antemano son irrelevantes para nuestro análisis:

ayer | comer | manzana | plátano
plátano | manzana | Fruta
fruta | saludable

Estamos bastante cerca de saberlo. Tenemos un conjunto de palabras decente, pero ¿cómo podemos hacer matemáticas con eso? Bueno, para cada algoritmo con el que trabajé, usas una función de hash o un léxico para asignar un valor numérico a cada palabra. Eso significa que terminas con una serie de números y tienes una tabla de búsqueda inversa como esta:

ayer – 1
comer – 2
manzana – 3
plátano – 4
fruta – 5
saludable – 6

Sus oraciones se convierten en un conjunto de datos tabular.

[1, 2, 3, 4]
[4, 3, 5]
[5, 6]

Para el clúster, es posible que desee trabajar con algo como ubicaciones:

[1, 2, 1]
[1, 3, 1]
[1, 4, 1]
[2, 3, 1]
[2, 4, 1]
[3, 4, 2]
[4, 5, 1]
[5, 6, 1]

En este punto, su conjunto de datos no es más que una serie de números distintos con los que puede realizar operaciones matemáticas. Por ejemplo, podría comenzar a calcular frecuencias en su corpus, calcular dependencias entre dos números, etc. Hay un montón de algoritmos que se basan en este enfoque.

El álgebra lineal se usa generalmente para calcular modelos (como redes profundas) en nlp.

El álgebra lineal es la base de muchos algoritmos nlp, como el resumen de texto, la clasificación de páginas y estos algos se utilizan popularmente para la recuperación de información.

Lo primero que me viene a la mente es la Descomposición del valor singular, que se utiliza en una serie de técnicas basadas en vectores.