Stop Words: palabras que no dicen mucho

Cuando hablé sobre TF-IDF, mencioné que el proceso había que repetirse para cada palabra en cada documento, pero obviamente esto no es cierto. En muchos idiomas (porque no puedo asegurar que en todos) existen palabras que son muy comunes, que pueden aparecen en casi cualquier lugar y, por tanto, que no reflejan o contienen información para poder separar un documento de entre un conjunto. A esas palabras se les llama stop words (palabras vacías), y, para poder representar de forma matemática un documento de forma más exacta, hay que filtrarlas.

¿Qué palabras son stop words?

  • Preposiciones
  • Conjunciones y disyunciones
  • Verbos copulativos
  • Palabras que, estadísticamente, son muy comunes.

Si no pasamos el documento por la coladera de stop words, al momento de realizar una búsqueda esas palabras van a crear “ruido”. Se trata de identificar vocablos que sean incomunes, que nos puedan decir más sobre el documento (en qué se enfoca, en que se diferencia de los otros); si dejamos palabras como “de”, “y”, “es”, “que”, podemos casi afirmar que aparecerán en cada documento, haciendo más difícil encontrar la información que se requiere.

¿Dónde consigo una lista de stop words en español?

Una rápida búsqueda en Google revela algunos sitios que ofrecen sus listas. Generalmente funcionan, pero siempre es bueno darles una revisada, y sobre todo, afinar la lista de acuerdo a los documentos que vayamos a analizar. Lo anterior aplica cuando vamos a realizar una búsqueda en un conjunto  determinado (o una búsqueda vertical en la red), ya que, por ejemplo, puede ser que la palabra “xyz” sea muy recurrente en ellos y sea necesario filtrarla.

Aquí dejo un par de ligas. Para encontrar más, ya saben dónde 😀

http://snowball.tartarus.org/algorithms/spanish/stop.txt

http://www.elwebmaster.com/referencia/stopwords-en-espanol

5 Replies to “Stop Words: palabras que no dicen mucho”

  1. Muy interesante tu post, agradezco la explicación tan precisa que haces del significado de las palabras stopwords y sobre todo como interactuan en el texto y sobre todo en los buscadores, he visto en algunos plugins de seo que tienen esta parte pero siempre las palabras en ingles, gracias por las ligas que dejas con las palabras en español.

  2. Sin embargo estas palabras que llaman “vacías” en realidad pueden variar mucho el significado, y por lo tanto son necesarias. Por ejemplo no es lo mismo buscar “libros de Borges” que solicitar “libros sobre Borges”. De la misma manera, si tengo un sistema de traducción, quisiera que ese sistema “entendiera” la diferencia entre la lámpara de mesa y la lámpara sobre la mesa… y así… en realidad las stopwords son un tema bastante interesante

    1. Un placer poder conversar con alguien respecto a esta área 🙂

      Así es. Como usted sabe, esto es nada más la técnica “bag of words”, en donde palabras como preposiciones se omiten en favor de sustativos o verbos.
      Sin embargo, yo también soy de la idea de que las “stopwords” contienen mucha información para diferenciar lo que el usuario realmente busca. De ahí que los sistemas de búsqueda no sólo implementen tradicional bag of words usando diferencia de cosenos, LSI o similares, sino también otras técnicas que tomen en cuenta lo que está alrededor de los sustantivos y verbos.

      Es un tema fascinante.

  3. Lo malo de eso de las stopwords es que como es un concepto que surge del idioma el inglés dudo que sea igual de útil y aplicable en español por sus formatos gramaticales. Simplemente el idioma español es mucho más complejo y preciso al describir y explicar las cosas (aunque mucha gente en internet no sepa mucho usar y aprovechar el lenguaje) por lo que ciertamente se perderían algunas cosas importantes al usar el criterio de las stop words.

    1. Filtrar stopwords depende totalmente de la finalidad del análisis que estés realizando. Si es para un motor de búsqueda estándar, tiene mucho sentido quitar palabras que no continen significado útil para los resultados, como artículos o preposiciones, ya estos son tan comunes que no aportan nada a la diferenciación de documentos, y eso incluye español también.

      Si estás construyendo por ejemplo un diccionario donde quieres incluir en la búsqueda las preposiciones porque vas a analizar y mostrar en los resultados aglo referente a ellas, entonces conviene no agregarlas como stopwords. Herramientas como Lucene te dan la opción de especificar tu propia colección de stopwords al momento de crear un analizador de texto para crear documentos que se pueden buscar, pero como default casi todos los analizadores que se incluyen por default tienen una lista de stopwords que ignoran al momento de tokenizar y hacer cálculos.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.