Mir ist bei den deutschen Sätzen immer wieder aufgefallen, dass diese unvollständig sind. Teilweise enden sie mir Worten wie “ggf.” oder “Dr.” etc., teilweise fangen sie unvermittelt an, beispielsweise mit “Platz belegten…”.
Die Beispiele machen deutlich, dass der Tokenizer anscheinend mit Worten oder Abkürzungen, die mit einem Punkt enden, klarkommt.
Ist euch das auch schon aufgefallen? Wie soll ich beim Einsprechen darauf reagieren?
Soll ich diese Sätze als grammatikalischen Fehler melden oder trotzdem einsprechen?
Zur technischen Seite: so weit ich den Quellcode verstehe, könnte man für den tokenizer einige Abkürzungen in die Positivliste schreiben.
Würde das an der Stelle helfen?
Du kannst gerne deine Ideen einbringen. Die abbreviation_patterns bedeuten, dass Sätze, die diese Abkürzungen enthalten, nicht verwendet werden und der Satz nicht zerschnitten wird.
Ich würde sagen nicht einsprechen und melden. Man kann einem neuronalen Netz natürlich auch Abkürzungen beibringen, aber das sind dann weitere Sonderregeln, die es lernen muss. Die offizielle Regel ist, alles was gesagt wird, muss auch ausgeschrieben dastehen. Wir haben zufälligerweise gestern “ggf.” hinzugefügt und wollen damit bald einen neuen Wikipedia Export mit den neu angelegten Artikeln seit dem letzten Export machen.
Perfektes Timing, ich versuche mich gerne einzubringen.
Heißt das, dass der gesamte Satz entfernt wird oder nur das Lemma aus dem Satz?
In der aktuellen Liste würden mir noch Dr. fehlen, ergänze ich in GitHub. Möchtest du das als Kommentar oder als Pull Request auf dein Repo oder auf das Haupt Repo?
Ich melde die Sätze und spreche sie nicht ein, wollte nur sichergehen, dass das so gewünscht ist.
Nach dem durchschauen des Sample Files sieht es für mich so aus, als ob das Lemma aus dem Satz entfernt wird. Das erklärt, warum manche Sätze dann etwas holprig werden.
Klar, was eine dumme Frage. Ich kenne Punkt nur in der Python Implementierung, es kann sein, dass die ein vortrainiertes Modell mitbringt oder herunterlädt. Ich meine nltk macht so Sachen.
Ich kann Mal schauen, ob Python Punkt das in Deutsch besser kann.
Definitiv keine dumme Frage NLTK könnte durchaus besser funktionieren. src/segmenter.rs hat ein Beispiel. Wäre super, wenn du die expliziten Abkürzungen aus dem DE rules file entfernen könntest und zu analysieren ob das mit NLTK besser funktioniert.
Die nächsten Tage bin ich nicht immer erreichbar, könnte daher eine Weile dauern, wenn du Fragen für mich hast. Unterstütze hier aber gerne.
Moin!
Ich habe es jetzt erst geschafft, mich Mal damit zu beschäftigen.
Das Projekt läuft jetzt soweit, ich würde gerne nur ein paar kleine Tests durchführen. Gibt es eine Möglichkeit, Dateien vom Wiki Extractor zu erstellen, ohne direkt das ganze Wiki dump File zu brauchen? Laut des File Formats ist das ja nicht so kompliziert, aber eine Beispiel Datei, die der Sentence Extractor braucht wäre hilfreich
Also ich habe jetzt gelernt, dass der Wiki Extractor nicht komplett laufen muss, damit der Sentence Extractor arbeiten kann. Und dass json als Input Format gebraucht wird.
Wenn ich komplett durchsteige, schreibe ich vielleicht noch ein zwei Zeilen dazu in die README.
Wunderbar. Ich werde mir den Pull Request später genauer anschauen. Danke für deine Hilfe!
Jap. Die automatische “Sample Extraction” für Pull Requests verwendet das selbe Konzept. Da wird der WikiExtractor für 30 Sekunden ausgeführt, und dann der Sentence Extractor. So kommen einige Sätze zusammen, in einem relativ akzeptablen Zeitrahmen.
Danke dir für die Infos und das Angebot!
Ich werde es noch Mal mit eigenen Sätzen testen, die die Abkürzungen enthalten, jetzt wo ich weiß, wie die Dateien aussehen müssen.
Der Job auf GitHub ist leider fehlgeschlagen, ich verstehe den Grund nicht. Der Rust Installationsprozess scheint Dateien laden zu wollen, was aber fehlschlägt. Scheint mir nicht an meinen Änderungen zu liegen.