Efectúe corrección de errores tipográficos sin un diccionario 

Modelar la secuencia de caracteres escritos como observaciones y la secuencia de caracteres escritos correctos como estados ocultos, este ejemplo utiliza dos modelos diferentes para la evolución de caracteres correctos para corregir errores tipográficos. El primer modelo utiliza el proceso de Markov de primer orden para codificar frecuencias de lo que sigue al carácter dado. El segundo modelo utiliza estados de Markov de segundo orden para codificar frecuencias de lo que sigue a los últimos dos caracteres dados.

Tome El origen de las especies de Darwin y convierta todos los símbolos que no son letras en espacios.

In[1]:=
Click for copyable input
X
In[2]:=
Click for copyable input
X

Introduzca errores tipográficos, a una tasa del 20%, al remplazar al azar un carácter con uno de sus vecinos inmediatos en un teclado estándar QWERTY. El carácter de espacio nunca es mal escrito.

muestre la entrada completa de Wolfram Language
In[4]:=
Click for copyable input
X
In[5]:=
Click for copyable input
X
muestre la entrada completa de Wolfram Language
Out[6]=

Tome los primeros 80.000 caracteres para ser una secuencia de prueba y el resto del texto como una secuencia de entrenamiento. La secuencia de prueba tiene el 16.5% de caracteres mal escritos, menos del 20% porque el carácter de espacio nunca fue mal escrito.

In[7]:=
Click for copyable input
X
Out[7]=

Modele el flujo de caracteres escritos utilizando el proceso oculto de Markov. Los caracteres correctos son estados ocultos, mientras los caracteres escritos actuales son observaciones.

In[8]:=
Click for copyable input
X

Estime el proceso oculto de Markov usando datos de entrenamiento.

In[9]:=
Click for copyable input
X
Out[9]=
In[10]:=
Click for copyable input
X

Utilice decodificación posterior para corregir errores tipográficos en la porción de prueba del texto mal escrito.

In[11]:=
Click for copyable input
X
Out[11]=

El texto corregido aún presenta un 11% de errores tipográficos, 5.5% menos que el texto escrito original.

muestre la entrada completa de Wolfram Language
Out[12]=
In[13]:=
Click for copyable input
X
Out[13]=

Modele la evolución de los estados ocultos usando un proceso de Markov de segundo orden; es decir, asumir la probabilidad del carácter depende sólo de los dos caracteres anteriores. El proceso de Markov de segundo orden es modelado como un proceso de Markov de primer orden con espacio de estado ampliado de pares de caracteres consecutivos.

In[14]:=
Click for copyable input
X
In[15]:=
Click for copyable input
X

La probabilidad del carácter escrito actual depende sólo del carácter real subyacente.

In[16]:=
Click for copyable input
X

Repita la decodificación posterior con el modelo oculto de Markov de orden superior.

In[17]:=
Click for copyable input
X
Out[17]=

El porcentaje de errores tipográficos ha sido ahora reducido a menos de 6%.

In[18]:=
Click for copyable input
X
Out[18]=
muestre la entrada completa de Wolfram Language
Out[19]=
de en ja pt-br zh