Un modelo de lenguaje de n -gramas de palabras es un modelo puramente estadístico del lenguaje. Ha sido reemplazado por modelos basados en redes neuronales recurrentes , que han sido reemplazados por modelos de lenguaje grandes . [1] Se basa en el supuesto de que la probabilidad de la siguiente palabra en una secuencia depende solo de una ventana de tamaño fijo de palabras anteriores. Si solo se consideró una palabra anterior, se llamó modelo de bigrama; si dos palabras, un modelo de trigrama; si n − 1 palabras, un modelo de n -gramas. [2] Se introdujeron tokens especiales para denotar el inicio y el final de una oración y .
Para evitar que se asigne una probabilidad cero a las palabras no vistas, la probabilidad de cada palabra es ligeramente inferior a su recuento de frecuencia en un corpus. Para calcularla, se utilizaron varios métodos, desde el simple suavizado de "suma de uno" (asignar un recuento de 1 a los n -gramas no vistos, como una prior no informativa ) hasta modelos más sofisticados, como el descuento de Good-Turing o los modelos de retroceso .
Modelo Unigram
Un caso especial, en el que n = 1, se denomina modelo unigrama. La probabilidad de cada palabra de una secuencia es independiente de las probabilidades de las demás palabras de la secuencia. La probabilidad de cada palabra de la secuencia es igual a la probabilidad de la palabra en un documento completo.
El modelo consta de unidades, cada una tratada como autómatas finitos de un estado . [3] Las palabras con sus probabilidades en un documento se pueden ilustrar de la siguiente manera.
La masa total de probabilidades de palabras distribuidas en el vocabulario del documento es 1.
La probabilidad generada para una consulta específica se calcula como
Los modelos unigramas de distintos documentos tienen distintas probabilidades de que aparezcan palabras en ellos. Las distribuciones de probabilidad de distintos documentos se utilizan para generar probabilidades de coincidencia para cada consulta. Los documentos se pueden clasificar para una consulta según las probabilidades. Ejemplo de modelos unigramas de dos documentos:
Modelo de bigrama
En un modelo de lenguaje de palabras bigrama ( n = 2), la probabilidad de la oración Vi la casa roja se aproxima como
Modelo de trigrama
En un modelo de lenguaje de trigramas ( n = 3), la aproximación es
Tenga en cuenta que el contexto de los primeros n – 1 n -gramas está lleno de marcadores de inicio de oración, normalmente denominados <s>.
Además, sin un marcador de final de oración, la probabilidad de una secuencia agramatical *I saw the siempre sería mayor que la de la oración más larga I saw the red house.
Método de aproximación
El método de aproximación calcula la probabilidad de observar la oración.
Se supone que la probabilidad de observar la i- ésima palabra w i (en la ventana de contexto que consta de las i − 1 palabras anteriores) se puede aproximar por la probabilidad de observarla en la ventana de contexto acortada que consta de las n − 1 palabras anteriores ( propiedad de Markov de orden n ) . Para aclarar, para n = 3 e i = 2 tenemos .
La probabilidad condicional se puede calcular a partir de los recuentos de frecuencia del modelo n -grama:
Palabras fuera del vocabulario
Un problema al utilizar modelos de lenguaje de n -gramas son las palabras fuera del vocabulario (OOV). Se encuentran en lingüística computacional y procesamiento de lenguaje natural cuando la entrada incluye palabras que no estaban presentes en el diccionario o base de datos de un sistema durante su preparación. De manera predeterminada, cuando se estima un modelo de lenguaje, se utiliza todo el vocabulario observado. En algunos casos, puede ser necesario estimar el modelo de lenguaje con un vocabulario fijo específico. En tal escenario, los n -gramas en el corpus que contienen una palabra fuera del vocabulario se ignoran. Las probabilidades de n -gramas se suavizan sobre todas las palabras del vocabulario incluso si no se observaron. [4]
Nonetheless, it is essential in some cases to explicitly model the probability of out-of-vocabulary words by introducing a special token (eg <unk> ) into the vocabulary. Out-of-vocabulary words in the corpus are effectively replaced with this special <unk> token before n -grams counts are cumulated. With this option, it is possible to estimate the transition probabilities of n -grams involving out-of-vocabulary words. [5]
norte-gramos para coincidencia aproximada
Los n -gramas también se utilizaron para la correspondencia aproximada. Si convertimos cadenas (con solo letras del alfabeto inglés) en 3-gramas de caracteres, obtenemos un espacio dimensional (la primera dimensión mide el número de ocurrencias de "aaa", la segunda "aab", y así sucesivamente para todas las combinaciones posibles de tres letras). Al usar esta representación, perdemos información sobre la cadena. Sin embargo, sabemos empíricamente que si dos cadenas de texto real tienen una representación vectorial similar (medida por la distancia del coseno ), es probable que sean similares. También se han aplicado otras métricas a vectores de n -gramas con resultados variables, a veces mejores. Por ejemplo, se han utilizado puntuaciones z para comparar documentos examinando cuántas desviaciones estándar difiere cada n -grama de su ocurrencia media en una gran colección, o corpus de texto , de documentos (que forman el vector "de fondo"). En el caso de recuentos pequeños, la puntuación g (también conocida como prueba g ) dio mejores resultados.
También es posible adoptar un enfoque más basado en principios para las estadísticas de n -gramas, modelando la similitud como la probabilidad de que dos cadenas provengan de la misma fuente directamente en términos de un problema de inferencia bayesiana .
También se utilizó la búsqueda basada en n -gramas para la detección de plagio .
Compensación entre sesgo y varianza
Para elegir un valor para n en un modelo de n -gramas, es necesario encontrar el equilibrio adecuado entre la estabilidad de la estimación y su idoneidad. Esto significa que el trigrama (es decir, los tripletes de palabras) es una opción común con corpus de entrenamiento grandes (millones de palabras), mientras que el bigrama se suele utilizar con corpus más pequeños.
Técnicas de alisado
Existen problemas de equilibrio entre los gramos poco frecuentes (por ejemplo, si un nombre propio apareció en los datos de entrenamiento) y los gramos frecuentes . Además, a los elementos que no se ven en los datos de entrenamiento se les dará una probabilidad de 0,0 sin suavizado . Para los datos no vistos pero plausibles de una muestra, se pueden introducir pseudoconteos . Los pseudoconteos generalmente están motivados por razones bayesianas.
En la práctica, fue necesario suavizar las distribuciones de probabilidad asignando también probabilidades distintas de cero a las palabras o n -gramas no vistos. La razón es que los modelos derivados directamente de los recuentos de frecuencia de n -gramas tienen graves problemas cuando se enfrentan a n -gramas que no se han visto explícitamente antes: el problema de la frecuencia cero . Se utilizaron varios métodos de suavizado, desde el simple suavizado de "suma uno" (Laplace) (asignar un recuento de 1 a n -gramas no vistos; consulte la Regla de sucesión ) hasta modelos más sofisticados, como el descuento de Good-Turing o los modelos de retroceso . Algunos de estos métodos son equivalentes a asignar una distribución previa a las probabilidades de los n -gramas y usar la inferencia bayesiana para calcular las probabilidades posteriores de n -gramas resultantes. Sin embargo, los modelos de suavizado más sofisticados normalmente no se derivaron de esta manera, sino a través de consideraciones independientes.
- Interpolación lineal (por ejemplo, tomando la media ponderada del unigrama, bigrama y trigrama)
- Descuento de Good-Turing
- Descuento de Witten-Bell
- Alisado de Lidstone
- Modelo de retroceso de Katz (trigrama)
- Suavizado de Kneser-Ney
Modelo de lenguaje de salto de gramo
El modelo de lenguaje de salto de gramática es un intento de superar el problema de escasez de datos que enfrentaba el modelo anterior (es decir, el modelo de lenguaje de n -gramas de palabras). Las palabras representadas en un vector de incrustación ya no eran necesariamente consecutivas, sino que podían dejar espacios que se saltaban . [6]
Formalmente, un k -skip- n -grama es una subsecuencia de longitud n donde los componentes ocurren a una distancia como máximo k entre sí.
Por ejemplo, en el texto de entrada:
- La lluvia en España cae principalmente en la llanura.
El conjunto de 1-salto-2-gramos incluye todos los bigramas (2-gramos) y, además, las subsecuencias
- en , lluvia España , en cae , España principalmente , cae en , principalmente en , y en llano .
En el modelo de skip-gram, las relaciones semánticas entre palabras se representan mediante combinaciones lineales , lo que captura una forma de composicionalidad . Por ejemplo, en algunos de estos modelos, si v es la función que asigna una palabra w a su representación vectorial n -d, entonces
donde ≈ se hace preciso al estipular que su lado derecho debe ser el vecino más cercano del valor del lado izquierdo. [7] [8]
Sintácticonorte-gramos
Los n -gramas sintácticos son n -gramas definidos por caminos en árboles de dependencia sintáctica o constituyentes en lugar de la estructura lineal del texto. [9] [10] [11] Por ejemplo, la oración "las noticias económicas tienen poco efecto en los mercados financieros" se puede transformar en n -gramas sintácticos siguiendo la estructura de árbol de sus relaciones de dependencia : noticias-económicas, efecto-poco, efecto-en-los-mercados-financieros. [9]
Los n -gramas sintácticos tienen como objetivo reflejar la estructura sintáctica de manera más fiel que los n -gramas lineales, y tienen muchas de las mismas aplicaciones, especialmente como características en un modelo de espacio vectorial . Los n -gramas sintácticos para ciertas tareas dan mejores resultados que el uso de n -gramas estándar, por ejemplo, para la atribución de autoría. [12]
Otro tipo de n -gramas sintácticos son los n- gramas de categorías gramaticales , definidos como subsecuencias superpuestas contiguas de longitud fija que se extraen de secuencias de categorías gramaticales de texto. Los n- gramas de categorías gramaticales tienen varias aplicaciones, la más común en la recuperación de información. [13]
Otras aplicaciones
Los n -gramas se utilizan en varias áreas de la informática, la lingüística computacional y las matemáticas aplicadas.
Se han utilizado para:
- Diseñar núcleos que permitan que los algoritmos de aprendizaje automático, como las máquinas de vectores de soporte, aprendan de los datos de cadenas [ cita requerida ]
- Encuentra candidatos probables para la ortografía correcta de una palabra mal escrita [14]
- Mejorar la compresión en algoritmos de compresión donde un área pequeña de datos requiere n -gramas de mayor longitud.
- evaluar la probabilidad de que una secuencia de palabras dada aparezca en un texto de un idioma de interés en sistemas de reconocimiento de patrones, reconocimiento de voz , OCR ( reconocimiento óptico de caracteres ), reconocimiento inteligente de caracteres ( ICR ), traducción automática y aplicaciones similares
- mejorar la recuperación en sistemas de recuperación de información cuando se espera encontrar "documentos" similares (un término cuyo significado convencional a veces se amplía, dependiendo del conjunto de datos) dado un único documento de consulta y una base de datos de documentos de referencia
- Mejorar el rendimiento de recuperación en el análisis de secuencias genéticas como en la familia de programas BLAST
- Identificar el idioma en el que se encuentra un texto o la especie de la que se tomó una pequeña secuencia de ADN.
- predecir letras o palabras al azar para crear texto, como en el algoritmo de prensa disociada .
- criptoanálisis [ cita requerida ]
Véase también
- Colocación
- Ingeniería de características
- Modelo oculto de Markov
- Subcadena común más larga
- MinHash
- n-tupla
- Núcleo de cadena
Referencias
- ^ Bengio, Yoshua; Ducharme, Réjean; Vincent, Pascal; Janvin, Christian (1 de marzo de 2003). "Un modelo de lenguaje probabilístico neuronal". The Journal of Machine Learning Research . 3 : 1137–1155 – vía ACM Digital Library.
- ^ Jurafsky, Dan; Martin, James H. (7 de enero de 2023). "N-gram Language Models". Speech and Language Processing (PDF) (3.ª edición, borrador) . Consultado el 24 de mayo de 2022 .
- ^ Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze (2009). Introducción a la recuperación de información . pp. 237–240. Cambridge University Press.
- ^ Wołk, K.; Marasek, K.; Glinkowski, W. (2015). "La telemedicina como un caso especial de traducción automática". Imágenes médicas computarizadas y gráficos . 46 Pt 2: 249–56. arXiv : 1510.04600 . Bibcode :2015arXiv151004600W. doi :10.1016/j.compmedimag.2015.09.005. PMID 26617328. S2CID 12361426.
- ^ Wołk K., Marasek K. (2014). Sistemas de traducción automática estadística del habla polaco-inglés para el IWSLT 2014. Actas del 11.º Taller internacional sobre traducción del lenguaje hablado. Tahoe Lake, EE. UU. arXiv : 1509.09097 .
- ^ David Guthrie; et al. (2006). "Una mirada más cercana al modelado de saltos de gramo" (PDF) . Archivado desde el original (PDF) el 17 de mayo de 2017. Consultado el 27 de abril de 2014 .
- ^ Mikolov, Tomas; Chen, Kai; Corrado, Greg; Dean, Jeffrey (2013). "Estimación eficiente de representaciones de palabras en el espacio vectorial". arXiv : 1301.3781 [cs.CL].
- ^ Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado irst4=Greg S.; Dean, Jeff (2013). Representaciones distribuidas de palabras y frases y su composicionalidad (PDF) . Avances en sistemas de procesamiento de información neuronal . págs. 3111–3119. Archivado (PDF) desde el original el 29 de octubre de 2020 . Consultado el 22 de junio de 2015 .
{{cite conference}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ^ ab Sidorov, Grigori; Velasquez, Francisco; Stamatatos, Efstathios; Gelbukh, Alexander; Chanona-Hernández, Liliana (2013). "N-gramas basados en dependencia sintáctica como características de clasificación" (PDF) . En Batyrshin, I.; Mendoza, MG (eds.). Avances en inteligencia computacional . Apuntes de clase en informática. Vol. 7630. págs. 1–11. doi :10.1007/978-3-642-37798-3_1. ISBN 978-3-642-37797-6. Archivado (PDF) del original el 8 de agosto de 2017 . Consultado el 18 de mayo de 2019 .
- ^ Sidorov, Grigori (2013). "N-gramas basados en dependencia sintáctica en la corrección gramatical automática basada en reglas del inglés como segunda lengua". Revista internacional de lingüística computacional y aplicaciones . 4 (2): 169–188. CiteSeerX 10.1.1.644.907 . Archivado desde el original el 7 de octubre de 2021 . Consultado el 7 de octubre de 2021 .
- ^ Figueroa, Alejandro; Atkinson, John (2012). "Modelos contextuales del lenguaje para clasificar respuestas a preguntas de definición del lenguaje natural". Inteligencia Computacional . 28 (4): 528–548. doi :10.1111/j.1467-8640.2012.00426.x. S2CID 27378409. Archivado desde el original el 27 de octubre de 2021 . Consultado el 27 de mayo de 2015 .
- ^ Sidorov, Grigori; Velasquez, Francisco; Stamatatos, Efstathios; Gelbukh, Alexander; Chanona-Hernández, Liliana (2014). " N -gramas sintácticos como características de aprendizaje automático para el procesamiento del lenguaje natural". Sistemas expertos con aplicaciones . 41 (3): 853–860. doi :10.1016/j.eswa.2013.08.015. S2CID 207738654.
- ^ Lioma, C.; van Rijsbergen, CJK (2008). «Part of Speech N-Grams and Information Retrieval» (PDF) . Revista francesa de lingüística aplicada . XIII (1): 9–22. Archivado (PDF) desde el original el 13 de marzo de 2018. Consultado el 12 de marzo de 2018 a través de Cairn.
- ^ Patente de EE. UU. 6618697, Método para la corrección basada en reglas de errores ortográficos y gramaticales