TextAugment ist eine Python 3 -Bibliothek für die Erweiterung von Text für Anwendungen für natürliche Sprachverarbeitung. Textaugment steht auf den riesigen Schultern von NLTK, Gensim V3.x und Textblob und spielt gut mit ihnen.
Zitieren Sie dieses Papier, wenn Sie diese Bibliothek verwenden. Arxiv -Version
@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}
}
Verbesserung der kurzen Textklassifizierung durch globale Augmentationsmethoden .
Die folgenden Softwarepakete sind Abhängigkeiten und werden automatisch installiert.
$ pip install numpy nltk gensim==3.8.3 textblob googletrans
Der folgende Code lädt NLTK Corpus für WordNet herunter.
nltk . download ( 'wordnet' )Der folgende Code lädt den NLTK -Tokenizer herunter. Dieser Tokenizer unterteilt einen Text in eine Liste von Sätzen, indem ein unbeaufsichtigter Algorithmus verwendet wird, um ein Modell für Abkürzungswörter, Kollokationen und Wörter zu erstellen, die Sätze starten.
nltk . download ( 'punkt' )Der folgende Code lädt das Standard-NLTK-T-Speech-Tagger-Modell herunter. Ein Teil der Sprach-Tagger verarbeitet eine Abfolge von Wörtern und fügt jedem Wort einen Teil des Sprach-Tags hinzu.
nltk . download ( 'averaged_perceptron_tagger' )Verwenden Sie Gensim, um ein vorgebildetes Word2VEC-Modell zu laden. Wie Google News von Google Drive.
import gensim
model = gensim . models . KeyedVectors . load_word2vec_format ( './GoogleNews-vectors-negative300.bin' , binary = True )Sie können auch Gensim verwenden, um den FastText -englischen und mehrsprachigen Modellen von Facebook zu laden
import gensim
model = gensim.models.fasttext.load_facebook_model('./cc.en.300.bin.gz')
Oder schulen Sie eine von Grund auf neu mit Ihren Daten oder dem folgenden öffentlichen Datensatz:
Text8 Wiki
Datensatz von "Ein Milliarde Wort Sprachmodellierungsbenchmark"
Installieren Sie bei PIP [Empfohlen]
$ pip install textaugment
or install latest release
$ pip install [email protected]:dsfsi/textaugment.gitAus der Quelle installieren
$ git clone [email protected]:dsfsi/textaugment.git
$ cd textaugment
$ python setup.py installEs gibt drei Arten von Augmentationen, die verwendet werden können:
from textaugment import Word2vec from textaugment import Fasttext from textaugment import Wordnet from textaugment import Translate Ein Beispiel finden Sie in diesem Notizbuch
Grundlegendes Beispiel
> >> 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 goodErweitertes Beispiel
> >> 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 Grundlegendes Beispiel
> >> 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 townErweitertes Beispiel
> >> 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 .Beispiel
> >> 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
Ein Beispiel finden Sie in diesem Notizbuch
Wählen Sie zufällig n Wörter aus dem Satz aus, die keine Stoppwörter sind. Ersetzen Sie jedes dieser Wörter durch eines seiner Synonyme, die zufällig ausgewählt wurden.
Grundlegendes Beispiel
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . synonym_replacement ( "John is going to town" , top_n = 10 )
John is give out to town Entfernen Sie zufällig jedes Wort im Satz mit Wahrscheinlichkeit p .
Grundlegendes Beispiel
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_deletion ( "John is going to town" , p = 0.2 )
is going to town Wählen Sie zufällig zwei Wörter im Satz aus und tauschen Sie ihre Positionen aus. Mach das n mal.
Grundlegendes Beispiel
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_swap ( "John is going to town" )
John town going to is Finden Sie ein zufälliges Synonym eines zufälligen Wortes in dem Satz, das kein Stoppwort ist. Fügen Sie dieses Synonym in eine zufällige Position im Satz ein. Mach das n mal
Grundlegendes Beispiel
> >> from textaugment import EDA
> >> t = EDA ()
> >> t . random_insertion ( "John is going to town" )
John is going to make up townDies ist die Implementierung von Aeda durch Karimi et al., Eine Variante von EDA. Es basiert auf dem zufälligen Einfügen von Interpunktionsmarken.
https://aclanthology.org/2021.findings-emnlp.234.pdf
Ein Beispiel finden Sie in diesem Notizbuch
Grundlegendes Beispiel
> >> from textaugment import AEDA
> >> t = AEDA ()
> >> t . punct_insertion ( "John is going to town" )
! John is going to townDies ist die Implementierung der Mixup-Augmentation von Hongyi Zhang, Moustapha Cisse, Yann Dauphin, David Lopez-Paz, angepasst an NLP.
Wird zur Erweiterung von Daten mit Mischung für die Satzklassifizierung verwendet: eine empirische Studie.
Die Mischung ist ein generisches und unkompliziertes Datenerweiterungsprinzip. Im Wesentlichen trainiert Mixup ein neuronales Netzwerk über konvexe Kombinationen von Beispielpaaren und deren Etiketten. Auf diese Weise regelt das neuronale Netzwerk regelmäßig, um ein einfaches lineares Verhalten zwischen den Trainingsbeispielen zu bevorzugen.
Ein Beispiel finden Sie in diesem Notizbuch
Zitieren Sie dieses Papier, wenn Sie diese Bibliothek verwenden. Arxiv -Version
@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 lizenziert. Weitere Informationen finden Sie in der gebündelten Lizenzdatei.