<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Identificaci´on Autom´atica del Idioma en Twitter: Adaptaci´on de Identificadores del Estado del Arte al Contexto Ib´erico∗</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yerai Doval</string-name>
          <email>yerai.doval@udc.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Vilares y Jesu´s Vilares</string-name>
          <email>david.vilares@udc.es</email>
          <email>jesus.vilares@udc.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Grupo LYS, Departamento de Computaci ́on, Facultade de Inform ́atica, Universidade da Corun ̃a, Campus de A Corun ̃a</institution>
          ,
          <addr-line>15071 - A Corun ̃a</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>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 systems: 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 majority vote which used a set of re-trained and adapted classifiers. Results are analized both globally and at language and tweet-type levels.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        La identificacio´n del idioma (LID o language
identification) es un caso particular de
clasificacio´n multiclase donde, dado un texto de
entrada, se pretende averiguar su idioma
(Cavnar y Trenkle, 1994). A pesar de los
avances en este campo, ciertos dominios de
aplicaci´on, como Twitter, siguen constituyendo
un desaf´ıo (Baldwin y Lui, 2010a; Bergsma et
al., 2012) y el TweetLID es un buen
ejemplo
        <xref ref-type="bibr" rid="ref3">(San Vicente et al., 2014)</xref>
        .
      </p>
      <p>
        En primer lugar esta´ la naturaleza de
las entradas, tuits de escasos 140
caracteres cuando la longitud es un factor cr´ıtico
en LID (Baldwin y Lui, 2010a). Son textos,
adema´s, a menudo informales, escritos
incorrectamente o empleando texting
        <xref ref-type="bibr" rid="ref1">(Oliva et
al., 2013)</xref>
        , lo que introducir´a mucho ruido.
      </p>
      <p>
        En segundo lugar esta´ lo particular del
dominio. En LID se suele asumir que las
entradas son monolingu¨es, en un solo
idioma (Baldwin y Lui, 2010a). Sin embargo,
en Twitter no es extran˜o encontrar tuits
multilingu¨es, que combinan varios idiomas,
p.ej. “Adio´s, brother!” (en+es). Asimismo,
la identificacio´n deber´ıa ser precisa, pero
entradas tan cortas pueden resultar a veces
ambiguas, pudiendo pertenecer a cualquiera de
varios idiomas, p.ej. “Boa noite” (gl/pt).
Hablar´ıamos entonces de un problema de
clasificacio´n multi-etiqueta
        <xref ref-type="bibr" rid="ref4">(Tsoumakas y
Katakis, 2007)</xref>
        , ma´s complejo y donde una entrada
puede estar asociada simulta´neamente a
varias clases.
      </p>
      <p>El tercer factor son los recursos. Por una
parte, algunas de las herramientas de LID
disponibles no permiten re-entrenarlas, y no
suelen disponer de todos los idiomas
requeridos para el TweetLID. Por otra parte, au´n
pudiendo hacerlo, necesitamos datasets
para ello, y aunque existen varios
pu´blicamente disponibles (Lui y Baldwin, 2011; Lui y
Baldwin, 2012; Majliˇs, 2012) pocos
contemplan todos los idiomas necesarios, lo que es
conveniente para asegurar un
comportamiento lo ma´s homog´eneo posible. Asimismo, lo
ideal habr´ıa sido contar con datasets de tuits,
pero ´estos son au´n ma´s escasos y no cubren
los idiomas requeridos (Bergsma et al., 2012;
Lui y Baldwin, 2014).</p>
      <p>Para terminar, el propio conjunto de
idiomas involucrado en la tarea, aunque pequen˜o,
es en s´ı problem´atico. Tomemos como bot´on
de muestra el gallego. En primer lugar, su
convivencia con el espan˜ol supone que no es
inusual que un gallego pueda introducir —
incluso sin percatarse—, l´exico del gallego al
emplear el espan˜ol y viceversa,
especialmente en un contexto tan informal como el de un
tuit. En segundo lugar, factores como el
grado de normativizacio´n efectiva de la lengua,
sus variantes dialectales, situacio´n
geogra´fica, etc. hacen que podamos encontrarnos, por
ejemplo, con dos gallego-parlantes que
empleen un gallego ma´s castellanizado uno, y
ma´s pro´ximo al portugu´es, el otro.
Finalmente, la proximidad lingu¨´ıstica entre
idiomas supone un gran problema, pues
compartira´n vocabulario, morfemas, etc.
dificultando as´ı la clasificacio´n. Estar´ıamos, pues, ante
un problema de clasificacio´n multi-etiqueta
en el que no so´lo las clases no son disjuntas,
sino que adema´s algunas de ellas comparten
buen nu´mero de elementos.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>Arquitectura</title>
      <p>Aunque inicialmente planteamos dos
enfoques, uno multiclase y otro multi-etiqueta, las
limitaciones de tiempo so´lo nos permitieron
poner a punto las soluciones multiclase
menos complejas. De este modo, dado un texto
de entrada, devolveremos como resultado un
u´nico idioma, aqu´el con el que con mayor
seguridad esta´ escrito.</p>
      <p>Preparamos dos soluciones. La primera
corresponde al caso ma´s sencillo, emplear un
u´nico clasificador y, en caso de devolver
varios resultados posibles, tomar el mejor. La
segunda consiste en una solucio´n basada en
votacio´n donde, dada una serie de
clasificadores, el idioma ma´s veces devuelto entre los
resultados parciales de cada uno constituir´a el
resultado final (Lui y Baldwin, 2014).</p>
    </sec>
    <sec id="sec-3">
      <title>Recursos empleados</title>
      <p>Hemos empleado, en lo posible, recursos de
LID ya disponibles, que ahora describimos.
3.1.</p>
      <sec id="sec-3-1">
        <title>Clasificadores</title>
        <p>
          Aunque fueron probados otros ma´s, ´estos
fueron los finalmente escogidos para trabajar.
TextCat. De los ma´s conocidos y
sencillos, se trata de una implementaci´on hecha
por
          <xref ref-type="bibr" rid="ref5">van Noord (1997</xref>
          ) del algoritmo de
categorizacio´n de Cavnar y Trenkle (1994), en el
cual se comparan modelos de lenguaje
basados en n-gramas de caracteres de acuerdo a
una m´etrica para la comparaci´on de rankings
denominada OOP (Out-Of-Place).1
langid.py. Disen˜ado por Lui y Baldwin
(2012), emplea un clasificador bayesiano
multinomial combinado con caracter´ısticas
basadas en n-gramas de bytes.
langdetect. Implementado por Shuyo
(2010), combina un clasificador bayesiano
que opera sobre n-gramas de caracteres con
mecanismos de normalizaci´on.
3.2.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Datasets</title>
        <p>Hemos preferido no emplear los modelos
pre-entrenados en los clasificadores y
reentrenarlos nosotros mismos para as´ı tener
ma´s flexibilidad y control sobre nuestros
experimentos. Como se dijo en la Seccio´n 1, no
fue tarea f´acil encontrar corpus apropiados.
Finalmente se consideraron dos fuentes.</p>
        <p>En primer lugar, el texto del Tratado de
la Constitucio´n Europea o TCE (Uni´on
Europea, 2004), si bien so´lo las Partes I a IV
hasta el Art´ıculo IV-448, ya que son las
u´nicas disponibles en sus traducciones a gallego,
catal´an y euskera.2 Se trata, pues, de un
corpus paralelo, con unos 430kb de texto, unas
63.000 palabras, por idioma.</p>
        <p>En segundo lugar hemos empleado el
Yali Dataset Long (Majliˇs, 2012), comparable
aunque no paralelo, con unos 4.5mb de
texto, ma´s de 690.000 palabras, por idioma.</p>
        <p>El corpus de tuits de desarrollo no se
empleo´ inicialmente ya que, al no disponer
por entonces de un segundo corpus de test,
habr´ıamos tenido que realizar las pruebas
sobre el propio corpus de entrenamiento, con lo
que los resultados no habr´ıan sido fiables.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Evaluacio´n 4.</title>
      <p>4.1.</p>
      <sec id="sec-4-1">
        <title>Puesta a punto del sistema</title>
        <p>A la hora de decidir la configuraci´on final
de nuestro sistema, se realizo´ una serie de
1El c´odigo se retoc´o para poder trabajar con utf-8
as´ı como para aumentar su eficiencia.</p>
        <p>2http://repositori.uji.es/xmlui/
run
TCE
Yali
Yali
Yalino1
Yalino2
Yalino3
Yalino4
TextCat
langid.py
langdetect
votador</p>
        <p>
          seleccio´n corpus
seleccio´n normalizacio´n
0.506 0.540 0.477
0.559 0.610 0.548
0.559 0.610 0.548
0.580 0.635 0.576
0.589 0.644 0.582
0.591 0.639 0.582
0.590 0.645 0.583
Tabla 1: Resultados durante el proceso de
afinamiento del sistema (en negrita las
configuraciones seleccionadas en cada fase).
experimentos de puesta a punto, cuyos
resultados de precisi´on (P ), cobertura (R) y
medida-F (F ) recoge la Tabla 1. En todos
ellos se empleo´ el corpus de desarrollo
proporcionado por la organizacio´n
          <xref ref-type="bibr" rid="ref3">(San
Vicente et al., 2014)</xref>
          , previamente limpiado de
elementos propios de los tuits tales como
enlaces, hashtags, smilies, etc., que introducir´ıan
ruido (Tromp y Pechenizkiy, 2011).
Empleamos para ello Twokenize, un tokenizador
preprocesador para tuits
          <xref ref-type="bibr" rid="ref2">(Owoputi et al.,
2013)</xref>
          e independiente del idioma.
        </p>
        <p>En primer lugar se selecciono´ el dataset a
emplear para entrenar las herramientas.
Ambos corpus, TCE y Yali, fueron probados
sobre el TextCat, obteniendo los resultados que
aparecen en la parte superior de la Tabla 1,
mostr´andose Yali superior.</p>
        <p>
          Seguidamente, cre´ımos conveniente
normalizar el texto para as´ı reducir las
fuentes de ruido. De este modo, tomando
como base el texto original sin normalizar —
previamente limpiado en el caso de los tuits—
(Yali en la Tabla 1), tanto datasets como
tuits fueron procesados de forma similar a
como ocurre al aplicar stemming : en primer
lugar probamos a pasar el texto a
minu´sculas y a eliminar los d´ıgitos (Yalino1),
probando a continuacio´n a eliminar a mayores
los signos de puntuacio´n (Yalino2). Los
resultados obtenidos mostraron una clara
mejora. Asimismo, los fen´omenos de texting tales
como acortamientos, contracciones,
transformaciones, etc.
          <xref ref-type="bibr" rid="ref1">(Oliva et al., 2013)</xref>
          nos
preocupaban especialmente, pero dichos
fen´omerun
constrained langdetect
votador
nos son mayormente espec´ıficos del idioma,
y eso es justo lo que queremos obtener. Es
por ello que u´nicamente hemos tratado las
repeticiones de caracteres, probando a reducir
las secuencias de caracteres iguales a
ma´ximo uno (Yalino3) o dos caracteres (Yalino2),
arrojando esta u´ltima mejores resultados. La
normalizaci´on final pasa, pues, por convertir
el texto a minu´sculas y eliminar sus d´ıgitos y
signos de puntuacio´n. En el caso de los tuits,
adema´s, se eliminar´an los elementos propios
de Twitter (enlaces, menciones, etc.) as´ı
como las repeticiones de caracteres de longitud
mayor de dos.
        </p>
        <p>Finalmente, procedimos a seleccionar los
sistemas concretos a emplear en la
competici´on: por una parte la herramienta
individual que obtuviese mejores resultados y,
por otra, nuestra aproximaci´on basada en
votaci´on (v´ease Seccio´n 2). En ambos casos
los clasificadores considerados fueron
TextCat, langid.py y langdetect (v´ease
Secci´on 3.1). La solucio´n basada en votaci´on
(votador ) empleaba las tres, por lo que
u´nicamente restaba saber cua´l de las tres era
mejor. Empleando la configuraci´on establecida
previamente se probaron los tres, obteniendo
los resultados recogidos en la parte inferior de
la Tabla 1), siendo langdetect el ganador.
4.2.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Resultados oficiales</title>
        <p>Los resultados oficiales enviados a la
competici´on correspond´ıan a langdetect y a nuestra
solucio´n basada en votaci´on, en ambos casos
aplicando los mecanismos de normalizaci´on
ya descritos, faltando adema´s 26 tuits, que
no nos fue posible descargar.</p>
        <p>En el caso de la modalidad constrained,
entrenamos los clasificadores con los tuits del
corpus de desarrollo, mientras que en la
unconstrained empleamos el dataset Yali. Los
valores obtenidos se muestran en la Tabla 2,
donde langdetect mejora de nuevo los
resultados de la votaci´on, si bien la diferencia es
ahora mucho menor. Sin embargo, lo que ma´s nos
ha sorprendido es ver que los mejores
resultados se obtuvieron para constrained, cuando
nos espera´bamos que fuesen siempre peores
por lo reducido y ruidoso del corpus de
entrenamiento. En todo caso, los resultados
obtenidos no son tan buenos como los obtenidos
en tareas de LID sobre texto “normal”.
4.3.</p>
      </sec>
      <sec id="sec-4-3">
        <title>An´alisis por idioma</title>
        <p>A la hora de estudiar en detalle el
comportamiento del sistema, decidimos realizar una
nueva tanda de experimentos sin tener en
cuenta los 26 tuits desaparecidos, so´lo los
18.397 disponibles —v´ease Tabla 3. Tambi´en
hemos analizado por separado el caso de los
tuits monolingu¨es, aqu´ellos escritos en un
u´nico idioma, y los multilingu¨es, que
contienen ma´s de un idioma, 16.841 y 350 tuits,
respectivamente. En estos dos u´ltimos casos
no se tuvieron en cuenta ni los tuits ambiguos
(amb) ni los indefinidos (und ).</p>
        <p>Estos resultados nos confirman la ca´ıda de
rendimiento en el caso de la solucio´n basada
en votaci´on (votador ), teniendo adema´s un
comportamiento ma´s irregular. En el caso de
langdetect, ´este muestra un buen
comportamiento en el caso del espan˜ol (es) y de los
tuits ambiguos (amb). La precisi´on es
menor para catal´an (ca), euskera (eu) e ingl´es
(en), siendo inesperado lo de estos dos
u´ltimos, pues al ser ambos idiomas muy
diferentes del resto (todas lenguas romances), se
esperar´ıa lo contrario. El peor rendimiento fue
para el gallego (gl), debido a la confusio´n
con espan˜ol y portugu´es (pt), y para los
indefinidos (und), cuya cobertura fue nula.</p>
        <p>En lo que respecta al ana´lisis
comparativo de tuits monolingu¨es frente a multilingu¨es,
los resultados obtenidos en cuanto a precisi´on
para los multilingu¨es han sido incluso
ligeramente mejores que para los monolingu¨es. Al
mismo tiempo, la cobertura obtenida ha sido
pra´cticamente la mitad que la de los
monolingu¨es, y dado que casi todos los tuits
multilingu¨es conten´ıan dos idiomas, eso significa
que, si bien para esos tuits so´lo hemos podido
devolver uno de los dos idiomas que
contienen, estamos acertando incluso algo ma´s que
para el resto. Esto nos permite ser optimistas
de cara a futuras mejoras.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusiones y trabajo futuro</title>
      <p>Dada nuestra limitacio´n de tiempo, en
nuestra participaci´on en el TweetLID hemos
optado por aproximaciones sencillas basadas
en la adaptacio´n de componentes ya
existentes: por un lado, la herramienta langdetect,
convenientemente re-entrenada y adaptada y,
por otro, una solucio´n basada en la votaci´on
de varios clasificadores. Lo prometedor de los
resultados obtenidos nos permite ser
optimistas de cara al futuro.</p>
      <p>En el futuro, queremos mejorar nuestros
sistemas mediante umbrales de medidas de
confianza y la combinacio´n de dichos
valores, permiti´endonos abordar el caso de
idiomas desconocidos as´ı como la
implementaci´on de clasificadores multi-etiqueta (Lui,
Lau, y Baldwin, 2014). Asimismo,
prestaremos especial atencio´n al caso del gallego.</p>
    </sec>
    <sec id="sec-6">
      <title>Bibliograf´ıa</title>
      <p>Baldwin, T. y M. Lui. 2010a. Language
identification: The long and the short of the
matter. En Proc. of HLT’10, pp. 229–237.</p>
      <p>ACL.</p>
      <p>Bergsma, S., P. McNamee, M. Bagdouri,</p>
      <p>C. Fink, y T. Wilson. 2012.
Language identification for creating
languagespecific Twitter collections. En Proc. of</p>
      <p>LSM’12, pp. 65–74. ACL.</p>
      <p>Cavnar, W. B. y J. M. Trenkle. 1994.
Ngram-based text categorization. En Proc.</p>
      <p>of SDAIR-94, pp. 161–175.</p>
      <p>Uni´on Europea. 2004. Tratado por el que se
establece una Constituci´on para Europa.</p>
      <p>No. C 310 del Diario Oficial de la Uni´on</p>
      <p>Europea. 16 Dic.</p>
      <p>Lui, M. y T. Baldwin. 2011. Cross-domain
feature selection for language
identification. En Proc. of IJCNLP 2011, pp. 553–
561.</p>
      <p>Lui, M. y T. Baldwin. 2012. Langid.py: An
off-the-shelf language identification tool.</p>
      <p>En Proc. of ACL 2012 System
Demonstrations, pp. 25–30. ACL.
Herramienta: https://github.com/saffsd/langid.py
Lui, M. y T. Baldwin. 2014. Accurate
language identification of twitter messages.</p>
      <p>En Proc. of LASM 2014, pp. 17–25. ACL.</p>
      <p>Lui, M., J. H. Lau, y T. Baldwin. 2014.
Automatic detection and language
identification of multilingual documents.
Transactions of the ACL, 2:27–40.</p>
      <p>Majliˇs, M. 2012. Yet another language
identifier. En Proc. of the Student
Research Workshop at the EACL’12, pp. 46–
54. ACL. Herramienta: http://ufal.mff.
cuni.cz/tools/yali/
tuits considerados
disponibles (18397)
run
leng
pt
es
ca
gl
en
eu
und
amb
global
pt
es
ca
gl
en
eu
und
amb
global
pt
es
ca
gl
en
eu
und
amb
global
pt
es
ca
gl
en
eu
und
amb
global</p>
      <p>P</p>
      <p>R</p>
      <p>Tabla 3: Resultados no oficiales para ana´lisis a nivel de idioma(s).</p>
      <p>edu/TweetNLP/</p>
      <sec id="sec-6-1">
        <title>Shuyo, N. 2010.</title>
      </sec>
      <sec id="sec-6-2">
        <title>Language detection li</title>
        <p>brary for Java. http://code.google.com/p/
ge Detector 2. https://code.google.com/p/
Tromp, E. y M. Pechenizkiy. 2011.
Graphbased n-gram language identification on
short texts. En Proc. of Benelearn 2011,
pp. 27–34.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Oliva</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <source>J. I. Serrano, M. D. del Castillo</source>
          , y
          <string-name>
            <given-names>A.</given-names>
            <surname>Iglesias</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>A SMS normalization system integrating multiple grammatical resources</article-title>
          .
          <source>Natural Language Engineering</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ):
          <fpage>121</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Owoputi</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>B. O'Connor</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Dyer</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Gimpel</surname>
            , N. Schneider,
            <given-names>y N. A.</given-names>
          </string-name>
          <string-name>
            <surname>Smith</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Improved part-of-speech tagging for online conversational text with word clusters</article-title>
          .
          <source>En Proc. of NAACL-HLT</source>
          <year>2013</year>
          , pp.
          <fpage>380</fpage>
          -
          <lpage>390</lpage>
          . ACL. Toolkit: http://www.ark.cs.cmu.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>San</given-names>
            <surname>Vicente</surname>
          </string-name>
          , I.,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zubiaga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gamallo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Pichel</surname>
          </string-name>
          , I. Alegr´ıa,
          <string-name>
            <given-names>N.</given-names>
            <surname>Aranberri</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Ezeiza, y
          <string-name>
            <given-names>V.</given-names>
            <surname>Fresno</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Overview of TweetLID: Tweet Language Identification at SEPLN 2014</article-title>
          .
          <article-title>En TweetLID @</article-title>
          <year>SEPLN 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Tsoumakas</surname>
            ,
            <given-names>G. y I.</given-names>
          </string-name>
          <string-name>
            <surname>Katakis</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Multilabel classification: An overview</article-title>
          .
          <source>International Journal of Data Warehousing and Mining (IJDWM)</source>
          ,
          <volume>3</volume>
          (
          <issue>3</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>van Noord</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <year>1997</year>
          . TextCat. http://odur.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>