Wadoku und die Reise wie man ein XML verarbeitet
Wadoku und die Reise wie man ein XML verarbeitet

Wadoku

Was ist Wadoku? Wadoku, alternativ: WaDoku oder WaDokuJT, (japanisch 和独辞典 Wadoku Jiten, deutsch ‚japanisch-deutsches Wörterbuch‘) ist ein kostenloses japanisch-deutsches Online-Wörterbuch, welches man auf https://www.wadoku.de/ finden kann. Die Daten sind frei erhältlich. Der Datenbestand ist z.z. bei 399'321 Haupteinträge. (Stand Januar 2021)

Der Weg ist das Ziel

Die meiste Zeit verbrauchte ich mit der Analyse der XML Daten. So hat das XML mit 200 Megabyte eine stattlichen Umfang und strapazierte mein Notepad++ einigemale. So musste ich mit regex, suchen und ersetzen langsam die Daten untersuchen. Das XML ist nicht ganz semantisch Aufgebaut und muss durch ein paar kniffe korrigiert werden wie z.B. leere Tags oder Hierarchie der Tags waren unterschiedlich, so konnte der Tag sense 1x oder  kann mehrmals unterhalb sense Vorkommen, zum Beispiel: \entries\entry\sense\trans \entries\entry\sense\sense\trans \entries\entry\sense\sense\trans Dies machte das Regelwerk für den Import in ein RDBS nicht ganz trivial. Was man aber sagen kann die xsd (XML Schema) gab mir meist die Lösung wie ich das Feld zu verstehen habe. Schlussendlich hatte ich nach mehreren Versuchen die Daten in der Datenbank. Folgende Tabellen hatte ich:
Tabelle Beschreibung Anz. Datensätze
Haupttabelle Hira/Hatuson schreibweise mit Romaji und Zähler für Unterkategorien 399'321
Etym Herkunft eines Wortes 66'709
Gramatik Substantive (Hauptwörter, Nomen), Adjektive (Eigenschaftswörter), Verben usw. 260'066
Midashigo Kurzfassungen für die Schreibung der japanischen Einträge 666'291
Ref (Quer)Referenzen 257'972 
Ruigos Weiterführende Einträge 92'551 
Senses Beispielsätze (Einzeleinträge) mit der deutschen Übersetzung 1'217'988 
Senses Cache Beispielsätze (1:1 zur Haupttabelle) 399'321
Wortliste Anhand der Beispielssätze erstelle Wortliste für Vorschläge (Suggestion) 816'771 

Damit die Performance für die Beispielsätze (1:n) verbessert wird habe ich diese in eine Caching-Tabelle zusammengefasst und stellen eine 1:1 Beziehung. Mit ~160Mb auch die grösste Tabelle.

utf8mb4

Bis jetzt kam ich mit mit utf8mb4 in Berührung da ich sonderlich nicht viel mit erweiterten Zeichensatz arbeitete. Jetzt mit japanischen Zeichen musste ich zuerst meine Datenbank Connector ein wenig umschreiben das ich den Zeichensatz für die Verbindung mitgeben konnte und des weiteren das Verständnis wie man char[] in C# benützt um zu anlysieren in welchem Charset code das Zeichen steht.

Powershell und mysql

Ich musste leider feststellen das Powershell nicht ganz mit allen Zeichensätzen umgehen kann. So quittiert der "normale" Befehl mit einer Fehlermeldung das < für eine Funktion vorreserviert ist. Auch über das Cmdlet Get-Content waren die Zeichensätze falsch. Mit folgendem Poweshellbefehl (via CMD) war ich für das Importieren eines MySQL Dump erfolgreich:

$file="[path-of-file]"
cmd /c 'mysql.exe -h [dbhost] -u[user] -p[pw] --default-character-set=utf8 [database] < '$file 

Romaji <> Japanisch

Lateinische Buchstaben werden in Japan ebenso verwendet, z.b. bei Firmennamen, als Lesehilfe für Ausländer an Bahnhofsschildern usw. In Japan werden diese Zeichen Romaji genannt. Es gibt verschiedene Varianten eine japanische Silbe mit Romaji zu schreiben, was aber bei vielen gemeinsam ist, das sie sich an das Englische anlehnen. Romaji ist keine 1:1 übersetzung aus dem Japanischen, denn eine Romaji Übersetzung kann man nicht immer zurück in das japanische konvertiert werden. Wadoku bietet hier auch keinen Export von Romaji. Hier musste ich mir eine C# Library WanaKanaSharp zu hilfe nehmen und um das modifizierte Heburn-System erweitern. Diese ist nun in meiner Lösung durchsuchbar.

Die erste Beta-Version:

Nach einigen Wochenden habe ich die erste Beta-Version fertiggestellt. Dabei musste ich Feststellen das die MySQL Version 8.x um den Faktor 2 lagsamer ist. Hier werde ich noch sicher ein paar Versuche starten um herauszufinden woran das genau liegt. Ich bin eigentlich mit dem Resultat zufrieden und hat umgmein Spass gemacht diese umzusetzen. Viel Spass beim Ausprobieren:

Nichts gefunden

Es wurde zur Story Wadoku und die Reise wie man ein XML verarbeitet kein Kommentar gefunden

Information

Werbung oder Ähnliches sind nicht erlaubt, daher wird jeder Beitrag geprüft und freigegeben.
Advertising, etc. are not allowed, so any contribution is reviewed and approved.
Facebook-Webadress are not allowed, Facebook als Webadresse ist nicht erlaubt


* Die E-Mail wird nicht veröffentlicht / The email will not be published
** Bitte Zahl eintragen / Please enter the number
Ihr Kommentar
?
?
captcha Image?
?
 

Tippsammlung

Kleine Tippsammlung für mich und dijenige die sich auf meine Webseite verirrt haben.

Archiv

JahrArchiv
Tag(s):