miércoles, 31 de octubre de 2012

Mecanismos de depuración de páginas web para la extracción y procesamiento de textos

Cuando se generan colecciones de documentos basados en páginas web, los programas webcrawler efectúan un proceso de extracción del código fuente, mediante el empleo técnicas cURL y DOM. Al hacerlo no sólo se adquiere el texto sujeto a recuperación, sino todo el conjunto de etiquetas en formato HTML y CSS que lo acompañan. Si tales etiquetados no son eliminados, no se puede iniciar el procesamiento de la información y su correspondiente tratamiento. Por ello, se demuestra la importancia de aplicar mecanismos de depuración del código fuente, que facilite la extracción limpia de los textos, que serán la materia prima con la que se componen las colecciones sobre las que se recupera la información. Para poder comprender la multitud de procesos que se llevan a cabo, se muestra la siguiente tabla1 en la que puede ver un orden en la consecución de los mismos.

Preparación de la colección de documentos

NOTA: Preparar los documentos implica en esencia los procesos destacados en esta tabla. No obstante, pueden aplicarse otros derivados del procesamiento del lenguaje natural, analizadores sintácticos para el reconocimiento de las oraciones del texto, identificación de la naturaleza de los complementos y sintagmas de las frases, etc. Tales funciones se situarían entre el proceso de Normalización de textos y el de indexación, puesto que antes de proceder a su almacenamiento, se requeriría del análisis semántico-sintagmático correspondiente.

Proceso de depuración
Depuración y supresión de código fuente
Identificación de casos especiales
Normalización de textos
Tokenización
Conversión a minúsculas, eliminación de signos de puntuación y acentos
Eliminación de palabras vacías
Transliteración y reemplazo de caracteres especiales 
Indexación
Reducción morfológica
Almacenamiento
Fichero inverso
Fichero índice
Tabla1. Procesos para la preparación de los documentos

Los datos
¿Cómo eliminar todo lo que no sea el texto de un artículo? ¿Cómo extrare los bloques de contenidos? ¿Cómo evitar el problema del anidamiento de etiquetas en HTML? ¿Cómo detectar el inicio y el final del texto? Éstas son algunas de las preguntas más habituales cuando se trata de analizar el contenido textual de un sitio web. Para tratar de enfocar y solucionar estos problemas previamente es necesario considerar los siguientes aspectos:
  • Qué tipo de documento web se pretende explotar.
  • Qué nivel de anidamiento tiene el código fuente.
  • Qué etiquetas contienen la información relevante.
  • Que fragmentos de código corresponden al interfaz del sitio web.

    Depuración y supresión de códigos
    Para efectuar un proceso de depuración y limpieza del contenido, es preciso identificar qué bloque de HTML contiene la información central del documento. En esencia el webcrawler debe ser capaz de determinar qué elementos corresponden al interfaz visual, la navegación hipertextual, los menús, la publicidad, los banners, así como cualquier otro elemento accesorio que no forma parte del contenido. De una forma visual se podría explicar con la siguiente imagen1

     Imagen1. El contenido útil es el artículo propiamente dicho y no la interfaz de la página

    Por regla general, cuando se trata de depurar el texto central de una página web, el webcrawler actúa dentro del dominio del cuerpo del sitio web <body></body>, eliminando todas las etiquetas <table></table>, <iframe></iframe>. A esta primera medida se le suman otrás muchas relativas, a la identificación de contenidos esenciales, como por ejemplo el encabezamiento, el resumen, los párrafos de contenido, cláramente identificados por etiquetas <h1></h1>, <h2></h2>, <h3></h3>, <p></p>, <blockquote></blockquote>, <cite></cite>. Aún así la ideosincrasia y variedad de las páginas web, obligan a un reconocimiento de casos, estilos. Este es el caso del empleo de la etiqueta <div></div> que corresponde a las capas en HTML y que pueden adquirir cualquier estilo en CSS que por ejemplo imite el resultado de una etiqueta de encabezado <h1></h1>.  Éste tipo de situaciones son muy comúnes y hacen que el webcrawler contemple el análisis de los estilos con que se editan las informaciones. Además existe el problema añadido de utilizar recursivamente el anidamiento de distintos elementos en HTML, lo que dificulta aún más si cabe, el proceso de depuración, obsérvese la siguiente tabla2.

    Ejemplo de anidamiento masivo
    <div style="margin-bottom:1em">
    <div>
    <table style="width: 100%; height: 22px;" border="0">
    <tbody>
    <tr><td>
    <ul>
    <li>
    <div align="left"><a href="">Segundo ciclo:&nbsp;Licenciatura</a></div>
    </li>
    <li>
    <div align="left"><a href="" target="_blank">Titulaciones a extinguir y actuales con sus pasarelas</a></div>
    </li>
    </ul>
    </td>
    <td>
    <img src=""/>
    <iframe src="" class='framestyle'></iframe>
    </td>
    <td>
    <ul>
    <li><a href="" target="_blank"><strong>Informaci&oacute;n sobre los nuevos estudios</strong></a></li>
     </ul>
    </td></tr>
    </tbody>
    </table>
    </div>
    </div>
    Tabla2. El excesivo anidamiento de una página web puede dificultar los procesos de depuración

    Como se puede comprobar, las etiquetas div embeben distintos contenidos, entre ellos tablas, marcos, imágenes, enlaces... en distintos niveles de anidamiento, tal como se demuestra en el sangrado de los elementos. Este caso exige un tratamiento del etiquetado por medio de patrones reconocibles para su detección y extracción. Además existen otras dificultades añadidas. Se trata del etiquetado sin normalización, en desuso, obsoleto ó especial. Una muestra de ello son algunas de las etiquetas que se muestran en la siguiente tabla3.

    Muestra de etiquetado especialmente difícil de eliminar. (Exige recopilar caso a caso)
    <center>
    <di>
    <table>
    <tbody>
    <noscript>
    <font>
    <base>
    </+script>
    <fb:fan>
    <map>
    <na>
    <small>
    <time>
    <noindex>
    <nobr>
    <o:p>
    <fb:like>
    <asx>
    <basefont>
    <fieldset>
    <legend>
    <base>
    <sup>
    <wbr>
    <area>
    <layer>
    <spacer>
    Tabla3. Muestra de etiquetado complejo

    Tokenización
    Es el proceso que descompone los textos de una colección en sus únidades mínimas, las palabras o términos propiamente dichos. A tales elementos se les denomina "tokens" que conforman una lista de ítems que se utiliza para su análisis PNL (Procesamiento del lenguaje natural), estadístico, lingüístico, almacenamiento y posterior recuperación de información. Para llevar a cabo tal proceso, se utilizan los espacios entre las palabras del texto como divisores de los distintos "tokens". Véase un ejemplo de ello en la siguiente tabla4.

    Ejemplo de tokenización
    Institución cuya finalidad consiste en la adquisición, conservación, estudio y exposición de libros y documentos. Local donde se tiene considerable número de libros ordenados para la lectura.
    Tokens resultantes

    Institución
    cuya
    finalidad
    consiste
    en
    la
    adquisición,


    conservación,
    estudio
    y
    exposición
    de
    libros
    y

    documentos.
    Local
    donde
    se
    tiene
    considerable
    número

    de
    libros
    ordenados
    para
    la
    lectura.
    Conversión de tokens en código hexadecimal

    {Institución}
    49 6E 73 74 69 74 75 63 69 1 6E

    {cuya}
    63 75 79 61

    {finalidad}
    66 69 6E 61 6C 69 64 61 64

    {consiste}
    63 6F 6E 73 69 73 74 65

    {en}
    65 6E

    {la}
    6C 61

    {adquisición,}
    61 64 71 75 69 73 69 63 69 1 6E 2C


    {conservación,}
    63 6F 6E 73 65 72 76 61 63 69 1 6E 2C

    {estudio}
    65 73 74 75 64 69 6F

    {y}
    79

    {exposición}
    65 78 70 6F 73 69 63 69 1 6E

    {de}
    64 65

    {libros}
    6C 69 62 72 6F 73

    {y}
    79


    {documentos.}
    64 6F 63 75 6D 65 6E 74 6F 73 2E

    {Local}
    4C 6F 63 61 6C

    {donde}
    64 6F 6E 64 65

    {se}
    73 65

    {tiene}
    74 69 65 6E 65

    {considerable}
    63 6F 6E 73 69 64 65 72 61 62 6C 65

    {número}
    6E 1 6D 65 72 6F


    {de}
    64 65

    {libros}
    6C 69 62 72 6F 73

    {ordenados}
    6F 72 64 65 6E 61 64 6F 73

    {para}
    70 61 72 61

    {la}
    6C 61

    {lectura.}
    6C 65 63 74 75 72 61 2E
    Tabla4. Proceso de tokenización

    Los "tokens" a su vez pueden ser identificados mediante una codificación ASCII ó en su defecto Hexadecimal, con el objeto de facilitar la identificación uno a uno cada caracter que compone la palabra. De hecho este proceso permite la identificación de cadenas de caracteres de forma unívoca, de cara a posteriores tratamientos de depuración, eliminación de signos de puntuación ó la reducción morfológica. Obsérvese en la tabla anterior, que algunos términos vienen acompañados de signos de puntuación, que no son de utilidad para el proceso de recuperación.

    Conversión a minúsculas, eliminación de signos de puntuación y acentos
    Para permitir un proceso de indexación limpio, previamente es necesario convertir el texto a minúsculas y eliminar todos los signos de puntuación del texto. De hecho este punto de la depuración simplifica a posteriori el reconocimiento y proceso de cruzado de la consulta del usuario, permitiendo que independientemente de que escribiera su consulta correctamente, pueda ser recuperada bajo cualquier circunstancia. De esta forma el sistema de recuperación identifica mediante codificación hexadecimal qué caracteres debe reemplazar, modificar o en su defecto eliminar. Es habitual que tales programas integren la referencia completa de caracteres, denominadas también como "tablas de equivalencias entre caracteres". En la siguiente tabla5 se muestra un sencillo ejemplo del concepto con los caracteres habituales.

    Hex
    Representación

    Hex
    Representación

    Hex
    Representación
    20
    espacio ( )
    40
    @
    60
    `
    21
    !
    41
    A
    61
    a
    22
    "
    42
    B
    62
    b
    23
    #
    43
    C
    63
    c
    24
    $
    44
    D
    64
    d
    25
    %
    45
    E
    65
    e
    26
    &
    46
    F
    66
    f
    27
    '
    47
    G
    67
    g
    28
    (
    48
    H
    68
    h
    29
    )
    49
    I
    69
    i
    2A
    *
    4A
    J
    6A
    j
    2B
    +
    4B
    K
    6B
    k
    2C
    ,
    4C
    L
    6C
    l
    2D
    -
    4D
    M
    6D
    m
    2E
    .
    4E
    N
    6E
    n
    2F
    /
    4F
    O
    6F
    o
    30
    0
    50
    P
    70
    p
    31
    1
    51
    Q
    71
    q
    32
    2
    52
    R
    72
    r
    33
    3
    53
    S
    73
    s
    34
    4
    54
    T
    74
    t
    35
    5
    55
    U
    75
    u
    36
    6
    56
    V
    76
    v
    37
    7
    57
    W
    77
    w
    38
    8
    58
    X
    78
    x
    39
    9
    59
    Y
    79
    y
    3A
    :
    5A
    Z
    7A
    z
    3B
    ;
    5B
    [
    7B
    {
    3C
    5C
    \
    7C
    |
    3D
    =
    5D
    ]
    7D
    }
    3E
    5E
    ^
    7E
    ~
    3F
    ?
    5F
    _


    Tabla5. Tabla de conversión de caracteres básicos

    Si bien todos los caracteres representados en la tabla anterior tienen una codificación sencilla de dupla, en el caso de los caracteres acentuados (siempre que se parta de una códificación utf-8 previa por defecto en la página web) se utilizan 2 duplas para identificar que es un caracter acentuado. Véase la siguiente tabla6.

    Hex
    Representación

    Hex
    Representación

    Hex
    Representación
    C3 A1
    á
    C3 AD
    í
    C3 BA
    ú
    C3 81
    Á
    C3 8D
    Í
    C3 9A
    Ú
    C3 A0
    à
    C3 AC
    ì
    C3 B9
    ù
    C3 80
    À
    C3 8C
    Ì
    C3 99
    Ù
    C3 A2
    â
    C3 AE
    î
    C3 BB
    û
    C3 82
    Â
    C3 8E
    Î
    C3 9B
    Û
    C3 A4
    ä
    C3 AF
    ï
    C3 BC
    ü
    C3 84
    Ä
    C3 8F
    Ï
    C3 9C
    Ü
    C3 A9
    é
    C3 B3
    ó


    C3 89
    É
    C3 93
    Ó


    C3 A8
    è
    C3 B2
    ò


    C3 88
    È
    C3 92
    Ò


    C3 AA
    ê
    C3 B4
    ô


    C3 8A
    Ê
    C3 94
    Ô


    C3 AB
    ë
    C3 B6
    ö


    C3 8B
    Ë
    C3 96
    Ö


    Tabla6. Tabla de conversión de vocales acentuadas

    Transliteración y reemplazo de caracteres especiales
    En muchos casos, la conversión de un texto a minúsculas, la supresión de acentos y signos de puntuación no es suficiente. En muchos casos el idioma en el que está escrito el documento o las particularidades del texto implican el uso de caracteres especiales que requieren transliteración o reemplazo por otro caracter más sencillo y equivalente en el teclado estándar. Estos procesos resultan complejos puesto que en todo momento se debe asegurar la identificación del caracter original. En la tabla7, se pueden observar todos los caracteres sometidos a tal consideración de excepcionalidad.

    Hex
    Representación

    Hex
    Representación

    Hex
    Representación
    C3 80
    À
    C4 86
    Ć
    C5 88
    ň
    C3 81
    Á
    C4 87
    ć
    C5 89
    ʼn
    C3 82
    Â
    C4 88
    Ĉ
    C5 8C
    Ō
    C3 83
    Ã
    C4 89
    ĉ
    C5 8D
    ō
    C3 84
    Ä
    C4 8A
    Ċ
    C5 8E
    Ŏ
    C3 85
    Å
    C4 8B
    ċ
    C5 8F
    ŏ
    C3 86
    Æ
    C4 8C
    Č
    C5 90
    Ő
    C3 87
    Ç
    C4 8D
    č
    C5 91
    ő
    C3 88
    È
    C4 8E
    Ď
    C5 92
    Œ
    C3 89
    É
    C4 8F
    ď
    C5 93
    œ
    C3 8A
    Ê
    C4 90
    Đ
    C5 94
    Ŕ
    C3 8B
    Ë
    C4 91
    đ
    C5 95
    ŕ
    C3 8C
    Ì
    C4 92
    Ē
    C5 96
    Ŗ
    C3 8D
    Í
    C4 93
    ē
    C5 97
    ŗ
    C3 8E
    Î
    C4 94
    Ĕ
    C5 98
    Ř
    C3 8F
    Ï
    C4 95
    ĕ
    C5 99
    ř
    C3 90
    Ð
    C4 96
    Ė
    C5 9A
    Ś
    C3 91
    Ñ
    C4 97
    ė
    C5 9B
    ś
    C3 92
    Ò
    C4 98
    Ę
    C5 9C
    Ŝ
    C3 93
    Ó
    C4 99
    ę
    C5 9D
    ŝ
    C3 94
    Ô
    C4 9A
    Ě
    C5 9E
    Ş
    C3 95
    Õ
    C4 9B
    ě
    C5 9F
    ş
    C3 96
    Ö
    C4 9C
    Ĝ
    C5 A0
    Š
    C3 98
    Ø
    C4 9D
    ĝ
    C5 A1
    š
    C3 99
    Ù
    C4 9E
    Ğ
    C5 A2
    Ţ
    C3 9A
    Ú
    C4 9F
    ğ
    C5 A3
    ţ
    C3 9B
    Û
    C4 A0
    Ġ
    C5 A4
    Ť
    C3 9C
    Ü
    C4 A1
    ġ
    C5 A5
    ť
    C3 9D
    Ý
    C4 A2
    Ģ
    C5 A6
    Ŧ
    C3 9F
    ß
    C4 A3
    ģ
    C5 A7
    ŧ
    C3 A0
    à
    C4 A4
    Ĥ
    C5 A8
    Ũ
    C3 A1
    á
    C4 A5
    ĥ
    C5 A9
    ũ
    C3 A2
    â
    C4 A6
    Ħ
    C5 AA
    Ū
    C3 A3
    ã
    C4 A7
    ħ
    C5 AB
    ū
    C3 A4
    ä
    C4 A8
    Ĩ
    C5 AC
    Ŭ
    C3 A5
    å
    C4 A9
    ĩ
    C5 AD
    ŭ
    C3 A6
    æ
    C4 AA
    Ī
    C5 AE
    Ů
    C3 A7
    ç
    C4 AB
    ī
    C5 AF
    ů
    C3 A8
    è
    C4 AC
    Ĭ
    C5 B0
    Ű
    C3 A9
    é
    C4 AD
    ĭ
    C5 B1
    ű
    C3 AA
    ê
    C4 AE
    Į
    C5 B2
    Ų
    C3 AB
    ë
    C4 AF
    į
    C5 B3
    ų
    C3 AC
    ì
    C4 B0
    İ
    C5 B4
    Ŵ
    C3 AD
    í
    C4 B1
    ı
    C5 B5
    ŵ
    C3 AE
    î
    C4 B2
    IJ
    C5 B6
    Ŷ
    C3 AF
    ï
    C4 B3
    ij
    C5 B7
    ŷ
    C3 B1
    ñ
    C4 B4
    Ĵ
    C5 B8
    Ÿ
    C3 B2
    ò
    C4 B5
    ĵ
    C5 B9
    Ź
    C3 B3
    ó
    C4 B6
    Ķ
    C5 BA
    ź
    C3 B4
    ô
    C4 B7
    ķ
    C5 BC
    ż
    C3 B5
    õ
    C4 B9
    Ĺ
    C5 BD
    Ž
    C3 B6
    ö
    C4 BA
    ĺ
    C5 BE
    ž
    C3 B8
    ø
    C4 BC
    ļ
    C5 BF
    ſ
    C3 B9
    ù
    C4 BD
    Ľ
    C6 92
    ƒ
    C3 BA
    ú
    C4 BE
    ľ
    C6 A0
    Ơ
    C3 BC
    ü
    C4 BF
    Ŀ
    C6 A1
    ơ
    C3 BD
    ý
    C5 80
    ŀ
    C6 AF
    Ư
    C3 BF
    ÿ
    C5 81
    Ł
    C6 B0
    ư
    C4 80
    Ā
    C5 82
    ł
    C7 BA
    Ǻ
    C4 81
    ā
    C5 83
    Ń
    C7 BC
    Ǽ
    C4 82
    Ă
    C5 84
    ń
    C7 BD
    ǽ
    C4 83
    ă
    C5 85
    Ņ
    C7 BE
    Ǿ
    C4 84
    Ą
    C5 86
    ņ
    C7 BF
    ǿ
    C4 85
    ą
    C5 87
    Ň


    Tabla7. Tabla de caracteres especiales (En muchos casos se requiere de transliteración)

    Eliminación de palabras vacías
    Las palabras vacías, irrelevantes o "stop words" son aquellas que por si solas carecen de significación y que por su altísima frecuencia de aparición en los textos, generan un ruido innecesario para la recuperación de información. La eliminación de estos términos (preposiciones, artículos determinados, artículos indeterminados, pronombres, conjunciones, contracciones y ciertos verbos y adverbios) mejora la afinación en los modelos de recuperación. Los estudios correspondientes a este fenómeno fueron iniciados por Hans Peter Luhn en 1958 con su investigación sobre el índice KWIC, una técnica de indexación que organizaba las palabras según su consideración como claves para la recuperación o no de la información, teniendo en cuenta el contexto del documento. Este proceso derivó en la acuñación del término "palabra vacía" para referirse a aquellas con un bajo poder discriminatorio y representativo del contenido del documento. Los análisis estadísticos efectuados por Luhn, demostraron que la indexación era un proceso más rápido, cuando se prescinde de tales términos y favoreciendo la economía de espacio requerido para el almacenamiento de la información. También se demostró, que entre un 30 y un 50% de las palabras de un texto corresponden a tal categoría. De hecho y pese a ser práctica habitual (RIJSBERGEN, C.J. 1979), hasta nuestros días, se siguen utilizando listas de palabras vacías para la depuración de los textos. No obstante, la técnica de eliminación de palabras vacías, se viene suavizando, debido a la introducción de técnicas de PNL (Procesamiento del Lenguaje Natural) que tienen en cuenta la significación de tales palabras cuando están acompañadas de sustantivos, en casos en los que no pueden ser separadas ó eliminadas por conformar una denominación propia, así como por pérdidas en la significación semántica de un sintagma, frase ó palabra, véase la tabla8.

    Palabras vacías, claves
    Frase
    Palabras vacías
    Descripción del caso
    Those were the days
    those, were, the
    La frase corresponde al título de una canción de Boris Fomin
    Es así o de esta otra manera
    es, así, o, de, esta, otra
    Título de un artículo sobre estilo gramatical
    De aquí a la eternidad
    de, aquí, a, la
    Película de 1953 del director Fred Zinnemann
    Cómo ha de ser el privado
    cómo, ha, de, ser, el
    Comedia teatral de Francisco de Quevedo
    El otro
    el, otro
    Obra de teatro de Miguel de Unamuno
     Tabla8. Ejemplo del uso de palabras vacías cuya función identificadora es clave

    A continuación se muestran listados reales de palabras vacías utilizados para la depuración de textos en Alemán, Español, Francés, Inglés, Italiano y Portugués.


    Palabras vacías del Alemán. Download German stop words
    ab, bei, da, deshalb, ein, für, haben, hier, ich, ja, kann, machen, muesste, nach, oder, seid, sonst, und, vom, wann, wenn, wie, zu, bin, eines, hat, manche, solches, an, anderm, bis, das, deinem, demselben, dir, doch, einig, er, eurer, hatte, ihnen, ihre, ins, jenen, keinen, manchem, meinen, nichts, seine, soll, unserm, welche, werden, wollte, während, alle, allem, allen, aller, alles, als, also, am, ander, andere, anderem, anderen, anderer, anderes, andern, anders, auch, auf, aus, bist, bsp., daher, damit, dann, dasselbe, dazu, daß, dein, deine, deinen, deiner, deines, dem, den, denn, denselben, der, derer, derselbe, derselben, des, desselben, dessen, dich, die, dies, diese, dieselbe, dieselben, diesem, diesen, dieser, dieses, dort, du, durch, eine, einem, einen, einer, einige, einigem, einigen, einiger, einiges, einmal, es, etwas, euch, euer, eure, eurem, euren, eures, ganz, ganze, ganzen, ganzer, ganzes, gegen, gemacht, gesagt, gesehen, gewesen, gewollt, hab, habe, hatten, hin, hinter, ihm, ihn, ihr, ihrem, ihren, ihrer, ihres, im, in...

    Palabras vacías del Español. Download Spanish stop words
    el, la, los, les, las, de, del, a, ante, con, en, para, por, y, o, u, tu, te, ti, le, que, al, ha, un, han, lo, su, una, estas, esto, este, es, tras, suya, a, acá, ahí, ajena, ajenas, ajeno, ajenos, al, algo, algún, alguna, algunas, alguno, algunos, allá, alli, allí, ambos, ampleamos, ante, antes, aquel, aquella, aquellas, aquello, aquellos, aqui, aquí, arriba, asi, atras, aun, aunque, bajo, bastante, bien, cabe, cada, casi, cierta, ciertas, cierto, ciertos, como, cómo, con, conmigo, conseguimos, conseguir, consigo, consigue, consiguen, consigues, contigo, contra, cual, cuales, cualquier, cualquiera, cualquieras, cuancuán, cuando, cuanta, cuánta, cuantas, cuántas, cuanto, cuánto, cuantos, cuántos, de, dejar, del, demás, demas, demasiada, demasiadas, demasiado, demasiados, dentro, desde, donde, dos, el, él, ella, ellas, , ello, ellos, empleais, emplean, emplear, empleas, empleo, en, encima, entonces, entre, era, eramos...

    Palabras vacías del Francés. Download French stop words
    a, adieu, afin, ah, ai, aie, aient, aies, aille, ainsi, ait, all, alla, allais, allait, allant, alle, aller, allerent, allez, allons, alors, apres, aprčs, as, assez, au, au dela, au delŕ, au dessous, au dessus, aucun, aucune, aucunes, aucuns, aupres, auprčs, auquel, aura, aurai, aurais, aurez, auront, aussi, aussitôt, autant, autour, autre, autres, autrui, aux, auxquelles, auxquels, av, avaient, avais, avait, aval, avant, avec, avez, avoir, avons, ayant, ayez, ayons, bah, bas, beaucoup, bien, bonté, bout, but, c, cest a dire, cest ŕ dire, ca, car, ce, ceci, cela, celle, celle ci, celle la, celle lŕ, celles, celles ci, celles la, celles lŕ, celui, celui ci, celui la, celui lŕ, cependant, ces, cet, cette, ceux, ceux ci, ceux la, ceux lŕ, chacun, chacune, chaque, chez, chut, ci, circa, combien, comme, comment, commme, compte, contre, crac, crainte, côtč, d, d, dans, de, deca, dedans, dehors, dela, delŕ, depuis, des, desquelles, desquels, dessous, dessus, devant, deçŕ, dire, divers, diverses, donc, dont, du, duquel, durant, dčs...

    Palabras vacías del Inglés. Download English stop words
    a, about, above, above, across, after, afterwards, again, against, all, almost, alone, along, already, also, although, always, am, among, amongst, amoungst, amount, an, and, another, any, anyhow, anyone, anything, anyway, anywhere, are, around, as, at, back, be, became, because, become, becomes, becoming, been, before, beforehand, behind, being, below, beside, besides, between, beyond, bill, both, bottom, but, by, call, can, cannot, cant, co, con, could, couldnt, cry, de, describe, detail, do, done, down, due, during, each, eg, eight, either, eleven, else, elsewhere, empty, enough, etc, even, ever, every, everyone, everything, everywhere, except, few, fifteen, fify, fill, find, fire, first, five, for, former, formerly, forty, found, four, from, front, full, further, get, give, go, had, has, hasnt, have, he, hence, her, here, hereafter, hereby, herein, hereupon, hers, herself, him, himself, his, how, however, hundred, ie, if...

    Palabras vacías del Italiano. Download Italian stop words
    ad, al, allo, ai, agli, all, agl, alla, alle, con, col, coi, da, dal, dallo, dai, dagli, dall, dagl, dalla, dalle, di, del, dello, dei, degli, dell, degl, della, delle, in, nel, nello, nei, negli, nell, negl, nella, nelle, su, sul, sullo, sui, sugli, sull, sugl, sulla, sulle, per, tra, contro, io, tu, lui, lei, noi, voi, loro, mio, mia, miei, mie, tuo, tua, tuoi, tue, suo, sua, suoi, sue, nostro, nostra, nostri, nostre, vostro, vostra, vostri, vostre, mi, ti, ci, vi, lo, la, li, le, gli, ne, il, un, uno, una, ma, ed, se, perché, anche, come, dov, dove, che, chi, cui, non, più, quale, quanto, quanti, quanta, quante, quello, quelli, quella, quelle, questo, questi, questa, queste, si, tutto, tutti, a, c, e, i, l, o, ho, hai, ha, abbiamo, avete, hanno, abbia, abbiate, abbiano, avrò, avrai, avrà, avremo, avrete, avranno, avrei, avresti, avrebbe, avremmo, avreste, avrebbero, avevo, avevi, aveva, avevamo, avevate, avevano, ebbi, avesti, ebbe, avemmo, aveste, ebbero, avessi, avesse, avessimo, avessero, avendo, avuto, avuta...

    Palabras vacías del Portugués. Download Portuguese stop words
    de, a, o, que, e, do, da, em, um, para, é, com, não, uma, os, no, se, na, por, mais, as, dos, como, mas, foi, ao, ele, das, tem, à, seu, sua, ou, ser, quando, muito, há, nos, já, está, eu, também, só, pelo, pela, até, isso, ela, entre, era, depois, sem, mesmo, aos, ter, seus, quem, nas, me, esse, eles, estão, você, tinha, foram, essa, num, nem, suas, meu, às, minha, têm, numa, pelos, elas, havia, seja, qual, será, nós, tenho, lhe, deles, essas, esses, pelas, este , fosse, dele, tu, te, vocês, vos, lhes, meus, minhas, teu, tua, teus, tuas, nosso, nossa, nossos, nossas, dela, delas, esta, estes, estas, aquele, aquela, aqueles, aquelas, isto, aquilo, estou, está, estamos, estão, estive, esteve, estivemos, estiveram, estava, estávamos, estavam, estivera, estivéramos, esteja, estejamos, estejam, estivesse, estivéssemos, estivessem, estiver, estivermos, estiverem, hei, há, havemos, hão, houve, houvemos, houveram, houvera, houvéramos, haja, hajamos, hajam, houvesse, houvéssemos, houvessem, houver, houvermos, houverem, houverei...


    Bibliografía

    ADAM, G.; BOURAS, C.; POULOPOULOS, V. 2009. CUTER: an Efficient Useful Text Extraction Mechanism. Disponible en: http://ru6.cti.gr/ru6/publications/3267PID838806.pdf

    BERRY, M.W.; BROWNE, M. 2005. Understanding search engines: mathematical modeling and text retrieval: Document file preparation. pp. 11-27. Disponible en: http://www.bookf.net/p/7539-understanding-search-engines

    LÓPEZ, D. 2011. Information extraction in the WWW: technology and tools for problem solving = Extracción de información en la web, tecnología y herramientas para resolver la problemática. En: SISOB Observatorium for Science in Society based in Social Models. Disponible en: http://sisobproject.wordpress.com/2011/11/18/information-extraction-in-the-www-technology-and-tools-for-problem-solving-extraccion-de-informacion-en-la-web-tecnologia-y-herramientas-para-resolver-la-problematica/

    LUHN, H.P. 1960. Keyword-in-context index for technical literature. American Documentation, 11(4). pp. 288–295

    MOONEY, R.J.; NAHM, U.Y. 2005. Text Mining with Information Extraction. En: Multilingualism and Electronic Language Management: Proceedings of the 4th International MIDP Colloquium. pp. 141-160. Disponible en: http://www.cs.utexas.edu/~ml/papers/discotex-melm-03.pdf

    PASTERNACK, J.; ROTH, D. 2009. Extracting Article Text from the Web with Maximum Subsequence Segmentation. En: WWW 2009 MADRID!, Track: XML and Web Data. Disponible en: http://www2009.eprints.org/98/1/p971.pdf

    POPESCU, A.M. 2007. Information Extraction from Unstructured Web Text. Disponible en: http://turing.cs.washington.edu/papers/popescu.pdf

    RIJSBERGEN, C.J. 1979. Information Retrieval. Disponible en: http://www.dcs.gla.ac.uk/Keith/Preface.html

    SHARP, M. 2001. Text Mining. En: Seminar in Information Studies, Prof. Tefko Saracevic. Disponible en: http://comminfo.rutgers.edu/~msharp/text_mining.htm

    SHI, S.; XING, F.; ZHU, M. [et.al.] 2009. Anchor Text Extraction for Academic Search. En: Proceedings of the 2009 Workshop on Text Citation Analysis for Scholarly Digital Libraries, ACL-IJCNLP 2009, pages 10-18. Disponible en: http://dl.acm.org/citation.cfm?doid=1699750.1699753

    WENINGER, T.; HSU, W.H. 2010. Text Extraction from the Web via Text-to-Tag Ratio. Disponible en: http://www.cs.illinois.edu/homes/weninge1/pubs/WH_TIR08.pdf

    Software

    CUNNINGHAM, H.; BONTCHEVA, K.; TABLAN, V. [et.al.] 2012. Gate: General Architecture for text engineering. Disponible en: http://gate.ac.uk/

    GANJISAFFAR. Y. 2012. Crawler4j. Disponible en: http://code.google.com/p/crawler4j/

    NIKIC, V. 2010. Web Harvest. Disponible en: http://web-harvest.sourceforge.net/

    OSWALD, D. 2006. HTML Parser. Disponible en: http://htmlparser.sourceforge.net/

    YANG, E.Z. 2012. HTML Purifier. Disponible en: http://htmlpurifier.org/

    DROST. I.; INGERSOLL, G.; MARGULIES, B. [et.al.] 2010. Apache OpenNLP. Disponible en: http://incubator.apache.org/opennlp/