[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 la información en la forma en que describen los objetos, desde su apariencia hasta los 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 de letras a palabras son las reglas de codificación de las palabras, y la gramática son las reglas 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 que puedes
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 rápidamente 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 cerca.
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 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 de 70 a 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.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 p>
Entonces, ¿cómo obtener estas dos probabilidades?
Con un corpus grande, simplemente cuente el texto adyacente ${ {w _ {I-1}} y { w _ I } } veces aparece, { w _ { I-1 } }. Luego divídelo por el tamaño del corpus #, para que se pueda estimar la probabilidad
Según el teorema de los números grandes, siempre y cuando como las estadísticas son 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 } } } } } }$
Tan complicado Es sorprendente que el modelo pueda resolver problemas complejos como el reconocimiento de voz y la traducción automática.
La característica más importante del modelo binario es que cada palabra solo está relacionada con la palabra anterior, lo cual. está demasiado simplificado. La palabra está relacionada con las palabras anteriores.
Por lo tanto, el modelo de elemento $N$ significa que la palabra actual $w_i$ solo depende de las primeras $N-1$ palabras. Hipótesis del marido de orden N-1.
En la práctica, los modelos ternarios se utilizan cada vez más, por lo que $N=3$, mientras que los modelos de orden superior se utilizan con menos frecuencia, porque
<. p>Se utilizan modelos de lenguaje. Necesitamos conocer todas las probabilidades condicionales en el modelo, lo que llamamos 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. /p>
Como se mencionó anteriormente, solo necesitamos contar el número de veces que aparecen dos caracteres adyacentes al mismo tiempo y el número de veces que ${w_{i-1}}$ aparece solo, y luego calcular el número de veces. ratio.
Sin embargo, hay una situación que no consideramos si dos palabras adyacentes 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 es por el teorema de los números grandes, que deben ser suficientes. En otras palabras, si la muestra es demasiado pequeña, es suficiente. Definitivamente no es confiable predecir la probabilidad por el número de veces.
Entonces, ¿cómo entrenar correctamente un modelo de lenguaje?
Hablemos en detalle de la probabilidad de cada palabra en el diccionario estadístico.
Supongamos que hay $N_r$ palabras que aparecen $r$ veces en el corpus, y $N$ representa el tamaño del corpus.
$ $ n = \sum\limits _ { r = 1}^\infty { r { n _ r } } $ $
Es decir, $ en cada palabra r$ El número de palabras multiplicado por el número de apariciones.
Cuando $r$ es pequeño, significa que no hay suficientes ocurrencias, por lo que debemos usar un número más pequeño, como $d_r$, al calcular sus probabilidades.
$ $ { d _ r } = \ left({ r 1 } \ right)\ frac { { { N _ { r 1 } } } } { { { N _ r } } $ $
Y
$ $ \ sum \ limites _ r { { d _ r } { N _ r } } = N $ $
En general, parece Hay más palabras que aparecen una que dos veces, y la misma palabra aparece dos veces 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$
<. p>De esta manera,Para modelos binarios,
En...
Este método de suavizado fue propuesto por primera vez por Katz de IBM, por eso 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 perseguir 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 consulta "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.