Mithilfe benötigt bei Verifikation - Export von Deutscher Wikipedia

Hallo zusammen

Ich habe Mal mit dem WikiExtractor und unserem Script 1’853’233 Sätze von Wikipedia auf Deutsch abgezapft. Wir würden gerne per Ende Woche den kompletten Export in Common Voice importieren und benötigen daher eure Hilfe. Wäre super, wenn ihr mir helfen könntet die Muster des untenstehenden Datensets zu überprüfen, damit wir die Fehlerrate möglichst klein halten können. Natürlich können wir in dieser Zeit nicht das komplette Datenset überprüfen, aber eine kleine Fehlerquote ist akzeptabel.

Randnotiz: dies ist nicht das komplette Datenset, welches wir von Wikipedia verwenden können. Ich habe einfach bei dieser Anzahl abgebrochen, damit ich Mal was posten kann. Geschätzt sind da nochmal eine Million Sätze möglich aus den restlichen Artikeln.

Muster 1 (100 Sätze): https://send.firefox.com/download/f17c118abead1cf9/#2GILabTyFf-dB9Qdkx25gg
Muster 2 (100 Sätze): https://send.firefox.com/download/f7dfbf8ec42faa0e/#-ixGK3_rl1MT7rtzHnJwhQ
“Komplettes” Datenset: https://send.firefox.com/download/d6bb5fd4c9b44931/#-DMBOhQtME8EC5BkPWJ_9g

Fragen für euch:

  • Aus den beiden Mustern, wie viele Sätze sind schwierig auszusprechen?
  • Aus den beiden Mustern, wie viele Sätze sind falsch?

Hier sind einige Sachen die mir bereits aufgefallen sind…

(nicht zwingend aus den Mustern, ich habe das komplette Datenset stichprobenmässig angeschaut)

Sollen wir das Minimum an Wörter anheben?

  • Boncompagni, vol.

Möglicherweise mit einer Regel, dass ein Punkt nur am Ende des Satzes sein darf?

  • Wie auch in vielen anderen Sprachen – vgl. frz.

Sollen wir französische Akzente verbieten? Weiss gerade nicht, ob es “richtige” deutsche Wörter mit solchen Akzenten gibt?

  • Sein Grab liegt auf dem Pariser Friedhof Père Lachaise.

Was aus meiner Sicht bestimmt gemacht werden muss:

  • “ggf.” als Abkürzung hinzufügen - kann leider am Ende des “Satzes” stehen - “Dabei muss ggf.” - siehe unten für Erklärung

Teilsätze

Es kann sein, dass diverse Teilsätze im Datenset vorhanden sind. Wir müssen dies diskutieren, habe aber gerade selbst keine Idee, wie das gelöst werden könnte. Ausserdem muss ich abklären, ob das überhaupt ein Problem ist (abgesehen davon, dass das Benutzer verwirren könnte). Ich gehe davon aus, dass dies nur ein sehr kleiner Anteil ist.

Das Problem liegt darin, dass der WikiExtractor (nicht von uns) z.T. Sätze bereits falsch splittet. So wird z.B. (frei erfunden) “In der 3. Stunde wird in Mathe etwas gelernt.” zu “In der 3.” und “Stunde wird in Mathe etwas gelernt”. Der erste Satz fällt raus, da er eine Nummer enthält. Für den zweiten Satz haben wir keinen Anhaltspunkt, dass dieser nicht ganz komplett ist. Was wir in den Regeln bereits haben, ist dass ein Satz mit einem Grossbuchstaben anfangen muss, so eliminieren wir bereits einige dieser Fälle, aber halt nicht alle.

Den WikiExtractor anzupassen wäre wohl einiges an Aufwand, habe aber nicht nachgeschaut wie der funktioniert. Falls dies jemand anschauen möchte, gerne :slight_smile:

Gibt es andere Ideen, wie dies gelöst werden könnte, falls dies überhaupt ein Problem ist?

Danke für eure Mithilfe!

PS: die momentanen Regeln findet ihr übrigens hier: https://github.com/Common-Voice/common-voice-wiki-scraper/blob/master/src/rules/german.toml

cc @jf99 @Bullnados @Bruno.Fischer @Ordoviz @mhack

1 Like

Aus Zeitgründen habe ich mir erst mal nur die ersten 100 Sätze angeschaut. Hier meine Analyse:

  • 5 Sätze sind abgeschnitten
  • mindestens 3 Sätze sind schwierig auszusprechen, insbesondere wenn man kein Französisch in der Schule hatte
  • In zwei Sätzen habe ich definitiv Fehler gefunden (ein fehlendes Wort und ein fehlendes Komma)
  • In einigen Chemie-Sätzen werden statt Namen die Elementsymbole genutzt, also zum Beispiel Ar für Argon oder U für Uran. Weiterhin ist zum Beispiel von α-Strahlung statt von Alphastrahlung die Rede. Dies ist für unsere Zwecke nicht brauchbar.
  • Anführungszeichen werden nicht einheitlich benutzt (in unserem bisherigem Text allerdings auch nicht). Es ist ein wilder Mix aus “”, «» und „“

Mein Vorschlag wäre, eine Liste von gängigen Abkürzungen zu führen (usw., ggf., etc., u. a.) und diese durch ihre ausgeschriebenen Fassungen zu ersetzen (und so weiter, gegebenenfalls, …). Danach würde ich alles rauswerfen, was ungewöhnliche Zeichen enthält (also nicht A-Za-z0-9.,!?-äöüÄÖÜß) und was Satzbeendungszeichen anderswo als am Satzende enthält. So würde man zwar einiges herausfiltern, was eigentlich okay wäre, aber da Wikipedia ja eine schier unerschöpfliche Quelle ist, bliebe dennoch genug übrig.

Erwägenswert wäre außerdem, jeden Satz automatisch prüfen zu lassen, etwa mit dem LanguageTool oder einem ähnlichen Werkzeug.

Boncompagni, vol.

Was heißt das?

Danke für dein Feedback.

Dieses Problem haben wir in anderen Sprachen auch. Die spanischen Contributor schauen sich momentan ein Tool an, welches uns wohl auch helfen wird (https://spacy.io/models/de)

Ich denke das können wir nur schlecht umgehen :frowning:

Die α-Strahlung können wir einfach rausfiltern, “Ar” wird wohl schwierig. Einzelne Buchstaben dürfte wiederum einfach sein, ich glaube nicht, dass wir irgend einen Satz benötigen, der ein Wort mit einem Buchstaben beinhaltet. Siehst du das auch so?

Da wir genügend Sätze abgreifen können, denke ich, dass dies nicht Mal nötig ist. Und zusätzlich sind viele dieser Sätze sowieso schon vom WikiExtractor her nicht korrekt aufgesplittet.

Interessant. Muss ich mir Mal genauer anschauen, ob das eine Möglichkeit wäre.

Das könnte relativ teuer werden :wink:

Ich nehme an, dass das eine Art Quellenangabe ist.

Dank der Hilfe von @jf99 habe ich noch einige Regeln hinzugefügt, inbesondere:

Satzzeichen nur am Ende
Keine Wörter mit nur einem Buchstaben (" a.", " a", " a ", "a ")
Gross-/Kleinschreibung gemixt in Wort (LaSi - vorallem chemische Elemente?)

Muster 3: https://send.firefox.com/download/a884eb00b2e47dc4/#qRPTmRoX5sG1SnZMgBa0LA
Muster 4: https://send.firefox.com/download/2370934a7883db89/#gkcs0ZQqk9KUiHxYRLDJlQ

Sieht schon besser aus, aber die Teilsätze konnte ich bisher noch nicht entfernen.

Probleme, die somit noch offen sind:

  • Teilsätze
  • Ggf. nur Sätze erlauben, die A-Za-z0-9.,!?-äöüÄÖÜß beinhalten

Hi there (sorry for using English here)

We have created a blacklist using the whole Wikipedia and selecting words with less than 60 repetitions.

We are currently executing a full export using this blacklist for filtering.

I’ve created a 500 random words sample here for you to review

https://paste.mozilla.org/6FfVZ6Vn

Try to read them out loud, what’s the percentage (approx) of difficult or complex to pronounce for a German speaker?

We want to take a decision to import this on the app by tomorrow (Friday) so we can include German in a campaign launching next week.

Danke!

(Note that this sample is from an in progress export, so might have sentences from similar articles)

@nukeador I read through all 500 sentences and would estimate the ratio of difficult-to-pronounce sentences to 9% (45/500). Mostly because of words that originate from foreign lanugages.

Also note that there are weird question marks in some lines (probably a replacement for other special signs?). Namely:

Er entspricht dem Alpha im Griechischen und dem Buchstaben ? im Kyrillischen Alphabet.
Nach al-Ghaz?l? gehört alles, was nicht für Gott ist, zum Diesseits.
Dvo?ák überdachte daraufhin seinen Kompositionsstil und wandte sich von der Neudeutschen Schule ab.

1 Like

The new sentences should be now ready on the site, it would be good if you can test everything is as expected.

Thanks everyone who helped with this!

Nun sind die Wikipedia-Sätze ja schon ein Weilchen im Einsatz. Mindestens neunzig Prozent aller Teilsätze lassen sich meiner Meinung nach auf genau den von @mkohler beispielhaft oben genannten Umstand zurückführen, dass ein Punkt nach einer Ziffer als Satzende interpretiert wird (wie “2. Klasse”). Dies ließe sich sehr einfach automatisch detektieren und herausfiltern.

Weiterhin ist mir aufgefallen, dass sehr viele ausländische Namen und Bezeichnungen im deutschen Text auftauchen, von denen viele nicht wissen, wie man sie ausspricht. Das könnte potenzielle Stimmspender verschrecken. Auch dies ließe sich durch einen einfachen Filter teilweise in den Griff bekommen. Zeichen wie è, â, ç kommen im Deutschen nicht vor. Sätze, die diese Zeichen enthalten, sollte man meiner Meinung nach einfach rauswerfen.

Ich habe für Esperanto ein Export-Script geschrieben dass einen Großteil des erweiterten Lateinischen und Kyrilischen Alphabets herausfiltert und das hat alleine schon die Anzahl der (schwer ausprechbaren) Fremdwörter stark verkleinert. Auch Zeichenketten die im Deutschen kaum vorkommen kann man herausfiltern. Ebenso kann man nach gängigen Abkürzungen suchen und die Zeilen löschen, ich schau mal dass ich da etwas recherchiere wie man das ohne viel manuelle Arbeit machen kann .

Ich denke man sollte ein clean-script schreiben mit dem man solche Dinge auch auf die schon extrahierten Sätze anwenden kann. Das würde vielen Sprachen sehr nützen.

EDIT: am einfachsten ohne viel Aufwand zu betreiben kann man Zeilen die einem Regex entsprechen mit “sed” auf der Kommandozeile löschen. Für einen Teil der Abkürzungen gibt es in den neueren Import Scripten schon das passende Regex.

1 Like

Der Wikipedia-Import könnte erklären, warum ich mich gerade (nach einiger inaktiver Zeit) so über die Grammatik und vor allem über die vielen sehr ungewöhnlichen Eigennamen gewundert habe. Teils habe ich die Hälfte der Sätze als schwer auszusprechen markiert.

Ob die alltagsferne Grammatik ein Problem ist, weiß ich nicht. Dem Problem der Eigennamen könnte man vielleicht beikommen, indem bestimmten Wikipedia Kategorien ausgeschlossen oder werden oder zumindest anders priorisiert – es gibt recht viele Artikel zu Ortschaften und Geographie daher werden sich Artikel dazu schnell in Datensets finden.

Ich bin mir nicht sicher, ob dies mit diesem Import zusammenhängt, allerdings halte ich es für unnötig schwierig, wenn die Sätze z.B. chinesische Städtenamen enthalten, welche nicht einmal in Wikipedia eine dt. oder englisch normierte Lautschrift haben. Das kann an solchen Stellen nur zu qualitativ schlechten Ergebnissen führen und frustriert ggf. :wink: Lässt sich das sinnvoll durch Pretesting filtern?

Ich habe vor einigen Tagen diesen Pull-Request erstellt in dem 16 000 sätze gelöscht werden, die Zeichen enthalten die nicht Teil des deutschen Alphabets sind. Es werden auch viele Chinesische und Japanische Schriftzeichen gelöscht. Ich hoffe das verbessert die Situation ein wenig.

Die chinesischen Städtenamen sind aber vermutlich weiterhin vorhanden. Da müsste man mit Listen arbeiten, wenn man die wirklich löschen möchte.

EDIT: der Pull-Request ist jetzt angenommen und live.