=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== https://ceur-ws.org/Vol-1228/tweetlid-7-doval.pdf
    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-