Modelo de bolsa de palabras

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
El modelo de bolsa de palabras (BoW) es un modelo de texto que utiliza una colección desordenada (una "bolsa") de palabras. Se utiliza en el procesamiento del lenguaje natural y la recuperación de información (RI). Ignora el orden de las palabras (y, por lo tanto, la mayor parte de la sintaxis o la gramática), pero captura la multiplicidad.El modelo de bolsa de palabras se utiliza comúnmente en métodos de clasificación de documentos donde, por ejemplo, la frecuencia de aparición de cada palabra se utiliza como característica para entrenar un clasificador. También se ha utilizado en visión artificial.Una referencia temprana a la expresión "bolsa de palabras" en un contexto lingüístico se puede encontrar en el artículo de Zellig Harris de 1954 sobre la Estructura distributiva.

Definición

A continuación, se modela un documento de texto mediante el método Bag of Words. Aquí se muestran dos documentos de texto simples:
(1) A John le gusta ver películas. A Mary también le gustan las películas.
(2) Mary también le gusta ver los juegos de fútbol.
A partir de estos dos documentos de texto, se elabora la siguiente lista para cada documento:
"John", "me gusta", "ver", "movimientos", "Mary", "me gusta", "movimientos", "too"

"Mary", "también", "me gusta", "mira", "football", "games"
Representar cada conjunto de palabras como un objeto JSON y atribuirlo a la variable JavaScript correspondiente:
BoW1 = {}"John":1,"Me gusta":2,"a":1,"ver":1,"movimientos":2,"Mary":1,"too":1};BoW2 = {}"Mary":1,"también":1,"Me gusta":1,"a":1,"ver":1,"Stopball":1,"juegos":1};
Cada clave es la palabra y cada valor es el número de ocurrencias de esa palabra en el documento de texto dado.El orden de los elementos es libre; por ejemplo, {"too":1,"Mary":1,"movies":2,"John":1,"watch":1,"likes":2,"to":1} también es equivalente a BoW1. Esto también es lo que esperamos de una representación estricta de un objeto JSON.

Nota: Si otro documento es una combinación de estos dos,

(3) A John le gusta ver películas. A Mary también le gustan las películas. A Mary también le gusta ver juegos de fútbol.
Su representación en JavaScript será:

BoW3 = {}"John":1,"Me gusta":3,"a":2,"ver":2,"movimientos":2,"Mary":2,"too":1,"también":1,"Stopball":1,"juegos":1};

Así pues, como vemos en el álgebra de bolsas, la «unión» de dos documentos en la representación de bolsas de palabras es, formalmente, la unión disjunta, que suma las multiplicidades de cada elemento.

Orden de Word

La representación BoW de un texto elimina el orden de las palabras. Por ejemplo, la representación BoW de "hombre muerde a perro" y "perro muerde a hombre" son iguales, por lo que cualquier algoritmo que opere con una representación BoW de texto debe tratarlas de la misma manera. A pesar de esta falta de sintaxis o gramática, la representación BoW es rápida y puede ser suficiente para tareas sencillas que no requieren orden de palabras. Por ejemplo, para la clasificación de documentos, si las palabras "acciones", "comercio" e "inversores" aparecen varias veces, es probable que el texto sea un informe financiero, aunque sería insuficiente para distinguirlos.

Ayer los inversores se estaban reuniendo, pero hoy se están retirando.

y

Ayer, los inversores se retiraron, pero hoy se están reuniendo.

y, por lo tanto, la representación de BoW sería insuficiente para determinar el significado detallado del documento.

Aplicación

Las implementaciones del modelo de bolsa de palabras pueden implicar el uso de frecuencias de palabras en un documento para representar su contenido. Las frecuencias pueden normalizarse mediante la inversa de la frecuencia del documento, o tf-idf. Además, para fines específicos de clasificación, se han desarrollado alternativas supervisadas que consideran la etiqueta de clase de un documento. Finalmente, en algunos problemas se utiliza la ponderación binaria (presencia/ausencia o 1/0) en lugar de frecuencias (por ejemplo, esta opción se implementa en el sistema de aprendizaje automático WEKA).

Ejecución de pitones

# Asegúrese de instalar los paquetes necesarios primero# pip install --upgrade pip# pip install tensorflowdesde Tensorflow importación kerasdesde mecanografía importación Listadesde keras.preprocessing.text importación Tokenizersentencia = ["A John le gusta ver películas. A Mary también le gustan las películas".]def print_bow()sentencia: Lista[str]) - No. Ninguno: tokenizer = Tokenizer() tokenizer.fit_on_texts()sentencia) secuencias = tokenizer.textos_to_sequences()sentencia) word_index = tokenizer.word_index lazo = {} para clave dentro word_index: lazo[clave] = secuencias[0].Cuenta()word_index[clave]) impresión()f"Bag of word sentence 1:\n{}lazo}") impresión()f"Encontramos {}Len()word_index)} fichas únicas.")print_bow()sentencia)

Es un truco.

Una alternativa común al uso de diccionarios es el algoritmo hash, donde las palabras se asignan directamente a índices mediante una función hash. Por lo tanto, no se requiere memoria para almacenar un diccionario. Las colisiones de hash generalmente se gestionan mediante la memoria liberada para aumentar el número de contenedores de hash. En la práctica, el algoritmo hash simplifica la implementación de modelos de bolsa de palabras y mejora la escalabilidad.

Véase también

  • Suavidad aditiva
  • Extracción de objetos
  • Aprendizaje a máquina
  • MinHash
  • Modelo espacial vectorial
  • w-shingling

Notas

  1. ^ McTear et al 2016, pág. 167.
  2. ^ Sivic, Josef (abril de 2009). "Eficiente búsqueda visual de videos lanzados como recuperación de texto" (PDF). TRANSACCIONES IEEE SOBRE ANALISIS DEL PATERN Y INTELLIGENCIA MACHINA, VOL. 31, NO. 4oposición. pp. 591 –605.
  3. ^ Harris, Zellig (1954). "Estructura distribucional". Palabra. 10 (2/3): 146 –62. doi:10.1080/00437956.1954.11659520. Y este stock de combinaciones de elementos se convierte en un factor en la forma en que se toman decisiones posteriores... porque el lenguaje no es simplemente una bolsa de palabras sino una herramienta con propiedades particulares que se han diseñado en el curso de su uso
  4. ^ Youngjoong Ko (2012). "Un estudio de esquemas de ponderación de término utilizando información de clase para clasificación de texto". SIGIR'12. ACM.
  5. ^ Weinberger, K. Q.; Dasgupta A.; Langford J.; Smola A.; Attenberg, J. (2009). "Feature hashing for large scale multitask learning". Proceedings of the 26th Annual International Conference on Machine Learning. pp. 1113 –1120. arXiv:0902.2206. Bibcode:2009arXiv0902.2206W. doi:10.1145/1553374.1553516. ISBN 9781605585161. S2CID 291713.

Referencias

  • McTear, Michael (et al) (2016). La interfaz conversacional. Springer International Publishing.
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save