el problema de la autoria de textos literarios multilingüe

Anuncio
EL PROBLEMA DE LA AUTORIA DE TEXTOS
LITERARIOS MULTILINGÜE
Gonzalo Mamano Escudero
Conrado Poole Siguero
Universidad Europea de Madrid
C/ General Peron nº 6 6ª
Madrid
Spain
Universidad Europea de Madrid
C/Cadiz nº49 28230 Las Rozas
Madrid
Spain
Resumen: En este artículo describimos el trabajo de investigación que hemos realizado
este curso en la asignatura de PLN
(procesamiento del lenguaje natural), una
asignatura de 5º de ingeniería informática de la universidad CEES de Madrid. Hemos
intentado afrontar el problema de la autoría de textos literarios. Para ello nos
propusimos el reto de intentar generalizar el sistema para hacerlo independiente del
idioma, ya que el reconocimiento del estilo es algo independiente de la lengua utilizada.
Para ello atacamos el problema desde dos puntos de vista: los rasgos estilográficos y la
utilización de n-gramas.
Abstract: In this article we described investigation which we have made this course in
the PLN subject (Natural Language Processing), a subject of 5º of computer science
engineering of university CEES of Madrid. We have tried to confront the problem of
the literary text authorship attribution. For it we set out the challenge to try to
generalize the system to make it independent of the language, since the recognition of
the style is something independent of the used language. For it we attacked the problem
from two points of view: the stilographic characteristics and the use of n-grams.
1. INTRODUCCIÓN
El problema de la autoría de autores
consiste en reconocer la al autor de un
texto analizando su contenido. Se supone
que cada autor tiene un estilo
diferenciable, todo escritor tiene sus
hábitos, técnicas y recursos a la hora de
escribir, por lo que es algo que a priori
parece un problema a solucionar mediante
aprendizaje automático.
Solucionar este problema puede ser muy
útil para descubrir autores de libros
anónimos o pude servir para aplicarse a
autorías de correos electrónicos o incluso
en el campo criminológico.
Analizando los estudios ya realizados,
decidimos abordar el problema desde dos
perspectivas: los rasgos estilográficos y la
utilización de los n-gramas. Estas dos
técnicas ya han sido usadas y están
referenciadas en los artículos:”Using
machina
learning
Techniques
for
Stylometry” (Universidad de Georgia) y
“language Independent authorship attribution
using carácter level language models”
(Universidad de Waterloo). El objetivo era
estudiar cada uno por separado y luego
mezclar ambas técnicas para ver el
resultado.
En los siguientes apartados de este
artículo se irán exponiendo los distintos
enfoques y experimentos con sus
respectivos resultados.
2.- Longitud de las Oraciones (mean
sentence length): el uso de oraciones
largas indican un tipo de escritura más
elaborada y menos coloquial.
3.- Longitud de los párrafos (mean
paragraph length):
4.- Número de comas por miles de tokens
(number of commas per thousand
tokens):
5. - Número de Comillas por miles de
tokens (number of semicolons per
thousand tokens):
2. EL ENFOQUE
6.- Numero de Citas(number of quotation
marks per thousand tokens):
Como hemos explicado antes nos hemos
centrado
en
dos
líneas
de
experimentación, los n-gramas y los
rasgos estilográficos, usando como
herramientas de aprendizaje automático
WEKA, para lo cual hemos necesitado de
la creación de varias herramientas de
software para generar el tipo de archivos
que acepta WEKA. A continuación se
detallan cada uno de los enfoques.
7.- Número de Exclamaciones (number of
exclamation marks per thousand tokens):
8.- Número de Guiones (number of
hyphens per thousand tokens):
9.- (number of ands per thousand tokens):
10.- (number of buts per thousand
tokens):
11.- (number of howevers per thousand
tokens):
2.1 RASGOS ESTILOGRÁFICOS
12.- (number of ifs per thousand tokens):
Como hemos introducido antes todo
escritor tiene unos hábitos y unos
recursos que aplica tanto consciente como
inconscientemente a la hora de escribir.
La clave es descubrir que aspectos de la
escritura son los más identificativos. Los
atributos que escogimos fueron los
siguientes:
13.- (number of thats per thousand
tokens):
1.- Longitud de las Palabras (mean word
length): el uso de palabras más largas
suele ir relacionado con un lenguaje más
formal.
14.- (number of mores per thousand
tokens):
15.- (number of musts per thousand
tokens):
16.- (number of mights per thousand
tokens):
17.- (number of thiss per thousand
tokens):
18.-( number of verys per thousand
tokens):
Estos atributos han sido sacados del
articulo:”Using
machina
learning
Techniques for Stylometry” (Universidad de
Georgia).
2.2 N-GRAMAS
En cuanto al uso de n-gramas se ha de
decir que según el idioma involucrado
pueden ser mejor sacar, bigramas,
trigramas, tetragramas, etc… Para lo cual
hemos desarrollado un software que nos
ayuda a la creación de los mismos.
La forma de nuestros n-gramas, es la
siguiente demostrada con un Ej.:
Tetragramas de “programación”:
1. prog
2. _pro
3. __pr
4. ___p
5. rogr
6. ogra
7. gram
8. rama
9. amac
10. maci
11. ació
12. ción
13. ión_
14. ón__
15. n___
Si tuviéramos una palabra de longitud
menor a la del ngrama, procederíamos
así:
Trigramas de “of”:
1. of_
2. __o
3. f__
La ventaja de usar este tipo de creación
de n-gramas frente a los basados en letras
nada mas (sin guiones) es que a parte de
los n-gramas sin guiones tenemos todas
las terminaciones y comienzos de cada
palabra, que pueden ser fundamentales a
las hora de identificar un autor.Vease el
ejemplo del uso de pasados en verbos
regulares en el Ingles característica que
puede servir para identificar a un autor,
pues bien gracias a el uso de ngramas de
esta forma siempre tendremos el ngrama
“ed” ya sean bigramas, trigramas, etc.
Cada
NGrama
se
convertirá
posteriormente un atributo de tal forma
que el algoritmo de aprendizaje que
usemos intentara generar conocimiento
sobre el uso de los ngramas por parte de
cada autor.
Cada atributo (NGrama) tendrá un valor
real asociado que sale de la siguiente
fórmula:
vj =
frec jd
Tfrec j
Siendo:
Vj El valor del atributo j.
frecjd La frecuencia del atributo j en el
documento d.
Tfreqj La frecuencia del atributo j en la
colección de documentos.
Para conseguir probar el uso de esta
técnica con el WEKA hemos tenido que
crearnos un software de creación de
archivos reconocidos por WEKA.
Esta herramienta la hemos llamado
“NGram Arff Creator” y esta desarrollada
en Java.A continuación se describe el
funcionamiento de la misma, para que se
puedan reproducir nuestro experimentos
correctamente.
La herramienta esta compactada en un
archivo Jar, para poder ejecutarla es
necesario contar con una Maquina Virtual
de Java instalada en nuestro ordenador (la
herramienta esta probada bajo la versión
1.4.5 de la maquina virtual de sun). La
sintaxis de la aplicación es la siguiente:
Java
–jar
NGramArffCreator.jar
DirTextos
NumNGrams
SizeNGram
NGramTable
Siendo:
DirTextos: El directorio donde tenemos,
los directorios de cada uno de los autores,
dentro de los cuales están los ficheros de
texto correspondientes al autor.
NumNGrams: Es un numero entero que
representa, con cuantos NGramas se va a
crear el archivo de entrenamiento,
sabiendo que cada ngrama va a
representar un atributo.De tal manera que
se quedaran con el numero indicado de
ngramas mas frecuentes.
SizeNGram: representa el tamaño de cada
ngrama, es decir, si vamos a sacar
bigramas(2), trigramas(3), etc…
NGramTable: Puede tomar dos valores,
true o false.El parámetro a true significa
que el programa buscara y contara la
frecuencia total de todos los ngramas
encontrados y creara posteriormente un
fichero llamado NGramsTable.dat en el
que almacenara los NumNGrams mas
frecuentes y sus frecuencias (Estamos
creando un fichero de entrenamiento).El
parámetro a false representara que no
hace falta buscar y contar los ngramas
sino que los cargaremos del fichero
NGramsTable.dat (Estamos creando un
archivo de pruebas).
El resultado que da nuestro programa es
un archivo .arff reconocible por weka
para usarlo con los algoritmos de
aprendizaje que nos proporciona.
3. EXPERIMENTACION
Como el objetivo final de nuestra
investigación consistía en intentar hallar
una forma de detección de autoría
independiente del idioma hemos realizado
experimentos en más de un idioma.
Además para cada idioma se han
realizado los experimentos en tres fases:
1. Uso de ngramas
2. Uso de rasgos estilográficos
3. Mezcla de 1 y 2
Como métricas para medir los resultados
nos basamos en el porcentaje de acierto
del sistema y los datos proporcionados de
Recall y Precisión.
En cuanto a él algoritmo usado para
entrenar nuestro sistema el utilizado fue
un algoritmo de boost (AdaBoostM1)
con 50 iteraciones de mejora y que
trabajaba internamente con una algoritmo
de árboles de decisión , un c4.5 ( o J48
como viene en el WEKA).
3.1 EL GRIEGO
La colección de documentos usada
consiste en una serie de textos
periodísticos y nos la proporcionaron
desde la Schoole of Computer Science de
la Universidad de Waterloo.
Esta colección contiene a su vez dos
colecciones distintas A y B, para las
cuales tenemos un conjunto de textos para
el entrenamiento y un conjunto de textos
para las pruebas.
La siguiente tabla representa la colección
de documentos:
3.1.1 NGRAMAS
Como punto de partida para la
experimentación con ngramas sobre esta
colección tomamos las referencias que
teníamos de XXXXX las cuales decían
que los mejores resultados obtenidos
habían sido con ngramas de longitud 6
(Sexagramas), razón por la cual
empezamos nuestro experimentos por
crear un archivo arff de sexagramas.
3.1.1.1 Corpus A
Sobre esta colección no conseguimos
ningún resultado satisfactorio, obtuvimos
unos porcentajes de acierto realmente
bajos e investigando el porque de ese
error tan elevado encontramos que
teníamos un Overfitting (Sobreajuste)
máximo. Obteníamos un error de 55%
sobre el conjunto de pruebas así que para
detectar si teníamos sobreajuste lo que
hicimos fue hacer una evaluación cruzada
con 10 folders, y los resultados nos daban
de un acierto del 100%, claro indicador
de sobreajuste ya que estos resultados
indican que no se equivocaba nunca
haciendo pruebas con el conjunto de
entrenamiento.El sistema se había
aprendido demasiado bien los ejemplos
de entrenamiento, memorizando en vez
de generalizando.
3.1.1.2 Corpus B
Afortunadamente en esta colección no
tuvimos problemas de sobreajuste como
los ocurridos sobre la colección A.
Los mejores resultados los obtuvimos
creando atributos basados en sexagramas
y quedándonos con los 16000 mas
frecuentes.
Evaluando sobre la colección de test
obtuvimos unos porcentajes de acierto
nada desdeñables del 97%.
A continuación se muestran unas tablas
con los resultados obtenidos de Recall y
precisión.
Precision
1
1
1
1
0.833
1
0.909
1
1
1
Recall
1
1
0.9
1
1
1
1
0.9
0.9
1
F1
1
1
0.947
1
0.909
1
0.952
0.947
0.947
1
Class
Alaxiotis
Babiniotis
Bokos
Dertilis
Kiosse
Liakos
Maronitis
Ploritis
Tasios
Tsukalas
3.1.2 Rasgos Estilográficos
3.1.2.1 Corpus A
Los resultados obtenidos fueron de
fracaso total por sobreajuste al 100%
exactamente igual en en el caso de
NGramas, la Razón¿?
3.1.2.2 Corpus B
Los resultados no fueron muy buenos,
aunque ya era previsible porque habíamos
usado un grupo bastante pequeño de
atributos, dando por hecho que esos
aspectos ya los cubrían los n-gramas.
El error fue de un 42%.
Precision
0.571
0.75
0.583
0.444
0.462
0.75
Recall
0.4
0.6
0.7
0.4
0.6
0.6
F1
0.471
0.667
0.636
0.421
0.522
0.667
Class
Alaxiotis
Babiniotis
Bokos
Dertilis
Kiosse
Liakos
0.5
0.692
1
0.267
0.3
0.9
0.9
0.4
0.375
0.783
0.947
0.32
Maronitis
Ploritis
Tasios
Tsukalas
3.1.3 Mezcla ambos métodos
Este método consiste simplemente en la
mezcla de ambos métodos, es decir crear
un archivo arff con los atributos de los
ngramas y los de los rasgos estilográficos.
3.1.3.1 Corpus A
Como cabía a esperar si en la aplicación
de los métodos por separado obteníamos
un sobreajuste máximo en la aplicación
de la mezcla de ambos métodos, ocurre
exactamente lo mismo por lo que no
obtenemos ningún resultado nuevo.
3.1.3.2 Corpus B
La aplicación del metodo de mezcla en
este corpus no mejoro los resultados
obtenidos mediante el metodo de los
ngramas, de donde se podia deducir que
los atributos estilograficos no aportan
mas información que los ngramas, razon
por la cual se creo un ranking por
Information Gain y se observo lo
anteriormente dicho, en el ranking
aparecian al final los atributos
estilograficos y todos con valor de
importacia 0.
El error que se obtuvo fue de un 3% y los
resultados de Recall, Precision, etc son
los mismos que para el metodo de los
Ngramas aplicado con sexagramas,
resultados que se pueden consultar mas
arriba.
5. Trabajo relacionado
Respecto de trabajos realizados usando
ambas técnicas a la vez, ngramas y rasgos
estilográficos no hemos encontrado
ninguna fuente.
Si bien si sobre cada una de las técnicas
por separado, trabajos los cuales usamos
como referencia para desarrollar el
nuestro.Estos trabajos estan nombrados
en las referencias.
Por ejemplo en el uso de ngramas, sobre
el griego, los autores del trabajo
referenciado
obtuvieron
mejores
resultados que nosotros sobre el corpus A
(74%) pero sobre el B ellos obtuvieron
un 90% frente a nuestro 97%.
6. Conclusiones y trabajo futuro
Las conclusiones que podemos sacar son
acerca del Griego nada mas y contemplan
que en este idioma los rasgos
estilográficos
no
aportan
gran
información sino que son los sexagramas
los que nos aportan mas información
acerca de la autoría, si bien estos
resultados pueden ser esperables ya que
en el uso de ngramas estamos recogiendo
varios rasgos estilográficos, aunque sean
medidos respecto de otras métricas
(frecuencia frente a medidas por miles de
tokens).
Como se ha podido observar por falta de
tiempo no se ha podido realizar
investigación más que en un idioma
(Griego) así que el principal trabajo
futuro seria el intento de aplicar los
métodos utilizados a otros idiomas
(Ingles, Español, etc).
Además queda como investigación el
descubrir que características acerca del
Corpus Griego A hacen que usando
cualquiera de los dos métodos, o la
mezcla de los dos se llegue siempre a un
sobreajuste.
7. Referencias
Como nuestro trabajo consistía en el
intento por fusionar dos técnicas usadas
ya: Ngramas y Rasgos estilográficos,
nuestras fuentes han sido 2 artículos:
1) Using Machine Learning Techniques
for Stylometry
http://webster.cs.uga.edu/~khaled/MLcourse/Abstract1.pdf
2) Language Independent Authorship
Attribution using Character Level
Language Models.
http://acl.ldc.upenn.edu/E/E03/E03-1053.pdf
Descargar