N-grama

N-grama  es una secuencia de n elementos [1] . Desde un punto de vista semántico , puede ser una secuencia de sonidos, sílabas, palabras o letras. En la práctica, el N-grama es más común como una serie de palabras, las frases estables se denominan colocación . Una secuencia de dos elementos consecutivos a menudo se denomina digrama , una secuencia de tres elementos se denomina trigrama . Al menos cuatro o más elementos se designan como un N-grama, N se reemplaza por el número de elementos consecutivos.

Usando N-gramas

Uso general de N-gramas

Los N-gramas en su conjunto encuentran su aplicación en un amplio campo de la ciencia. Se pueden aplicar, por ejemplo, en el campo de las matemáticas teóricas , la biología , la cartografía , y también en la música . Los usos más comunes de los N-gramas incluyen las siguientes áreas:

Además, los N-gramas se utilizan ampliamente en el procesamiento del lenguaje natural .

Uso de N-gramas para las necesidades de procesamiento del lenguaje natural

En el campo del procesamiento del lenguaje natural, los N-gramas se utilizan principalmente para la predicción basada en modelos probabilísticos . El modelo de N-grama calcula la probabilidad de la última palabra de un N-grama si se conocen todas las anteriores. Cuando se utiliza este enfoque para el modelado del lenguaje, se supone que la apariencia de cada palabra depende únicamente de las palabras anteriores [2] .

Otra aplicación de los N-gramas es la detección de plagio . Si se divide el texto en varios fragmentos pequeños, representados por N-gramas, se pueden comparar fácilmente entre sí y así obtener el grado de similitud de los documentos analizados [3] . Los N-gramas a menudo se usan con éxito para categorizar texto e idioma. Además, se pueden usar para crear funciones que le permitan obtener conocimiento de los datos de texto. Usando N-gramas, uno puede encontrar eficientemente candidatos para reemplazar palabras mal escritas.

Un ejemplo de un modelo de bigrama

El propósito de construir modelos de N-gramas es determinar la probabilidad de usar una frase dada. Esta probabilidad se puede establecer formalmente como la probabilidad de ocurrencia de una secuencia de palabras en un determinado corpus (conjunto de textos). Por ejemplo, la probabilidad de la frase "la felicidad es placer sin remordimiento" se puede calcular como el producto de las probabilidades de cada una de las palabras de esta frase:

P = P(felicidad) * P(hay|felicidad) * P(placer|la felicidad es) * P(sin|la felicidad es placer) * P(arrepentimiento|la felicidad es placer sin)

Para determinar P (felicidad), debe contar cuántas veces aparece esta palabra en el texto y dividir este valor por el número total de palabras. Calcular la probabilidad P(arrepentimiento|la felicidad es placer sin él) es más difícil. Para simplificar esta tarea, asumimos que la probabilidad de una palabra en un texto depende únicamente de la palabra anterior. Entonces nuestra fórmula para calcular la frase tomará la siguiente forma:

P = P(felicidad) * P(tener|felicidad) * P(placer|tener) * P(sin|placer) * P(remordimiento|sin)

Calcular la probabilidad condicional P(es|felicidad) es fácil. Para hacer esto, contamos el número de pares de 'felicidad' y lo dividimos por el número de palabras 'felicidad' en el texto.

Como resultado, si contamos todos los pares de palabras en algún texto, podemos calcular la probabilidad de una frase arbitraria. Este conjunto de probabilidades calculadas será el modelo de bigrama.

Proyectos de investigación de Google

Los centros de investigación de Google han utilizado modelos N-grama para una amplia gama de investigación y desarrollo. Estos incluyen proyectos como traducción estadística de un idioma a otro, reconocimiento de voz , corrección ortográfica, extracción de información y más. A los efectos de estos proyectos, se utilizaron corpus de texto que contenían varios billones de palabras.

Google decidió crear su propio edificio educativo. El proyecto se llama Google teracorpus y contiene 1.024.908.267.229 palabras recopiladas de sitios web públicos [4] .

Métodos para extraer N-gramas

Debido al uso frecuente de N-gramas para resolver varios problemas, se necesita un algoritmo confiable y rápido para extraerlos del texto. Una herramienta de extracción de N-gramas adecuada debería ser capaz de trabajar con un tamaño de texto ilimitado, trabajar rápidamente y hacer un uso eficiente de los recursos disponibles. Hay varios métodos para extraer N-gramas del texto. Estos métodos se basan en diferentes principios:

N-gramas sintácticos

Los N-gramas sintácticos son N-gramas definidos por rutas en árboles de dependencia sintáctica o árboles de componentes, en lugar de por la estructura lineal del texto [6] [7] . Por ejemplo, la oración: “Las noticias económicas tienen poco impacto en los mercados financieros” se puede convertir en N-gramas sintácticos, siguiendo la estructura de árbol de sus relaciones de dependencia : noticias-económicas, impacto-menor, impacto-en-mercados-financiero, y otros [6] .

Los N-gramas sintácticos reflejan la estructura sintáctica a diferencia de los N-gramas lineales y se pueden usar en las mismas aplicaciones que los N-gramas lineales, incluso como características en un modelo vectorial. El uso de N-gramas sintácticos da mejores resultados en la resolución de ciertos problemas que el uso de N-gramas estándar, por ejemplo, para determinar la autoría [8] .

Véase también

Notas

  1. Actas de la 7.ª Conferencia Anual ZNALOSTI 2008, Bratislava, Eslovaquia, págs. 54-65, febrero de 2008. ISBN 978-80-227-2827-0 .
  2. Jurafsky, D. y Martin, JH Procesamiento del habla y el lenguaje: una introducción al procesamiento del lenguaje natural, la lingüística computacional y el reconocimiento del habla. - Pearson Prentice Hall, 2009. - 988 p. — ISBN 9780131873216 .
  3. Actas del ITAT 2008, Tecnologías de la información: aplicaciones y teoría, Hrebienok, Eslovaquia, págs. 23-26, septiembre de 2008. ISBN 978-80-969184-8-5
  4. FRANZ, Alex, BRANTS, Thorsten. Blog oficial de investigación de Google: Todos nuestros N-gramas te pertenecen. Archivado el 17 de octubre de 2006 en Wayback Machine . jueves, 03 de agosto de 2006 a las 08/03/2006 11:26:00 a. m. La base creada de N-gramas está a la venta en forma de 5 DVD.
  5. M. Nagao y S. Mori. Un nuevo método de estadísticas de n-gramas para un gran número de n y extracción automática de palabras y frases de datos de texto grandes del japonés. En Actas de la 15ª Conferencia Internacional sobre Lingüística Computacional (COLING 1994), Kioto, Japón, 1994.
  6. 1 2 Grigori Sidorov, Francisco Velásquez, Efstathios Stamatatos, Alexander Gelbukh y Liliana Chanona-Hernández. N-gramas basados ​​en dependencias sintácticas como características de clasificación. LNAI 7630, págs. 1-11, 2012.
  7. Grigori Sidorov. N-gramas basados ​​en la dependencia sintáctica en la corrección gramatical automática del inglés como segundo idioma basada en reglas. Revista internacional de lingüística computacional y aplicaciones, vol. 4, núm. 2, págs. 169-188, 2013.
  8. Grigori Sidorov, Francisco Velásquez, Efstathios Stamatatos, Alexander Gelbukh y Liliana Chanona-Hernández. N-gramas sintácticos como funciones de aprendizaje automático para el procesamiento del lenguaje natural. Sistemas expertos con aplicaciones, vol. 41, núm. 3, págs. 853-860, DOI 10.1016/j.eswa.2013.08.015 Archivado el 24 de septiembre de 2015 en Wayback Machine .