23. Februar 2021
Arbeiten Sie an NLP-Projekten? Sind Sie es leid, im Internet immer wieder nach den gleichen dummen Vorverarbeitungsfunktionen zu suchen, wie z.B. das Entfernen von Akzenten aus französischen Beiträgen? Sind Sie es leid, Stunden mit Regex zu verbringen, um E-Mail-Adressen effizient aus einem Korpus zu extrahieren? Amale El Hamri wird Ihnen zeigen, wie NLPretext Sie unterstützt!

Medium Tech Blog by Artefact

NLPretext Übersicht

NLPretext besteht aus 4 Modulen: Basic, Social, Token und Augmentation.

Jede von ihnen enthält verschiedene Funktionen zur Bearbeitung der wichtigsten Textvorverarbeitungsaufgaben.

Grundlegende Vorverarbeitungen

Das Basismodul ist ein Katalog von übergreifenden Funktionen, die in jedem Anwendungsfall eingesetzt werden können. Sie ermöglichen Ihnen die Handhabung:

  • Unzulässige Leerzeichen in einem Text, Zeichen am Zeilenende
  • Kodierungsprobleme
  • Sonderzeichen wie Währungssymbole, Zahlen, Interpunktionszeichen, lateinische und nicht-lateinische Zeichen

  • Emails und Telefonnummern
from nlpretext.basic.preprocess import replace_emails
Beispiel = “Ich habe diese E-Mail an obama@whitehouse.gov weitergeleitet”
example = replace_emails(example, replace_with=”*EMAIL*”)
print(beispiel)
# “Ich habe diese E-Mail an *EMAIL* weitergeleitet”

Soziale Vorverarbeitung

Die sozial Modul ist ein Katalog praktischer Funktionen, die bei der Bearbeitung von Social data nützlich sein können, wie z.B.:

  • Extraktion/Entfernung von Hashtags

  • Emojis extrahieren/entfernen

  • Erwähnungen Extraktion/Entfernung

  • html-Tags Reinigung

from nlpretext.social.preprocess import extract_emojis
example = “Ich pflege meine Haut 😀”
Beispiel = extract_emojis(Beispiel)
print(example) #[‘:grinning_face:’]

Text-Erweiterung

Das Augmentierungsmodul hilft Ihnen, neue Texte auf der Grundlage Ihrer Beispiele zu erstellen, indem es einige Wörter in den ursprünglichen Texten ändert und im Falle von NER-Aufgaben die zugehörigen Entitäten unverändert lässt. Wenn Sie möchten, dass andere Wörter als Entitäten unverändert bleiben, können Sie dies im Argument stopwords angeben. Die Änderungen hängen von der gewählten Methode ab. Die derzeit vom Modul unterstützten sind Ersetzungen durch Synonyme unter Verwendung von Wordnet oder BERT aus der nlpaug-Bibliothek.

Erstellen Sie Ihre End-to-End-Pipeline

Standard-Pipeline

Unsere Bibliothek stellt ein Preprocessor-Objekt zur Verfügung, das alle Vorverarbeitungsvorgänge effizient leitet.
Wenn Sie alle Elemente Ihres Textes beibehalten und eine minimale Bereinigung durchführen möchten, verwenden Sie die Standard-Pipeline. Sie normalisiert Leerzeichen und entfernt Zeilenumbrüche, behebt Unicode-Probleme und entfernt wiederkehrende Artefakte aus sozialen data wie Erwähnungen, Hashtags und HTML-Tags.

from nlpretext import Präprozessor
text = “Ich habe gerade das beste Abendessen meines Lebens bekommen @latourdargent !!! Ich empfehle 😀 #food #paris n”
Präprozessor = Präprozessor()
text = preprocessor.run(text) print(text)
# “Ich habe gerade das beste Abendessen meines Lebens bekommen !!! Ich empfehle es weiter”

Benutzerdefinierte Pipeline

Wenn Sie eine klare Vorstellung davon haben, welche Vorverarbeitungsfunktionen Sie in Ihre Vorverarbeitungspipeline einfügen möchten, können Sie diese in Ihrem eigenen Präprozessor hinzufügen.

from nlpretext import Präprozessor
from nlpretext.basic.preprocess import (normalize_whitespace, remove_punct, remove_eol_characters, remove_stopwords, lower_text)
from nlpretext.social.preprocess import remove_mentions, remove_hashtag, remove_emoji
text = "Ich habe gerade das beste Abendessen meines Lebens bekommen @latourdargent !!! Ich empfehle 😀 #food #paris n"
Präprozessor = Präprozessor()
preprocessor.pipe(lower_text)
preprocessor.pipe(remove_mentions)
preprocessor.pipe(remove_hashtag)
preprocessor.pipe(remove_emoji)
preprocessor.pipe(remove_eol_characters)
preprocessor.pipe(remove_stopwords, args=)
preprocessor.pipe(remove_punct)
preprocessor.pipe(normalize_whitespace)
text = preprocessor.run(text) print(text) # "Abendessen Leben empfehlen"

NLPretext-Installation

Um die Bibliothek zu installieren, führen Sie bitte

pip install nlpretext

Sie finden das Github Repository Hier und die Dokumentation der Bibliothek Hier

Dieser Artikel wurde zuerst auf Artefact Tech Blog auf Medium veröffentlicht.