TextAugment es una biblioteca de Python 3 para aumentar el texto para aplicaciones de procesamiento del lenguaje natural. TextAugment se encuentra en los hombros gigantes de NLTK, Gensim v3.x y Textblob y juega muy bien con ellos.
Cite este documento cuando use esta biblioteca. Versión arxiv
@inproceedings{marivate2020improving,
title={Improving short text classification through global augmentation methods},
author={Marivate, Vukosi and Sefara, Tshephisho},
booktitle={International Cross-Domain Conference for Machine Learning and Knowledge Extraction},
pages={385--399},
year={2020},
organization={Springer}
}
Mejora de la clasificación de texto corto a través de métodos de aumento global .
Los siguientes paquetes de software son dependencias y se instalarán automáticamente.
$ pip install numpy nltk gensim==3.8.3 textblob googletrans
El siguiente código descarga NLTK Corpus para WordNet.
nltk . download ( 'wordnet' )El siguiente código descarga NLTK Tokenizer. Este tokenizador divide un texto en una lista de oraciones mediante el uso de un algoritmo no supervisado para construir un modelo para palabras de abreviatura, colocaciones y palabras que inician oraciones.
nltk . download ( 'punkt' )El siguiente código descarga el modelo de etiqueta de parte de voz predeterminado NLTK. Un etiquetador de parte de voz procesa una secuencia de palabras y adjunta una parte de la etiqueta del habla a cada palabra.
nltk . download ( 'averaged_perceptron_tagger' )Use Gensim para cargar un modelo Word2VEC previamente capacitado. Como Google News de Google Drive.
import gensim
model = gensim . models . KeyedVectors . load_word2vec_format ( './GoogleNews-vectors-negative300.bin' , binary = True )También puede usar Gensim para cargar los modelos de inglés y multilingües de Facebook FastText
import gensim
model = gensim.models.fasttext.load_facebook_model('./cc.en.300.bin.gz')
O capacitar uno desde cero utilizando sus datos o el siguiente conjunto de datos públicos:
Text8 wiki
Conjunto de datos de "Billón de referencia de modelado de lenguaje de palabras"
Instalar desde PIP [recomendado]
$ pip install textaugment
or install latest release
$ pip install [email protected]:dsfsi/textaugment.gitInstalar desde la fuente
$ git clone [email protected]:dsfsi/textaugment.git
$ cd textaugment
$ python setup.py installHay tres tipos de aumentos que se pueden usar:
from textaugment import Word2vec from textaugment import Fasttext from textaugment import Wordnet from textaugment import Translate Vea este cuaderno para ver un ejemplo
Ejemplo básico
> >> from textaugment import Word2vec , Fasttext
> >> t = Word2vec ( model = 'path/to/gensim/model' or 'gensim model itself' )
> >> t . augment ( 'The stories are good' )
The films are good
> >> t = Fasttext ( model = 'path/to/gensim/model' or 'gensim model itself' )
> >> t . augment ( 'The stories are good' )
The films are goodEjemplo avanzado
> >> runs = 1 # By default.
> >> v = False # verbose mode to replace all the words. If enabled runs is not effective. Used in this paper (https://www.cs.cmu.edu/~diyiy/docs/emnlp_wang_2015.pdf)
> >> p = 0.5 # The probability of success of an individual trial. (0.1<p<1.0), default is 0.5. Used by Geometric distribution to selects words from a sentence.
> >> word = Word2vec ( model = 'path/to/gensim/model' or 'gensim model itself' , runs = 5 , v = False , p = 0.5 )
> >> word . augment ( 'The stories are good' , top_n = 10 )
The movies are excellent
> >> fast = Fasttext ( model = 'path/to/gensim/model' or 'gensim model itself' , runs = 5 , v = False , p = 0.5 )
> >> fast . augment ( 'The stories are good' , top_n = 10 )
The movies are excellent Ejemplo básico
> >> import nltk
> >> nltk . download ( 'punkt' )
> >> nltk . download ( 'wordnet' )
> >> from textaugment import Wordnet
> >> t = Wordnet ()
> >> t . augment ( 'In the afternoon, John is going to town' )
In the afternoon , John is walking to townEjemplo avanzado
> >> v = True # enable verbs augmentation. By default is True.
> >> n = False # enable nouns augmentation. By default is False.
> >> runs = 1 # number of times to augment a sentence. By default is 1.
> >> p = 0.5 # The probability of success of an individual trial. (0.1<p<1.0), default is 0.5. Used by Geometric distribution to selects words from a sentence.
> >> t = Wordnet ( v = False , n = True , p = 0.5 )
> >> t . augment ( 'In the afternoon, John is going to town' , top_n = 10 )
In the afternoon , Joseph is going to town .Ejemplo
> >> src = "en" # source language of the sentence
> >> to = "fr" # target language
> >> from textaugment import Translate
> >> t = Translate ( src = "en" , to = "fr" )
> >> t . augment ( 'In the afternoon, John is going to town' )
In the afternoon John goes to townhttps://www.aclweb.org/anthology/d19-1670.pdf
Vea este cuaderno para ver un ejemplo
Elija aleatoriamente n palabras de la oración que no son palabras de detención. Reemplace cada una de estas palabras con uno de sus sinónimos elegidos al azar.
Ejemplo básico
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . synonym_replacement ( "John is going to town" , top_n = 10 )
John is give out to town Elimine aleatoriamente cada palabra en la oración con probabilidad p .
Ejemplo básico
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_deletion ( "John is going to town" , p = 0.2 )
is going to town Elija al azar dos palabras en la oración e intercambie sus posiciones. Haz esto n veces.
Ejemplo básico
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_swap ( "John is going to town" )
John town going to is Encuentre un sinónimo aleatorio de una palabra aleatoria en la oración que no sea una palabra de parada. Inserte ese sinónimo en una posición aleatoria en la oración. Haz esto n veces
Ejemplo básico
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_insertion ( "John is going to town" )
John is going to make up townEsta es la implementación de AEDA por Karimi et al, una variante de EDA. Se basa en la inserción aleatoria de los signos de puntuación.
https://aclanthology.org/2021.findings-emnlp.234.pdf
Vea este cuaderno para ver un ejemplo
Ejemplo básico
> >> from textaugment import AEDA
> >> t = AEDA ()
> >> t . punct_insertion ( "John is going to town" )
! John is going to townEsta es la implementación del aumento de la mezcla de Hongyi Zhang, Moustapha Cisse, Yann Dauphin, David Lopez-Paz adaptado a PNL.
Utilizado para aumentar los datos con la mezcla para la clasificación de oraciones: un estudio empírico.
La mezcla es un principio de aumento de datos genérico y directo. En esencia, la mezcla entrena una red neuronal en combinaciones convexas de pares de ejemplos y sus etiquetas. Al hacerlo, la confusión regulariza la red neuronal para favorecer el comportamiento lineal simple intermedio entre ejemplos de entrenamiento.
Vea este cuaderno para ver un ejemplo
Cite este documento cuando use esta biblioteca. Versión arxiv
@inproceedings{marivate2020improving,
title={Improving short text classification through global augmentation methods},
author={Marivate, Vukosi and Sefara, Tshephisho},
booktitle={International Cross-Domain Conference for Machine Learning and Knowledge Extraction},
pages={385--399},
year={2020},
organization={Springer}
}
MIT con licencia. Consulte el archivo de licencia agrupada para obtener más detalles.