Texto representado como una colección sin orden de palabras
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
- ^ McTear et al 2016, pág. 167.
- ^ 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.
- ^ 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
- ^ 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.
- ^ 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.
Procesamiento del lenguaje natural |
---|
Condiciones generales | - AI-complete
- Bolsa de palabras
- n-gram
- Lingüística computacional
- Comprensión del idioma natural
- Para palabras
- Procesamiento de texto
|
---|
Análisis de textos | - Argument mining
- Extracción de la localización
- Minería de conceptos
- Resolución básica
- Procesamiento lingüístico profundo
- Lectura distante
- Extracción de información
- Reconocimiento de la entidad
- Aprendizaje de ontología
- Parsing
- Paring semántico
- Paráctica sintáctica
- Parte del discurso
- Análisis semántico
- Etiquetas del papel semántico
- Decomposición semántica
- Semántica semejanza
- Análisis de la sensibilidad
- Extracción de terminología
- Minería de textos
- Consecuencia textual
- Truecasing
- Desambiguación de sentido de Word
- Inducción de sentido de Word
Serie de sesiones de texto | - Procesamiento a plazo determinado
- Lemmatisation
- Análisis Lexical
- Texto retorcido
- Stemming
- Segmento de las penas
- Segmentación de palabras
|
---|
|
---|
Resumiendo automático | - Resumen de documentos múltiples
- Extracción de la condena
- simplificación del texto
|
---|
Traducción automática | - Asistencia informática
- Base de ejemplos
- Basado en normas
- Estadística
- Bases de transferencia
- Neural
|
---|
Modelos de semántica de distribución | - BERT
- Matriz a plazo de documento
- Explicit semantic analysis
- FastText
- Glove
- Modelo de idioma (grande)
- Análisis semántico latente
- Seq2seq
- Incrustación de palabras
- Word2vec
|
---|
Recursos de idiomas, datasets and corpora | Tipos y Normas | - Corpus linguistics
- Recursos Lexicales
- Linguistic Linked Open Data
- Diccionario legible por máquina
- Texto paralelo
- PropBank
- Red semántica
- Simple Knowledge Organization System
- Speech corpus
- Texto corpus
- Thesaurus (información recuperación)
- Treebank
- Dependencias universales
|
---|
Datos | - BabelNet
- Bank of English
- DBpedia
- FrameNet
- Google Ngram Viewer
- UBY
- WordNet
- Wikidata
|
---|
|
---|
Identificación automática y captura de datos | - Reconocimiento del discurso
- Secundación de discursos
- Síntesis de discurso
- Generación de lenguaje natural
- Reconocimiento de caracteres ópticos
|
---|
Modelo temático | - Clasificación de documentos
- Latent Dirichlet allocation
- Pachinko allocation
|
---|
Revisor asistido por computadora | - Ensayo automatizado
- Concordador
- Comprobador de gramática
- Texto predictivo
- Evaluación de la denuncia
- Chequeador de carga
|
---|
Interfaz de lenguaje natural | - Chatbot
- Ficción interactiva (c.f. Sintaxis)
- Respuesta a la pregunta
- Asistente virtual
- Interfaz de usuario
|
---|
Relacionados | - Semántica formal
- Alucinación
- Herramienta de lenguaje natural
- spa Cy
|
---|
Más resultados...