[Notas sobre la belleza de las matemáticas] Parte del procesamiento del lenguaje natural (1). mendelevio
Pero parece que las matemáticas y la lingüística poco tienen que ver entre sí. Durante mucho tiempo, las matemáticas se utilizaron principalmente en la astronomía y la mecánica.
En este capítulo, revisaremos el desarrollo de la era de la información y veremos cómo la lingüística se conecta lentamente con las matemáticas.
Al principio, los humanos utilizaban el sonido para difundir información.
La generación, transmisión, recepción y retroalimentación de información no se diferencia en principio de las comunicaciones más avanzadas.
Porque los primeros humanos no necesitaban mucha información para difundirse y no necesitaban el lenguaje.
Pero cuando los seres humanos progresen hasta cierto nivel, necesitarán el lenguaje.
Así que nuestros antepasados abstrajeron los mismos factores descritos por el lenguaje, como objetos, cantidades, acciones, etc., para formar el vocabulario actual.
Con el desarrollo del ser humano, cada vez hay más lenguajes y vocabulario, y el cerebro no puede recordarlos por completo. En este momento se necesita una especie de texto para registrar la información.
La ventaja de utilizar texto es que la información se puede transmitir a través del tiempo y el espacio. Dos personas pueden intercambiar información incluso si no se encuentran en el mismo lugar al mismo tiempo.
Entonces, ¿cómo crear texto? El método más directo consiste en imitar la forma del objeto a describir, lo que se denomina jeroglíficos.
En los primeros días, la cantidad de jeroglíficos estaba relacionada con la cantidad de información registrada por una civilización. En otras palabras, una gran cantidad de jeroglíficos significaba que la civilización tenía una gran cantidad de información.
Pero a medida que aumenta la cantidad de información, nadie puede aprender y recordar tantas palabras, por lo que es necesario resumirla y clasificarla. Es decir, usar una palabra para expresar el mismo significado y similar.
Por ejemplo, "sol" originalmente significa sol, pero también puede significar cielo como hablamos de él.
Este tipo de agrupación de conceptos es muy similar a la agrupación actual de procesamiento del lenguaje natural o aprendizaje automático, excepto que puede haber tomado miles de años en la antigüedad, pero ahora solo toma unas pocas horas.
Sin embargo, cuando las palabras se agrupan según su significado, siempre se produce ambigüedad, es decir, en un entorno específico, no está claro qué significado representa una palabra polisémica.
Para solucionar este problema, depende del contexto. La mayoría de las desambiguaciones se pueden hacer, pero a veces no. Incluso los mejores modelos probabilísticos contextuales a veces fallan.
Debido a razones geográficas, las diferentes civilizaciones generalmente tienen escrituras e idiomas diferentes. Cuando dos civilizaciones se encuentran, se necesita traducción.
La razón por la que la traducción es posible: los diferentes sistemas de escritura son equivalentes a la hora de registrar información. El texto es sólo el portador de información, no la información en sí, e incluso puede transmitirse mediante números.
Hoy en día sabemos más sobre Egipto que sobre la civilización maya, gracias a que los egipcios registraban la información más importante de la vida a través de la escritura, lo que nos resulta instructivo:
Las palabras sólo entran en juega cuando no hay espacio en tu mente para la información, y los números sólo entran en juego cuando necesitas contar tus posesiones para dejarlo claro.
Los primeros números no tenían forma escrita, solo chasqueaban los dedos, por eso usamos decimal.
Poco a poco, los antepasados descubrieron que diez dedos no eran suficientes. El método más sencillo es contar los dedos de los pies, pero esto no resuelve el problema subyacente. Entonces inventaron el sistema decimal, las décimas.
Entonces, ¿por qué las civilizaciones existentes utilizan el sistema decimal en lugar del sistema decimal?
El decimal es menos conveniente que el decimal. Por ejemplo, si usa el sistema decimal, solo necesita memorizar la tabla de multiplicar de 1999. Si usa el sistema decimal, necesita memorizar el tablero Go 19*19.
Para la representación numérica de diferentes números, tanto China como Roma utilizaron unidades claras para expresar diferentes órdenes de magnitud.
Los chinos usaban diez megas, los romanos I por uno, V por cinco, y así sucesivamente.
Ambas representaciones introducen inconscientemente el concepto de codificación ingenua.
La forma más eficaz de describir los números es la de los antiguos indios. Inventaron el número arábigo para 10, que es más abstracto que los chinos y romanos, que además marca la separación de números y palabras. Objetivamente hablando, el lenguaje natural y las matemáticas no han repetido la trayectoria de miles de años.
Es un salto de los jeroglíficos a la escritura pinyin, porque los humanos adoptan inconscientemente la codificación de información en la forma en que describen los objetos, desde su apariencia hasta conceptos abstractos.
Y en la escritura romana, las palabras de uso común son más cortas y las palabras menos comunes son más largas. Lo mismo ocurre con la escritura italiana que tiene menos trazos y las palabras poco comunes tienen más trazos. El principio de codificación más corto en la teoría de la información.
Sistema de Lengua Romana:
Antes de la invención del papel, escribir no era fácil. Por lo tanto, debemos valorar la tinta como el oro, por lo que el texto escrito en chino antiguo es muy conciso, pero difícil de entender. Sin embargo, el idioma hablado no era muy diferente al que es ahora. Esto es similar a algunos principios de la ciencia de la información actual.
Es por esto que el diseño web de la Internet actual y de la Internet móvil es completamente consistente.
Si utiliza banda ancha, la página debe diseñarse para ser relativamente grande. Sin embargo, debido a la limitación del ancho de banda del canal aéreo, los terminales de telefonía móvil tienen una velocidad de transmisión lenta y una resolución baja.
La Biblia registra las historias de los antepasados judíos desde la creación del mundo. La escritura de la Biblia se llevó a cabo durante muchos siglos y varias personas la hicieron, por lo que los errores al copiar son inevitables.
Para evitar errores de transcripción, los judíos inventaron un método similar al dígito de control. Relacionaron letras hebreas con un número, y cada línea sumaba un número especial, que era el código de verificación.
Después de copiar una página, debes sumar las palabras de cada línea para ver si el código de verificación es el mismo que el original.
La formación de palabras desde letras hasta palabras es la regla de codificación de las palabras, y la gramática es la regla de codificación y decodificación del lenguaje.
En comparación, las palabras son conjuntos cerrados finitos, mientras que el lenguaje es conjuntos abiertos infinitos. Matemáticamente hablando, el primero tiene reglas completas de codificación y decodificación, pero el lenguaje no, es decir, el lenguaje tiene lugares que no pueden ser cubiertos por reglas gramaticales. Esta es la llamada "oración enferma". Entonces, ¿es un par de idiomas o un ¿Qué pasa con la gramática? Algunas personas insisten en partir de un corpus real, mientras que otras insisten en partir de reglas.
Este capítulo cuenta la historia de las palabras, los números y el lenguaje, ayudando a los lectores a sentir la conexión interna entre el lenguaje y las matemáticas. Se mencionan los siguientes conceptos.
Dijimos en el capítulo anterior que el propósito del lenguaje es la comunicación humana. Las letras, los caracteres y los números son en realidad diferentes unidades de codificación de información.
Cualquier idioma es un método de codificación, y las reglas gramaticales del idioma son algoritmos de codificación y decodificación. Por ejemplo, organizamos lo que queremos expresar a través del lenguaje, que es una especie de codificación. Si la otra parte puede entender este idioma, puede decodificarlo utilizando el método de decodificación de este idioma.
Entonces, ¿pueden las máquinas entender el lenguaje natural? Por supuesto
El desarrollo del procesamiento del lenguaje natural se puede dividir en dos etapas:
En la década de 1950, la comprensión de la comunidad académica sobre la inteligencia artificial y la comprensión del lenguaje natural era la siguiente: para permitir que la máquina complete el reconocimiento de voz, la computadora debe comprender el lenguaje natural. Porque así somos los humanos. Esta metodología se llama "pájaros voladores", que consiste en construir aviones observando cómo vuelan los pájaros. De hecho, la gente inventó los aviones basándose en la aerodinámica, no en la biónica.
Entonces, ¿cómo podemos entender el lenguaje natural?
Requisitos generales:
Podemos mirar una oración simple
Esta oración se puede dividir en tres partes: sujeto, predicado y punto. Podemos analizar más a fondo cada parte para obtener el árbol de análisis a continuación.
Las reglas gramaticales utilizadas para analizarlo se denominan reglas de reescritura.
Pero este enfoque pronto tuvo problemas. Como se puede ver en la figura anterior, una oración corta en realidad puede analizar una estructura de árbol bidimensional tan compleja. Es muy problemático procesar una oración real.
Existen dos obstáculos principales:
De hecho, no es fiable analizar oraciones desde una perspectiva gramatical.
Como mencionamos anteriormente, el análisis basado en reglas es más problemático para el procesamiento semántico, porque la ambigüedad de las palabras en el lenguaje natural es difícil de describir con reglas y depende del contexto.
Por ejemplo, "La caja está en el corral". Porque aquí corral significa valla. La oración completa se traduce al chino como "La caja está en la cerca". Si el bolígrafo en el interior se refiere al corral o a la cerca no es algo que pueda resolverse por el contexto y requiere sentido común.
Después de 1970, la lingüística estadística dio nueva vida al procesamiento del lenguaje natural, y la tarea clave fue Giannini y su laboratorio IBM Watson. Al principio, utilizaron métodos estadísticos para aumentar la tasa de reconocimiento de voz del 70% al 90% y, al mismo tiempo, la escala de reconocimiento de voz también aumentó de unos pocos cientos de palabras a decenas de miles de palabras.
Los métodos de procesamiento del lenguaje natural basados en estadísticas están vinculados a la comunicación en modelos matemáticos, por lo que en un sentido matemático, el procesamiento del lenguaje natural está vinculado al significado original de la comunicación del lenguaje.
Siempre hemos enfatizado en el capítulo anterior que el lenguaje natural ha evolucionado gradualmente hacia una forma sensible al contexto de expresar y transmitir información desde su nacimiento.
Entonces, para que las máquinas procesen el habla natural, la clave es establecer un modelo matemático para las características del habla natural relacionadas con el contexto, es decir, un modelo de lenguaje estadístico.
Este modelo se utiliza ampliamente en campos como la traducción automática, el reconocimiento de voz, el reconocimiento de textos impresos, la corrección ortográfica, la introducción de caracteres chinos y la consulta de documentos.
Un problema importante a resolver en el reconocimiento de voz es si los humanos pueden entender la secuencia de texto dada por la computadora. Antes de la década de 1970, la gente utilizaba el análisis semántico para resolver el problema.
Y Jarek analiza este problema desde otro ángulo: un modelo estadístico simple será suficiente.
En otras palabras, que una oración sea razonable depende de su posibilidad.
Por ejemplo, la probabilidad de una declaración fluida es $10 {-20}$ y la probabilidad de una declaración desordenada es $10 {-70}$, por lo que una declaración fluida es más probable.
Supongamos que $S$ representa una oración significativa que consta de una secuencia de palabras ${\omega _1}, {\omega_2}, \cdots, {\omega_n}$ en un orden específico Composición, donde $n $ es la longitud de la oración. Ahora necesitamos saber la probabilidad de esta oración.
$$P\left(S\right)=P\left({{w_1},{w_2},\cdots,{w_n}} \right)$$
Usando la fórmula de probabilidad condicional, la probabilidad de aparición de la secuencia $S$ es igual a la probabilidad de aparición de cada palabra multiplicada.
$$P\left( {{w_1}, {w_2}, \cdots, { w _ n } } \ right)= P \ left({ { w _ 1 } } \ right)P \left({{w_2}|{w_1}}\right)\cdots P\left({{w_n}|{w_1},{w_2},\cdots,{w_{n
La pregunta Es decir, ¿cómo calcular esta probabilidad condicional?
A principios del siglo XX, el matemático ruso Markov dio un método eficaz. Cuando ocurre esta situación, se supone que la probabilidad de la palabra $w_i$ solo está relacionada. a la palabra anterior $w_{i-1}$. Esta es la llamada hipótesis de Markov
Entonces la fórmula se convierte
$$P\left({{w_1}, {w_2},\cdots,{ w _ n } } \right)= P \left({ { w _ 1 } } \right)P \left({ { w _ 2 } | { w _ 1 } } \ right )\ cdots P \ left({ { w _ n } | { w _ { n-1 } } } \ right)$ $
Esto se llama Es un modelo binario
<. p>Si una palabra está determinada por las primeras $N-1$ palabras, el modelo correspondiente se llama $N, que será más complicado /p>De manera similar, cómo estimar la probabilidad condicional $ p \ left(. { { w _ I } | { w _ { I-1 } } \ right)$, primero puedes ver su definición
$ $ P \ left({ { w _ I } | { w _ { I-1 } } } \ right)= \frac { { P \ left ({ { w _ { I-1 } }, { w _ I } } \ right)} } { { P \ left ({ { w _ { I-1 } } } } $.
Lo que hay que hacer es una estimación
Entonces, ¿cómo obtener estas dos probabilidades?
Con un corpus grande, simplemente cuente cuántas veces ${ {w _ {I-1}} y { w _ I } } aparecen adyacentes entre sí antes y después del texto estadístico, { w _ { I-1 } }. Luego se divide por el tamaño del corpus # para que las probabilidades puedan estimarse utilizando frecuencias.
Según el teorema de los números grandes, siempre que las estadísticas sean suficientes, la frecuencia relativa es igual a la probabilidad.
$$P \ left({ { w _ I } | { w _ { I-1 } } } \ right)= \ frac { { # \ left({ { w _ { I-1 } }, { w _ I } } \ right)} } { { # \ left({ { w _ { I-1 } } } } } }$
Un modelo tan complejo realmente puede resolver el habla reconocimiento Estos complejos problemas de traducción automática son sorprendentes.
La característica más importante del modelo binario es que cada palabra solo está relacionada con la palabra anterior. En general, una palabra y las palabras anteriores están demasiado simplificadas.
Por lo tanto, el modelo de elementos $N$ significa que la palabra actual $w_i$ solo depende de las primeras $N-1$ palabras, que es la hipótesis de Markov de orden N-1 En la práctica, los modelos ternarios se usan cada vez más, por lo que $N=3$ y los modelos de orden superior se usan menos, porque
Para usar un modelo de lenguaje, necesitamos conocer todos los El condicional las probabilidades se llaman parámetros del modelo.
El proceso de obtener estos parámetros a través de las estadísticas del corpus se llama entrenamiento del modelo.
Como se mencionó anteriormente, solo necesitamos contar dos. de veces que dos caracteres adyacentes aparecen juntos y el número de veces que ${w_{i-1}}$ aparece solo, y luego se calcula la proporción
Sin embargo, hay una situación que hicimos. No considerar si las dos están relacionadas. Las palabras vecinas no aparecen al mismo tiempo, es decir, $ # \ left ({{w _ {i-1}}, {w _ i}} \ right) = 0 $,. ¿Significa que la probabilidad es 0?
Por supuesto que no. Esto implica la confiabilidad de los datos estadísticos.
En estadística matemática, la razón por la que nos atrevemos a utilizar datos para predecir la probabilidad. Se debe al teorema de los números grandes, que requiere suficientes observaciones, es decir, si la muestra es demasiado pequeña, definitivamente no es confiable predecir la probabilidad.
Entonces, ¿cómo entrenar correctamente un modelo de lenguaje?
Hablemos del diccionario estadístico en detalle. La probabilidad de cada palabra.
Supongamos que hay $N_r$ palabras que aparecen $r$ veces en el corpus y $N$. representa el tamaño del corpus
$ $ n = \ sum \. es decir, el número de palabras $r$ en cada palabra se multiplica por el número de apariciones
p>Cuando $r$ es pequeño, significa que no hay suficientes apariciones, por lo que debemos usar un número menor , como $d_r$, al calcular sus probabilidades
$ $. } } } } { { { N _ r } } $ $
Y
$ $ \ sum \ limits _ r { { d _ r } { N _ r } } = N $ $
En términos generales, es más probable que una palabra que aparece una vez aparezca dos veces que una palabra que aparece dos veces. La misma palabra aparece dos veces más que tres veces.
Es decir, cuanto mayor es la frecuencia de aparición $r$, menor es el número de palabras $N_r$, por lo que $ {n _ {r+1}} < {N_r}$, se puede ver que $ {d _ r } < R$, esta estimación se debe a que $d_r$ es el número que buscamos menor que $r$ Cuando solo aparece 0 veces, $ { d _ 0 } & gt0$
Ven de esta manera,
Para el modelo binario,
En...
Este método de suavizado fue propuesto por primera vez por Katz de IBM, por lo que se llama método de retroceso de Katz.
Otro método es eliminar el método de diferencia, es decir, suavizar mediante la interpolación lineal del modelo de orden inferior y el modelo de orden superior, pero debido a que su efecto es peor que el método de retroceso de Katz, rara vez se utiliza. usado.
Otra cuestión importante en el entrenamiento de modelos es la selección de datos o corpus de entrenamiento. Si las expectativas de capacitación están desconectadas del dominio de aplicación del modelo, la efectividad del modelo se reducirá considerablemente.
Por ejemplo, para crear un modelo de lenguaje, si la aplicación es de búsqueda web, sus datos de entrenamiento deben ser datos web desordenados y cadenas de búsqueda ingresadas por los usuarios, en lugar de comunicados de prensa tradicionales y estandarizados, incluso si los primeros se mezcla con ruido y errores. Debido a que los datos de entrenamiento son consistentes con los de la aplicación, la calidad de la búsqueda es mejor.
Generalmente, cuantos más datos de entrenamiento, mejor. Los modelos de orden superior requieren más datos de entrenamiento debido a muchos parámetros. Desafortunadamente, no todas las aplicaciones tienen suficientes datos de entrenamiento, como los corpus bilingües para la traducción automática. En este momento, no tiene sentido buscar modelos grandes de alto orden.
Si los datos de entrenamiento son consistentes con los datos de la aplicación y el volumen de entrenamiento es lo suficientemente grande, el nivel de ruido esperado para el entrenamiento también tendrá un impacto en el modelo. Por lo tanto, se requiere un preprocesamiento antes del entrenamiento. Se puede encontrar mucho ruido, como caracteres de tabulación, con regularidad.
Para el pinyin occidental, existen límites claros entre los personajes. Pero para los chinos, no existen separadores claros entre palabras. Entonces primero tenemos que dividir las oraciones.
El método más sencillo que se nos ocurre es buscar en un diccionario, es decir, escanear de izquierda a derecha, y cuando encuentres una palabra, identificarla en el diccionario.
Pero este método no funcionará si encuentra problemas complejos. Por ejemplo, cuando se trata de segmentación ambigua. Al igual que "países en desarrollo", la división correcta es "Desarrollo-China-País", y buscando el diccionario de izquierda a derecha se dividirá en "Desarrollo-China-Inicio"
Del mismo modo, podemos Utilice el modelo de lenguaje estadístico para resolver el problema de ambigüedad de segmentación de palabras.
Supongamos que hay varias formas de dividir una oración $S$:
$$\begin{array}{l}
{A_1}, {A_2 }, {A_3}, \cdots, {A_k}\
{B_1}, {B_2}, {B_3}, \cdots, {B_m}\
{C_1}, {C_2}, {C_3}, \cdots, {C_n}
\end{array}$$
El mejor método de segmentación de palabras es que después de la segmentación de palabras, aparece esta oración. mayor probabilidad.
Por supuesto, si enumeramos todos los métodos de segmentación de palabras y calculamos la probabilidad de la oración bajo cada posibilidad, la cantidad de cálculo será bastante grande.
Puede considerarse como un problema de programación dinámica y puede utilizar el algoritmo de Viterbi para encontrar rápidamente la mejor segmentación de palabras.
Los lingüistas tienen diferentes definiciones de palabras, como "Universidad de Pekín". Algunas personas piensan que es una palabra, otras piensan que son dos palabras. El método de compromiso es tratarlo primero como una palabra de cuatro caracteres y luego buscar las palabras de subdivisión "Beijing" y "Universidad".
La razón principal de la inconsistencia de la segmentación artificial de palabras radica en la forma en que las personas Comprensión de la granularidad de las palabras.
Tomemos como ejemplo la "Universidad de Tsinghua". Algunas personas piensan que es un todo, mientras que otras piensan que "Tsinghua" es una decoración de la "universidad". No es necesario enfatizar quién tiene razón o quién no, pero debe saber que en diferentes aplicaciones habrá situaciones en las que la granularidad será mejor que la otra.
Por ejemplo, en la traducción automática, el efecto de traducción es mejor cuando la granularidad es grande. Por ejemplo, si Lenovo se divide en dos partes, sería difícil traducirlo a Lenovo. Sin embargo, en la búsqueda web, una granularidad pequeña es mejor que una granularidad grande. Por ejemplo, si un usuario busca "Universidad de Tsinghua" en lugar de "Universidad de Tsinghua", puede encontrar la página de inicio de la Universidad de Tsinghua.
Crear diferentes guiones para diferentes aplicaciones es un desperdicio. El segmentador de palabras puede admitir diferentes niveles de segmentación de palabras al mismo tiempo.
Es decir, primero segmente la oración según las palabras básicas y luego segmente la cadena de palabras básicas según el modelo de palabras compuestas.