Grammatikprüfung mit LanguageTool als Container

Confluencer

Active member
Ich habe gestern ein Image für LanguageTool gebastelt und auf Dockerhub abgelegt: meyay/languagetool.

Die Dockerhub Beschreibung zeigt wie man seinen eigenen LanguageTool-Server per docker run oder docker compose startet.
Dazu werden zusätzliche Environment-Variablen erläutert, die erlauben zu definieren für welche Sprache das ngram Modelle gezogen werden sollen. Man will sowohl das ngram Modell für die jeweilige Sprache, als auch das Fasttext Model für korrekte Spracherkennung des Texts haben.

Als Client kommt dann entsprechend ein Browser-Plugin zum Einsatz, dass in dem Abschnitt "Experimentelle Einstellungen" (zumindest heißt es so in der Chrome Extension) erlaubt das Backend zu konfigurieren. Dort stellt man "LanguageTool-Server:" auf "Sonstiger Server - benötigt dort einen LanguageTool-Server" und gibt dann die mit dem Hostnamen oder der Host-IP des Docker-Hosts die URL zum LanguageTool-Server, bspw. http://host-ip:8010/v2. Chrome (ich verwende Vivaldi, dass unter der Haube die Chrome-Engine nutzt) kommt hier mit einer http-URL klar. Andere Browser können evtl. eine HTTPS-URL erwarten.

Wenn man das Plugin eingerichtet hat und der eigene Server gestartet ist, dann wird bei jedem Textfeld im Browser automatisch die Prüfung angeschaltet und Fehler werden je nach Art (Grammatik, Rechtschreibung, ...) in unterschiedliche Farbe unterstrichen und man bekommt ein Kontextfeld angezeigt, dass einem direkt die Korrekturvorschläge zeigt oder zumindest auf inkorrekte Grammatik hinweist, bspw.:
1662912822088.png

Solltet ihr euren LanguageTool-Server über das Internet erreichbar machen wollen (was ich euch ausdrücklich nicht empfehle, da es keine Benutzer-Authentifizierung gibt!), dann macht das bitte immer nur über HTTPS und nie über HTTP alleine. Ich verwende meinen nur lokal und hab mir deswegen gespart einen ReverseProxy mit Zertifikat vor den Container zu packen.
 
Zuletzt bearbeitet:
Ich hab zwar nicht wirklich Verwendung dafür, aber hört sich erstmal ganz nett an... grade die Möglichkeit, ggf. auch übergreifend seine "eigene" Rechtschreibkorrektur zu haben. Wo wir da grade beim Thema sind - Du sagst "Browser-Plugin" - gibt es da auch entsprechende Plugins für Libre-/Openoffice, usw.?

Hab mal kurz nachgeschaut, da scheint es durchaus etwas zu geben: https://languagetool.org/de/libre-office und es ist auch noch einiges mehr unter https://languagetool.org/de/ bei den Apps und Addons vorhanden, weiss nur grade nicht, ob man dann auch einfach seinen eigenen Server dort eintragen kann, oder ob dann automatisch deren Service benötigt wird, aber erstmal liest sich das soweit nicht schlecht... für mich wäre jedenfalls alles vorhanden (Firefox, Thunderbird, LibreOffice (und ab und zu mal Chrome)) ☺️

Auch wenn ich es vermutlich nicht einsetzen werde (ich stehe zu meinen Rechtschreibfehlern! 😅), coole Sache! 👍😊
 
Gerade für englischsprachige Foren ist das schon nicht schlecht, da neigt man doch etwas stärker dazu sich mal zu verschreiben oder grammatikalisch nicht richtig aufgestellt zu sein.

Ich weiß natürlich nicht, ob jedes der Plugins erlaubt den eigenen Server einzutragen, aber ich würde schon davon ausgehen, dass es nicht nur eine exklusive Funktion für Browser-Erweiterungen ist

Der scannt den Text direkt beim Tippen. Und ich muss gestehen, ich möchte nicht das alle meine Texte an einen Remote-Server gesendet werden. Mir gefällt LanguageTool bisher ganz gut.

Beispiel:
1662915041118.png
 
Und ich muss gestehen, ich möchte nicht das alle meine Texte an einen Remote-Server gesendet werden.
Wer will das schon 😅 Finde es nur recht spannend, dass man so auch eine Programm-übergreifende individualisierbare Rechtschreibprüfung hat... Ist ja meist immer nur "pro Programm" und da hat man dann jedes mal das gleiche Geraffel mit ggf. fachspezifischen Ausdrücken o.ä. Ist schon ein recht netter Gedanke... 😊
 
@Confluencer Hast du zufällig ein QNAP NAS und kannst mir sagen wie ich es dort installieren und korrekt einrichten kann?

@all Das neueste LibreOffice hat LanguageTool direkt integriert und dort kann auch ein Server angegeben werden.
 
Nope, habe ich nicht.

Am Ende ist es überall aber das gleiche: entweder erzeugt man den Container per docker run über das Terminal (via ssh), oder nutzt das compose file dafür. Entsprechende Beispiele sind im Repo zu finden.

Bei dem docker compose Beispiel, muss man bspw. nur die Volumes anpassen:
Code:
    volumes:
      - ./ngrams:/ngrams
      - ./fasttext:/fasttext
Statt ./ngrams und ./fasttest (jeweils linke Seite vor dem Doppelpunkt) muss jeweils der Pfad stehen, wo Du die Daten in Deinem Dateisystem ablegen willst.

Wenn Du als Benutzer auch noch in die Dateien in dem Verzeichnis zugreifen können willst, dann solltest Du MAP_UID und MAP_GID auch noch setzen. Die zu verwendenden Werte kannst Du über das Terminal mit dem Befehl `id` herausfinden (idealerweise als nicht root user ausgeführt).
 
Hallo, danke für die Rückmeldung. Ich bräuchte aber eine Anleitung für die Containerstation. Dort wird alles über eine grafische Oberfläche eingegeben und da ich kein Profi auf dem Segment bin, kenne ich mich da nicht aus.

Vielleicht gibt es ja hier einen User der eine QNAP hat und auch diese Software als eigenen Server nutzen will bzw. das schon eingerichtet hat.

Und eventuell auch Lust hat mir hier zu helfen. Mit Screenshots oder sonst wie.
 
https://www.qnap.com/en/how-to/tutorial/article/how-to-use-container-station-3 unter "Creating docker container", dort unter 6. "Optional: Modify the advanced settings". Da hast Du unter "Storage"" die Möglichkeit, lokaler Ordner in den Container einzubinden, das wäre dann vergleichbar mit dem, was @Confluencer Dir schon geschrieben hat:
Code:
volumes:
- ./ngrams:/ngrams
- ./fasttext:/fasttext

Statt ./ngrams und ./fasttest (jeweils linke Seite vor dem Doppelpunkt) muss jeweils der Pfad stehen, wo Du die Daten in Deinem Dateisystem ablegen willst.

Also "links" = Pfad im lokalen Dateisysten, "rechts" = Pfad im Container-Container :) Ansonsten schau die Doku mal etwas durch und die Möglichkeiten innerhalb der Container-Station bei geöffneter docker-compose.yml, da sollte sich das meiste auch wiederspiegeln.

Ansonsten - soweit ich das richtig gelesen habe - gibt es auf der QNAP auch direkt docker-compose (bzw. in der neuen Variante ggf. auch "docker compose"), heisst, dass Du das auch direkt über die Shell erledigen könntest.

So wie ich das sehe (grade mit dem "./Ordner") könntest Du die docker-compose.yaml-Datei in einen Ordner Deiner Wahl packen (da wo die Container-Dinge landen sollen), dann via Shell auf die QNAP in den entsprechenden Ordner gehen, ein "docker compose -up" abfeuern und dann läuft es mitunter schon einfach.

Probier einfach mal ein bisschen aus (sowohl über die GUI, als ggf. auch einfach über die Shell), vielleicht meldet sich hier noch jemand mit Erfahrungen dazu :)

P.S.: Auch wenn es etwas merkwürdig anmutet, aber Du könntest Dir auch Portainer als Container auf die QNAP packen, das ist auch wieder etwas für die Container-Verwaltung, ist aber etwas flexibler - dort kannst Du dann auch einfach den Inhalt vom YAML-Dateien angeben und ersparst Dir so auch das mühsame auseinander fummeln von Parametern in YAML-Files, welche Du dann über die Container-Station erst wieder an etlichen Stellen einpflegen musst 🙃

Ich persönlich lasse z.B. einfach ein schlankes Debian in einer VM laufen, Docker dazu, Portainer dazu, fertig (und hat mit dem Rest auch nix mehr zu tun) 😇
 
Eine VM zu nutzen hat nur wirkliche Vorteile, wenn die Docker Engine der QNAP vermurkst ist (die von Synology is bspw. an einigen Stellen vermurkst).

Die "Mechanik" wie ein Container deployed wird ändert sich nicht, nur das man dann eben die UI der Container Station nicht mehr nutzen kann
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.380
Beiträge
45.239
Mitglieder
3.982
Neuestes Mitglied
ThomasW
Zurück
Oben