machine-learning data-mining markov-chains nlp

machine learning - ¿Se puede usar el "estilo literario" único de un autor para identificarlo como el autor de un texto?



machine-learning data-mining (2)

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: enlaces a archivos pdf):

Para ayudar a su búsqueda en la web, esta disciplina a menudo se llama Stylometry (y ocasionalmente, Stylogenetics ).

Entonces, 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 frecuencia de palabras está disponible en línea aquí ).

Por ejemplo, un conjunto de datos ampliamente utilizado en Machine Learning y disponible en varios sitios en la Web, está compuesto por 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 solo un conteo 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 respuesta a una pregunta anterior sobre 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 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) (la atribución del autor mediante redes neuronales es uno de los estudios citados con frecuencia).

Imaginemos, 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 dactilares obtenidas de diferentes textos? Digamos que 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í?


Puede comenzar con una visita al sitio web de 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.