Grammatik ist wichtig, aber es ist nicht so einfach, sich alle Regeln zu merken und sie anzuwenden. Früher war es nicht möglich, die richtige Grammatik in einer App, Website oder einer anderen Form von „benutzerfreundlicher“ Technologie zu verwenden. Aber jetzt ändern immer mehr Softwareentwickler ihre Meinung, wenn es darum geht, Menschen vollständigen Zugriff auf Tausende von Grammatikregeln zu gewähren, sodass selbst maschinell erstellte Kopien automatisch von anderen Programmen bearbeitet werden können. In diesem Tutorial führen wir die Grammatikkorrektur mit Python durch.

Gramformer ist ein solches Python-Paket, es ist eine Bibliothek, die 3 separate Schnittstellen für eine Familie von Algorithmen bereitstellt, um Grammatikfehler zu erkennen, hervorzuheben und zu korrigieren. Die Bibliothek kümmert sich um die technischen Details, sodass Sie lediglich die Methoden mit Ihren Sätzen aufrufen müssen und eine Liste mit Vorschlägen oder einen Satz mit hervorgehobenen Fehlern erhalten. In diesem Artikel wird erläutert, wie Sie die verschiedenen Signaturen verwenden, die von Gramformer mit Happy Transformer in Python bereitgestellt werden, um Ihren Inhalten eine zusätzliche Politur hinzuzufügen.

Umgebung einrichten

Zuerst müssen wir Gramformer selbst installieren, es ist noch nicht auf PyPi verfügbar, da es ein ziemlich neues Paket ist, das auf den Markt kommt. Aber wir können es trotzdem mit dem folgenden Befehl aus seinem GitHub-Repo herunterladen:

!pip3 install -U git+https://github.com/PrithivirajDamodaran/Gramformer.git

Aber als ich und viele andere Leute versuchten, es zu installieren, installierte es immer wieder mehrere Versionen seiner Abhängigkeiten. Ein Blick in die Protokolle ergab: „Kein App-Image für TensorFlowJupyter gefunden …“ und schließlich „ERROR: Resolution Impossible“. Es gibt auch ein offenes Problem, bei dem es für einige Leute (einschließlich mir) endlos installiert wird. Darüber hinaus bietet das Paket auch keine Unterstützung für das Ändern von Textgenerierungseinstellungen. Um dieses Problem zu lösen, könnten wir also einen Transformer verwenden, insbesondere Happy Transformer, um eine stabilere Version von Gramformer zu erhalten.

Installieren Sie Happy Transformer mit:

pip install happytransformer

Happy Transformer ermöglicht Entwicklern die einfache Implementierung modernster neuronaler NLP-Modelle in Python. Es basiert auf der Hugging Face Transformers-Bibliothek, die es jedem ermöglicht, komplexe Modelle mit nur wenigen Codezeilen zu entwickeln. Diese Bibliothek ermöglicht die Implementierung von Textklassifizierung, Textgenerierung, Zusammenfassung und mehr in Ihren Projekten. Es ist einfach zu bedienen, aber angetrieben von modernster NLP-Technologie!

Erstellen der Anwendung

Das Modell, das wir für unsere Anwendung verwenden, heißt HappyTextToText und führt eine Text-zu-Text-Aufgabe aus. Mit anderen Worten, es nimmt einen Text als Eingabe und erzeugt einen eigenständigen Text als Ausgabe. Zum jetzigen Zeitpunkt ist dies auch das einzige stabile Modell von Gramformer. Erstellen Sie zunächst eine Datei mit der Erweiterung .py, in der wir unseren Code speichern und das folgende Modul importieren können:

from happytransformer import HappyTextToText

Derzeit ist das verfügbare Gramformer-Modell ein T5-Modell mit dem Namen „prithivida/grammar_error_correcter_v1“ und kann durch Erstellen eines „HappyTextToText“-Objekts erhalten werden (es ist im Modellvertriebsnetzwerk von Hugging Face verfügbar).

Schreiben Sie die folgende Zeile wie folgt in Ihre Datei:

happy_tt = HappyTextToText("T5",  "prithivida/grammar_error_correcter_v1")

Diese Klasse erfordert 2 Positionsmodelle, der erste Positionsparameter dieser Klasse ist der Modelltyp und der zweite Parameter ist für seinen Namen.

Das in „prithivida/grammar_error_correcter_v1“ verfügbare T5-Modell ist in der Lage, mehrere Aufgaben mit einem einzigen Modell (Text-zu-Text) auszuführen. Das Modell erreicht dies, indem es vor der Eingabe die Bedeutung verschiedener Präfixe lernt. Durch die Verwendung des von uns verwendeten Gramformer-Modells ist das einzige Präfix, das wir benötigen, „gec:“.

Jetzt definieren wir die Funktion, die Grammatik- und Rechtschreibfehler enthält, die wir mithilfe des Gramformer-Modells korrigieren.

text = "gec: " + "We no open, sorrry"

Eine interessante Funktion, die Happy Transformer hat, die die Gramformer-Bibliothek derzeit nicht hat, ist die Möglichkeit, die Textgenerierungseinstellungen zu ändern. Eine Klasse namens TTSettings() wird verwendet, um zu steuern, welcher Algorithmus verwendet wird und für welche Einstellungen. Wir können dies genau so importieren, wie wir es mit HappyTextToText gemacht haben, oder so:

from happytransformer import TTSettings

Und dann können wir mit dieser Klasse verschiedene Textgenerierungseinstellungen definieren. Zum Beispiel:

TTSettings(do_sample=True, top_k=50, temperature=0.7, max_length=20)

Dies ist eine der Konfigurationen von TTSettings, hier berücksichtigt der Algorithmus die top_k Tokens, wo die Wörter oder Symbole stehen, das heißt, je mehr Sie berücksichtigen, desto kreativer wird die Textvorhersage sein. Ähnlich wie bei der Temperatur, wenn Sie die Temperatur erhöhen, wird das Modell eher weniger wahrscheinliche Token auswählen.

Sie können dies auch mit einigen zusätzlichen Parametern wie min_length und do_sample etwas weiter anpassen. Sie sehen sie alle hier.

Im weiteren Verlauf des Codes können wir eine Grammatikkorrektur mit dem happy_tt-Objektaufruf generate generate_text() durchführen. Von hier aus stellen wir die Textfunktion dem ersten Positionsparameter zur Verfügung und schließen die Einstellungen für den „args“-Parameter ein.

result = happy_tt.generate_text(text, args=settings)

Drucken Sie schließlich das Ergebnis aus.

print(result.text)

Und wir sind fertig!

Der Code würde in seiner Gesamtheit so aussehen. Ich habe auch einige Änderungen vorgenommen, um die bestmöglichen Ergebnisse zu erzielen.

from happytransformer import HappyTextToText
from happytransformer import TTSettings

happy_tt = HappyTextToText("T5", "prithivida/grammar_error_correcter_v1")

text = "gec: " + "We no open, sorrry"
settings = TTSettings(do_sample=True, top_k=10, temperature=0.5,  min_length=1, max_length=100)
result = happy_tt.generate_text(text, args=settings)

print(result.text)

Ausgabe

Nun zu den Ergebnissen: Sie können diese Datei wie alle anderen Python-Dateien ausführen oder einfach Folgendes ausführen:

python {file_name}.py  #Windows
python3 {file_name}.py  #Mac/Linux

Und es kann ein paar Minuten dauern, bis es ausgeführt wird, wenn Sie kein leistungsstarkes System haben, aber es würde so etwas zurückgeben:

Das Ergebnis ist der Satz „We no open, sorry“, damit Sie deutlich sehen können, dass es funktioniert. Wie ich bereits erwähnt habe, können Sie jetzt die Intensität der vorgenommenen Änderungen definieren, sodass Sie leichter mit lockerer strukturierten Sätzen und ihrer Grammatik arbeiten können, nicht nur mit einfachen Rechtschreibfehlern.

Letzte Worte

Gramformer ist eine Open-Source-Bibliothek, die es einfach macht, Grammatikfehler zu korrigieren und hervorzuheben. Es kann von Python aus verwendet werden und ist auch bei großen Datensätzen sehr schnell. Wir haben die Gramformer-Bibliothek eingehend untersucht. Wir haben gesehen, wie die Bibliothek verwendet wird und welche Algorithmen sie zum Bearbeiten und Hervorheben von Fehlern verwendet. Wir haben auch gesehen, wie Sie die Bibliothek in Ihre Anwendungen implementieren können.

Es ist wirklich einfach, das T5 Transformer-Modell zu verwenden, um die Rechtschreibung und Grammatik jedes eingegebenen Textes zu korrigieren. Wir hoffen, dieser Blogbeitrag hat Ihnen geholfen zu verstehen, wie Sie ein T5-Modell verwenden, um Ihre Texteingabe zu korrigieren. Wenn Sie Fragen oder Bedenken zu diesem Thema haben, können Sie sich jederzeit an uns wenden. Vielen Dank fürs Lesen, wir freuen uns immer, wenn einer unserer Beiträge nützliche Informationen zu einem Thema wie diesem liefern kann!