=Paper=
{{Paper
|id=Vol-1228/paper7
|storemode=property
|title=Identificación Automática del Idioma en Twitter: Adaptación de Identificadores del Estado del Arte al Contexto Ibérico
|pdfUrl=https://ceur-ws.org/Vol-1228/tweetlid-7-doval.pdf
|volume=Vol-1228
|dblpUrl=https://dblp.org/rec/conf/sepln/DovalVV14
}}
==Identificación Automática del Idioma en Twitter: Adaptación de Identificadores del Estado del Arte al Contexto Ibérico==
Identificación Automática del Idioma en Twitter: Adaptación de Identificadores del Estado del Arte al Contexto Ibérico∗ Automatic Language Identification in Twitter: Adapting State-of-the-Art Identifiers to the Iberian Context Yerai Doval, David Vilares y Jesús Vilares Grupo LYS, Departamento de Computación, Facultade de Informática, Universidade da Coruña, Campus de A Coruña, 15071 – A Coruña {yerai.doval, david.vilares, jesus.vilares}@udc.es – www.grupolys.org Resumen: Describimos aquı́ nuestra participación en el TweetLID. Tras estudiar la problemática de la identificación del idioma, los recursos disponibles y diseñar una solución para la normalización del texto en este tipo de tareas, presentamos dos sis- temas a competición: el primero basado en el clasificador langdetect, re-entrenado y adaptado para trabajar con texto normalizado; el segundo, una solución basada en la votación de clasificadores individuales igualmente re-entrenados y adaptados. Los resultados son analizados tanto globalmente como por idioma y tipo de tuit. Palabras clave: Identificación del idioma; tuit; normalización de texto; español; gallego; catalán; euskera; inglés; portugués. Abstract: We describe here our partipation in TweetLID. After having studied the problem of language identification, the resources available, and designed a text conflation approach for this kind of tasks, we joined the competition with two sys- tems: the first one was based in the guesser langdetect, re-trained and adapted in order to work with conflated text; the second one was an approach based on majo- rity vote which used a set of re-trained and adapted classifiers. Results are analized both globally and at language and tweet-type levels. Keywords: Language identification; tweet; text conflation; Spanish; Galician; Ca- talan; Basque; English; Portuguese. 1. Introducción y objetivos dominio. En LID se suele asumir que las La identificación del idioma (LID o language entradas son monolingües, en un solo idio- identification) es un caso particular de clasifi- ma (Baldwin y Lui, 2010a). Sin embargo, cación multiclase donde, dado un texto de en- en Twitter no es extraño encontrar tuits trada, se pretende averiguar su idioma (Cav- multilingües, que combinan varios idiomas, nar y Trenkle, 1994). A pesar de los avan- p.ej. “Adiós, brother!” (en+es). Asimismo, ces en este campo, ciertos dominios de apli- la identificación deberı́a ser precisa, pero en- cación, como Twitter, siguen constituyendo tradas tan cortas pueden resultar a veces am- un desafı́o (Baldwin y Lui, 2010a; Bergsma et biguas, pudiendo pertenecer a cualquiera de al., 2012) y el TweetLID es un buen ejem- varios idiomas, p.ej. “Boa noite” (gl/pt). plo (San Vicente et al., 2014). Habları́amos entonces de un problema de cla- En primer lugar está la naturaleza de sificación multi-etiqueta (Tsoumakas y Kata- las entradas, tuits de escasos 140 caracte- kis, 2007), más complejo y donde una entrada res cuando la longitud es un factor crı́tico puede estar asociada simultáneamente a va- en LID (Baldwin y Lui, 2010a). Son textos, rias clases. además, a menudo informales, escritos inco- El tercer factor son los recursos. Por una rrectamente o empleando texting (Oliva et parte, algunas de las herramientas de LID al., 2013), lo que introducirá mucho ruido. disponibles no permiten re-entrenarlas, y no En segundo lugar está lo particular del suelen disponer de todos los idiomas requeri- dos para el TweetLID. Por otra parte, aún ∗ Trabajo parcialmente financiado por el Ministerio pudiendo hacerlo, necesitamos datasets pa- de Economı́a y Competitividad y FEDER (TIN2010- 18552-C03-02), Ministerio de Educación, Cultura y ra ello, y aunque existen varios públicamen- Deporte (Beca FPU ref. 13/01180) y Xunta de Galicia te disponibles (Lui y Baldwin, 2011; Lui y (CN2012/008). Baldwin, 2012; Majliš, 2012) pocos contem- plan todos los idiomas necesarios, lo que es 3.1. Clasificadores conveniente para asegurar un comportamien- Aunque fueron probados otros más, éstos fue- to lo más homogéneo posible. Asimismo, lo ron los finalmente escogidos para trabajar. ideal habrı́a sido contar con datasets de tuits, TextCat. De los más conocidos y senci- pero éstos son aún más escasos y no cubren llos, se trata de una implementación hecha los idiomas requeridos (Bergsma et al., 2012; por van Noord (1997) del algoritmo de cate- Lui y Baldwin, 2014). gorización de Cavnar y Trenkle (1994), en el Para terminar, el propio conjunto de idio- cual se comparan modelos de lenguaje basa- mas involucrado en la tarea, aunque pequeño, dos en n-gramas de caracteres de acuerdo a es en sı́ problemático. Tomemos como botón una métrica para la comparación de rankings de muestra el gallego. En primer lugar, su denominada OOP (Out-Of-Place).1 convivencia con el español supone que no es inusual que un gallego pueda introducir — langid.py. Diseñado por Lui y Baldwin incluso sin percatarse—, léxico del gallego al (2012), emplea un clasificador bayesiano mul- emplear el español y viceversa, especialmen- tinomial combinado con caracterı́sticas basa- te en un contexto tan informal como el de un das en n-gramas de bytes. tuit. En segundo lugar, factores como el gra- langdetect. Implementado por Shuyo do de normativización efectiva de la lengua, (2010), combina un clasificador bayesiano sus variantes dialectales, situación geográfi- que opera sobre n-gramas de caracteres con ca, etc. hacen que podamos encontrarnos, por mecanismos de normalización. ejemplo, con dos gallego-parlantes que em- pleen un gallego más castellanizado uno, y 3.2. Datasets más próximo al portugués, el otro. Final- Hemos preferido no emplear los modelos mente, la proximidad lingüı́stica entre idio- pre-entrenados en los clasificadores y re- mas supone un gran problema, pues compar- entrenarlos nosotros mismos para ası́ tener tirán vocabulario, morfemas, etc. dificultan- más flexibilidad y control sobre nuestros ex- do ası́ la clasificación. Estarı́amos, pues, ante perimentos. Como se dijo en la Sección 1, no un problema de clasificación multi-etiqueta fue tarea fácil encontrar corpus apropiados. en el que no sólo las clases no son disjuntas, Finalmente se consideraron dos fuentes. sino que además algunas de ellas comparten En primer lugar, el texto del Tratado de buen número de elementos. la Constitución Europea o TCE (Unión Eu- ropea, 2004), si bien sólo las Partes I a IV 2. Arquitectura hasta el Artı́culo IV-448, ya que son las úni- cas disponibles en sus traducciones a gallego, Aunque inicialmente planteamos dos enfo- catalán y euskera.2 Se trata, pues, de un cor- ques, uno multiclase y otro multi-etiqueta, las pus paralelo, con unos 430kb de texto, unas limitaciones de tiempo sólo nos permitieron 63.000 palabras, por idioma. poner a punto las soluciones multiclase me- En segundo lugar hemos empleado el Ya- nos complejas. De este modo, dado un texto li Dataset Long (Majliš, 2012), comparable de entrada, devolveremos como resultado un aunque no paralelo, con unos 4.5mb de tex- único idioma, aquél con el que con mayor se- to, más de 690.000 palabras, por idioma. guridad está escrito. El corpus de tuits de desarrollo no se Preparamos dos soluciones. La primera co- empleó inicialmente ya que, al no disponer rresponde al caso más sencillo, emplear un por entonces de un segundo corpus de test, único clasificador y, en caso de devolver va- habrı́amos tenido que realizar las pruebas so- rios resultados posibles, tomar el mejor. La bre el propio corpus de entrenamiento, con lo segunda consiste en una solución basada en que los resultados no habrı́an sido fiables. votación donde, dada una serie de clasificado- res, el idioma más veces devuelto entre los re- 4. Evaluación sultados parciales de cada uno constituirá el 4.1. Puesta a punto del sistema resultado final (Lui y Baldwin, 2014). A la hora de decidir la configuración final de nuestro sistema, se realizó una serie de 3. Recursos empleados 1 El código se retocó para poder trabajar con utf-8 Hemos empleado, en lo posible, recursos de ası́ como para aumentar su eficiencia. LID ya disponibles, que ahora describimos. 2 http://repositori.uji.es/xmlui/ run P R F run P R F pos selección corpus constrained langdetect 0.732 0.734 0.639 9/12 votador 0.610 0.582 0.498 12/12 TCE 0.506 0.540 0.477 Yali 0.559 0.610 0.548 unconstr. langdetect 0.682 0.688 0.581 5/9 votador 0.588 0.590 0.571 7/9 selección normalización Yali 0.559 0.610 0.548 Yalino1 0.580 0.635 0.576 Tabla 2: Resultados oficiales Yalino2 0.589 0.644 0.582 Yalino3 0.591 0.639 0.582 Yalino4 0.590 0.645 0.583 nos son mayormente especı́ficos del idioma, y eso es justo lo que queremos obtener. Es selección identificador por ello que únicamente hemos tratado las re- TextCat 0.590 0.645 0.583 peticiones de caracteres, probando a reducir langid.py 0.413 0.252 0.229 langdetect 0.620 0.678 0.622 las secuencias de caracteres iguales a máxi- votador 0.423 0.266 0.249 mo uno (Yalino3 ) o dos caracteres (Yalino2 ), arrojando esta última mejores resultados. La Tabla 1: Resultados durante el proceso de afi- normalización final pasa, pues, por convertir namiento del sistema (en negrita las configu- el texto a minúsculas y eliminar sus dı́gitos y raciones seleccionadas en cada fase). signos de puntuación. En el caso de los tuits, además, se eliminarán los elementos propios de Twitter (enlaces, menciones, etc.) ası́ co- experimentos de puesta a punto, cuyos re- mo las repeticiones de caracteres de longitud sultados de precisión (P ), cobertura (R) y mayor de dos. medida-F (F ) recoge la Tabla 1. En todos Finalmente, procedimos a seleccionar los ellos se empleó el corpus de desarrollo pro- sistemas concretos a emplear en la compe- porcionado por la organización (San Vicen- tición: por una parte la herramienta indi- te et al., 2014), previamente limpiado de ele- vidual que obtuviese mejores resultados y, mentos propios de los tuits tales como enla- por otra, nuestra aproximación basada en vo- ces, hashtags, smilies, etc., que introducirı́an tación (véase Sección 2). En ambos casos ruido (Tromp y Pechenizkiy, 2011). Emplea- los clasificadores considerados fueron Text- mos para ello Twokenize, un tokenizador - Cat, langid.py y langdetect (véase Sec- preprocesador para tuits (Owoputi et al., ción 3.1). La solución basada en votación (vo- 2013) e independiente del idioma. tador ) empleaba las tres, por lo que única- En primer lugar se seleccionó el dataset a mente restaba saber cuál de las tres era me- emplear para entrenar las herramientas. Am- jor. Empleando la configuración establecida bos corpus, TCE y Yali, fueron probados so- previamente se probaron los tres, obteniendo bre el TextCat, obteniendo los resultados que los resultados recogidos en la parte inferior de aparecen en la parte superior de la Tabla 1, la Tabla 1), siendo langdetect el ganador. mostrándose Yali superior. Seguidamente, creı́mos conveniente nor- 4.2. Resultados oficiales malizar el texto para ası́ reducir las fuen- Los resultados oficiales enviados a la compe- tes de ruido. De este modo, tomando co- tición correspondı́an a langdetect y a nuestra mo base el texto original sin normalizar — solución basada en votación, en ambos casos previamente limpiado en el caso de los tuits— aplicando los mecanismos de normalización (Yali en la Tabla 1), tanto datasets como ya descritos, faltando además 26 tuits, que tuits fueron procesados de forma similar a no nos fue posible descargar. como ocurre al aplicar stemming: en primer En el caso de la modalidad constrained, lugar probamos a pasar el texto a minúscu- entrenamos los clasificadores con los tuits del las y a eliminar los dı́gitos (Yalino1 ), pro- corpus de desarrollo, mientras que en la un- bando a continuación a eliminar a mayores constrained empleamos el dataset Yali. Los los signos de puntuación (Yalino2 ). Los resul- valores obtenidos se muestran en la Tabla 2, tados obtenidos mostraron una clara mejo- donde langdetect mejora de nuevo los resulta- ra. Asimismo, los fenómenos de texting tales dos de la votación, si bien la diferencia es aho- como acortamientos, contracciones, transfor- ra mucho menor. Sin embargo, lo que más nos maciones, etc. (Oliva et al., 2013) nos preo- ha sorprendido es ver que los mejores resul- cupaban especialmente, pero dichos fenóme- tados se obtuvieron para constrained, cuando nos esperábamos que fuesen siempre peores convenientemente re-entrenada y adaptada y, por lo reducido y ruidoso del corpus de en- por otro, una solución basada en la votación trenamiento. En todo caso, los resultados ob- de varios clasificadores. Lo prometedor de los tenidos no son tan buenos como los obtenidos resultados obtenidos nos permite ser optimis- en tareas de LID sobre texto “normal”. tas de cara al futuro. En el futuro, queremos mejorar nuestros 4.3. Análisis por idioma sistemas mediante umbrales de medidas de A la hora de estudiar en detalle el compor- confianza y la combinación de dichos valo- tamiento del sistema, decidimos realizar una res, permitiéndonos abordar el caso de idio- nueva tanda de experimentos sin tener en mas desconocidos ası́ como la implemen- cuenta los 26 tuits desaparecidos, sólo los tación de clasificadores multi-etiqueta (Lui, 18.397 disponibles —véase Tabla 3. También Lau, y Baldwin, 2014). Asimismo, prestare- hemos analizado por separado el caso de los mos especial atención al caso del gallego. tuits monolingües, aquéllos escritos en un único idioma, y los multilingües, que contie- Bibliografı́a nen más de un idioma, 16.841 y 350 tuits, Baldwin, T. y M. Lui. 2010a. Language iden- respectivamente. En estos dos últimos casos tification: The long and the short of the no se tuvieron en cuenta ni los tuits ambiguos matter. En Proc. of HLT’10, pp. 229–237. (amb) ni los indefinidos (und). ACL. Estos resultados nos confirman la caı́da de Bergsma, S., P. McNamee, M. Bagdouri, rendimiento en el caso de la solución basada C. Fink, y T. Wilson. 2012. Langua- en votación (votador ), teniendo además un ge identification for creating language- comportamiento más irregular. En el caso de specific Twitter collections. En Proc. of langdetect, éste muestra un buen compor- LSM’12, pp. 65–74. ACL. tamiento en el caso del español (es) y de los tuits ambiguos (amb). La precisión es me- Cavnar, W. B. y J. M. Trenkle. 1994. N- nor para catalán (ca), euskera (eu) e inglés gram-based text categorization. En Proc. (en), siendo inesperado lo de estos dos últi- of SDAIR-94, pp. 161–175. mos, pues al ser ambos idiomas muy diferen- Unión Europea. 2004. Tratado por el que se tes del resto (todas lenguas romances), se es- establece una Constitución para Europa. perarı́a lo contrario. El peor rendimiento fue No. C 310 del Diario Oficial de la Unión para el gallego (gl), debido a la confusión Europea. 16 Dic. con español y portugués (pt), y para los in- definidos (und), cuya cobertura fue nula. Lui, M. y T. Baldwin. 2011. Cross-domain En lo que respecta al análisis comparati- feature selection for language identifica- vo de tuits monolingües frente a multilingües, tion. En Proc. of IJCNLP 2011, pp. 553– los resultados obtenidos en cuanto a precisión 561. para los multilingües han sido incluso ligera- Lui, M. y T. Baldwin. 2012. Langid.py: An mente mejores que para los monolingües. Al off-the-shelf language identification tool. mismo tiempo, la cobertura obtenida ha sido En Proc. of ACL 2012 System Demons- prácticamente la mitad que la de los mono- trations, pp. 25–30. ACL. Herramien- lingües, y dado que casi todos los tuits mul- ta: https://github.com/saffsd/langid.py tilingües contenı́an dos idiomas, eso significa Lui, M. y T. Baldwin. 2014. Accurate lan- que, si bien para esos tuits sólo hemos podido guage identification of twitter messages. devolver uno de los dos idiomas que contie- En Proc. of LASM 2014, pp. 17–25. ACL. nen, estamos acertando incluso algo más que para el resto. Esto nos permite ser optimistas Lui, M., J. H. Lau, y T. Baldwin. 2014. Au- de cara a futuras mejoras. tomatic detection and language identifica- tion of multilingual documents. Transac- 5. Conclusiones y trabajo futuro tions of the ACL, 2:27–40. Dada nuestra limitación de tiempo, en nues- Majliš, M. 2012. Yet another language tra participación en el TweetLID hemos identifier. En Proc. of the Student Re- optado por aproximaciones sencillas basadas search Workshop at the EACL’12, pp. 46– en la adaptación de componentes ya existen- 54. ACL. Herramienta: http://ufal.mff. tes: por un lado, la herramienta langdetect, cuni.cz/tools/yali/ tuits considerados disponibles (18397) monolingües (16841) multilingües (350) run leng P R F P R F P R F pt 0.828 0.904 0.864 0.864 0.907 0.885 0.773 0.680 0.723 es 0.977 0.815 0.889 0.989 0.823 0.899 0.987 0.505 0.668 langdetect ca 0.564 0.892 0.691 0.654 0.925 0.766 0.674 0.341 0.453 gl 0.231 0.841 0.362 0.248 0.853 0.384 0.136 0.333 0.194 en 0.696 0.822 0.754 0.819 0.923 0.868 0.965 0.311 0.470 eu 0.561 0.848 0.675 0.694 0.958 0.805 0.979 0.461 0.627 constrained und 1.000 0.008 0.017 – – – – – – amb 1.000 0.754 0.860 – – – – – – global 0.732 0.736 0.639 0.711 0.898 0.768 0.752 0.438 0.522 pt 0.507 0.707 0.591 0.528 0.711 0.606 0.239 0.440 0.310 es 0.937 0.668 0.780 0.950 0.676 0.790 0.948 0.356 0.518 ca 0.487 0.732 0.585 0.526 0.757 0.621 0.676 0.294 0.410 votador gl 0.091 0.467 0.153 0.106 0.473 0.173 0.056 0.222 0.089 en 0.527 0.655 0.584 0.588 0.725 0.650 0.885 0.305 0.454 eu 0.328 0.713 0.449 0.365 0.791 0.500 0.833 0.441 0.577 und 1.000 0.003 0.006 – – – – – – amb 1.000 0.719 0.837 – – – – – – global 0.610 0.583 0.498 0.511 0.689 0.556 0.606 0.343 0.393 pt 0.679 0.842 0.752 0.708 0.847 0.771 0.480 0.480 0.480 es 0.974 0.746 0.845 0.987 0.757 0.857 0.982 0.362 0.530 ca 0.567 0.865 0.685 0.641 0.897 0.748 0.778 0.329 0.463 langdetect gl 0.175 0.751 0.284 0.185 0.749 0.297 0.184 0.778 0.298 en 0.588 0.832 0.689 0.693 0.910 0.786 0.918 0.441 0.595 eu 0.472 0.830 0.602 0.570 0.927 0.706 0.962 0.490 0.649 unconstrained und 1.000 0.007 0.015 – – – – – – amb 1.000 0.635 0.776 – – – – – – global 0.682 0.689 0.581 0.631 0.848 0.694 0.717 0.480 0.503 pt 0.680 0.773 0.724 0.700 0.778 0.737 0.474 0.360 0.409 es 0.932 0.868 0.899 0.947 0.872 0.908 0.969 0.709 0.819 ca 0.747 0.713 0.729 0.806 0.746 0.775 0.929 0.153 0.263 votador gl 0.321 0.379 0.347 0.327 0.381 0.352 0.300 0.333 0.316 en 0.376 0.813 0.515 0.505 0.931 0.655 0.822 0.209 0.333 eu 0.645 0.620 0.632 0.726 0.704 0.715 0.917 0.324 0.478 und 0.000 0.000 0.000 – – – – – – amb 1.000 0.565 0.722 – – – – – – global 0.588 0.591 0.571 0.669 0.735 0.690 0.735 0.348 0.436 Tabla 3: Resultados no oficiales para análisis a nivel de idioma(s). Oliva, J., J. I. Serrano, M. D. del Castillo, y brary for Java. http://code.google.com/p/ A. Iglesias. 2013. A SMS normalization language-detection/ system integrating multiple grammatical Sites, D. 2013. CLD2: Compact Langua- resources. Natural Language Engineering, ge Detector 2. https://code.google.com/p/ 19(1):121–141. cld2/ Owoputi, O., B. O’Connor, C. Dyer, K. Gim- Tromp, E. y M. Pechenizkiy. 2011. Graph- pel, N. Schneider, y N. A. Smith. 2013. based n-gram language identification on Improved part-of-speech tagging for onli- short texts. En Proc. of Benelearn 2011, ne conversational text with word clusters. pp. 27–34. En Proc. of NAACL-HLT 2013, pp. 380– 390. ACL. Toolkit: http://www.ark.cs.cmu. Tsoumakas, G. y I. Katakis. 2007. Multi- edu/TweetNLP/ label classification: An overview. Interna- San Vicente, I., A. Zubiaga, P. Gamallo, J. R. tional Journal of Data Warehousing and Pichel, I. Alegrı́a, N. Aranberri, A. Ezei- Mining (IJDWM), 3(3):1–13. za, y V. Fresno. 2014. Overview of van Noord, G. 1997. TextCat. http://odur. TweetLID: Tweet Language Identification let.rug.nl/\~ vannoord/TextCat/ at SEPLN 2014. En TweetLID @ SEPLN 2014. Shuyo, N. 2010. Language detection li-