¿Se puede utilizar el "estilo literario" único de un autor para identificarlo como autor de un texto? [cerrado

StackOverflow https://stackoverflow.com/questions/4771293

Pregunta

Imaginemos que tengo dos textos en inglés escritos por la misma persona. ¿Es posible aplicar algún algoritmo de cadena de Markov para analizar cada uno: crear algún tipo de huella digital basada en datos estadísticos y comparar huellas digitales obtenidas de diferentes textos? Digamos que tenemos una biblioteca con 100 textos. Algunas personas escribieron el texto número 1 y otro también, y debemos adivinar cuál analizando su estilo de escritura. ¿Hay algún algoritmo conocido haciéndolo? ¿Se pueden aplicar las cadenas de Markov aquí?

¿Fue útil?

Solución

Absolutamente es posible, y de hecho, el registro de éxito en la identificación de un autor dado un texto o alguna parte de él es impresionante.

Un par de estudios representativos (advertencia: los enlaces son para archivos PDF):

Para ayudar a su búsqueda en la web, a menudo se llama a esta disciplina Estilometría (y ocasionalmente, Estilogenética).

Entonces, las dos preguntas más importantes son: ¿qué clasificadores son útiles para este propósito y qué datos se alimentan al clasificador?

Lo que todavía encuentro sorprendente es cómo se requieren datos para lograr una clasificación muy precisa. A menudo, los datos son solo una lista de frecuencia de palabras. (Un directorio de listas de frecuencia de palabras está disponible en línea aquí.)

Por ejemplo, un conjunto de datos ampliamente utilizado en el aprendizaje automático y disponible en varios lugares en la web, se compone de datos de cuatro autores: Shakespeare, Jane Austen, Jack London, Milton. Estas obras se dividieron en 872 piezas (correspondientes aproximadamente a los capítulos), en otras palabras, alrededor de 220 piezas de texto sustanciales diferentes para cada uno de los cuatro autores; Cada una de estas piezas se convierte en un solo punto de datos en el conjunto de datos. A continuación, se realizó un escaneo de frecuencia de palabras en cada texto, y las 70 palabras más comunes se usaron para el estudio, se descartaron el resto de los resultados del escaneo de frecuencia. Aquí están los primeros 20 de esa lista de 70 palabras.

['a', 'all', 'also', 'an', 'and', 'any', 'are', 'as', 'at', 'be', 'been',
  'but', 'by', 'can', 'do', 'down', 'even', 'every', 'for', 'from'] 

Cada punto de datos es solo un recuento de cada palabra de las 70 palabras en cada uno de los 872 capítulos.

[78, 34, 21, 45, 76, 9, 23, 12, 43, 54, 110, 21, 45, 59, 87, 59, 34, 104, 93, 40]

Cada uno de estos puntos de datos es una instancia de la huella digital literaria del autor.

El elemento final en cada punto de datos es un entero (1-4) que representa a uno de los cuatro autores a quienes pertenece ese texto.

Recientemente, ejecuté este conjunto de datos a través de un algoritmo ML simple sin supervisión; Los resultados fueron muy buenos, casi una separación completa de las cuatro clases, que puedes ver en mi Responder a una Q anterior en StackOverflow relacionada con la clasificación de texto utilizando ML en general, en lugar de la identificación del autor.

Entonces, ¿qué otros algoritmos se usan? Aparentemente, la mayoría de los algoritmos de aprendizaje automático en la categoría supervisada pueden resolver con éxito este tipo de datos. Entre estos, a menudo se usan perceptrones de múltiples capas (MLP, AKA, redes neuronales) (Atribución de autor utilizando redes neuronales es uno de esos estudios frecuentemente citados).

Otros consejos

Puede comenzar con una visita al Apache mahout sitio web. Hay una literatura gigante sobre clasificación y agrupación. Esencialmente, desea ejecutar un algoritmo de agrupación y luego esperar que 'qué escritor' determine los grupos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top