2011-01-22 12 views
15

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 de ellos: crear algún tipo de huella digital basada en datos estadísticos y comparar las huellas digitales obtenidas de diferentes textos? Digamos, tenemos una biblioteca con 100 textos. Alguna persona escribió el texto número 1 y también otro, y necesitamos adivinar cuál al analizar su estilo de escritura. ¿Algún algoritmo conocido lo está haciendo? ¿Se pueden aplicar cadenas de Markov aquí?¿Se puede usar el "estilo literario" exclusivo de un autor para identificarlo como el autor de un texto?

+0

Un ejemplo famoso es, ¿quién escribió qué [Federalist Papers] (http://en.wikipedia.org/wiki/Federalist_Papers)? Ver notas 19 y 20 allí. – denis

Respuesta

12

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

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

para ayudar a su web de búsqueda, esta disciplina es a menudo llamado Estilometría (y ocasionalmente, Stylogenetics).

Supongo que las dos preguntas más importantes son: ¿qué clasificadores son útiles para este propósito y qué datos se envían al clasificador?

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

Por ejemplo, un conjunto de datos ampliamente utilizado en Machine Learning y disponible en varios sitios en la Web, está compuesto por los datos de cuatro autores: Shakespeare, Jane Austen, Jack London, Milton. estas obras se dividieron en 872 piezas (correspondientes aproximadamente a capítulos), es decir, alrededor de 220 piezas de texto sustanciales diferentes para cada uno de los cuatro autores; cada una de estas piezas se convierte en un único punto de datos en el conjunto de datos. Luego se realizó un escaneo de frecuencia de palabras en cada texto, y las 70 palabras más comunes se usaron para el estudio, el resto de los resultados del escaneo de frecuencia se descartaron. 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 simplemente 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 literaria del autor.

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

Recientemente, ejecuté este conjunto de datos a través de un simple algoritmo de ML no supervisado; los resultados fueron muy buenos, casi completa la separación de las cuatro clases, que se puede ver en mi Answer 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.

¿Qué otros algoritmos se utilizan? Aparentemente, la mayoría de los algoritmos de Machine Learning en la categoría supervisada pueden resolver con éxito este tipo de datos. Entre estos, se utilizan a menudo perceptrones multicapa (MLP, aka, redes neuronales) (Author Attribution Using Neural Networks es uno de estos estudios citados con frecuencia).

+0

¿Es posible rastrear un artículo anónimo a su autor mediante el análisis de textos públicos SNS? – FRIdSUN

+0

@FRIdSUN no estoy seguro de lo que quiere decir con "SNS", supongo que es un error tipográfico y se refería a SMS. Si es así, mi respuesta es no. La razón es que los mensajes SMS tienen su propio estilo (informal), sintaxis y reglas de uso, y esas reglas sí lo harían. efectivamente ocultar el estilo de la prosa literaria de un autor. Entonces, por ejemplo, detener la frecuencia de las palabras, a menudo una fuerte firma del estilo del autor (es decir, consistente en muchos de los textos del autor) es probablemente inútil para los SMS, por ejemplo, los textos SMS rara vez tienen palabras para detener ("a", "a" , "el") por brevedad, a menudo usan símbolos en lugar de palabras de finalización ("&" para "y"), etc. – doug

+0

SNS = Servicio de red social. Quise decir si es posible analizar las publicaciones en Facebook, los tweets de Twitter, los artículos medianos y similares para hacer esa identificación. – FRIdSUN

1

Puede comenzar con una visita al sitio web Apache Mahout. Hay una literatura gigante sobre clasificación y agrupamiento. Básicamente, desea ejecutar un algoritmo de agrupamiento y luego esperar que 'el escritor' determine los clústeres.

+0

+1 para la referencia Apach Mahout – thkala

Cuestiones relacionadas