4824578 Bausteine können horizontal oder vertikal mithilfe der - und | verpackt werden Symbole, um komplexere Glyphen zu komponieren. Diese Symbole können gekettet werden, um mehr als zwei Symbole mit gleichem Raum zu packen.
Beispiel:
| Ergebnis | Code | Ergebnis | Code |
|---|---|---|---|
27-26-26 | 2468|24578 |
( und ) Symbole können verwendet werden, um Komponenten zu gruppieren, sodass gemischte horizontale und vertikale Packungen in der richtigen Reihenfolge auftreten können.
Beispiel:
| Ergebnis | Code | Ergebnis | Code |
|---|---|---|---|
(48|37)-(25678|27)-(37|15) | (46-68)|(246-268)|(24-28) |
Andere Zeichen und Radikale können direkt verwiesen werden, um einen neuen Charakter zu erstellen. Der Parser lässt den Inhalt der Referenzglyphe direkt in die Zeichenfolge ab, ähnlich wie bei der C/C ++ #include -Funktion. Dies macht es besonders einfach, die komplizierteren chinesischen Charaktere zu beschreiben, da die meisten von Radikalen bestehen.
Beispiel:
| Ergebnis | Code | Ergebnis | Code |
|---|---|---|---|
廿|468|由|(八) | ((車|(山))-(殳))|(手) | ||
((口)-(口))|(甲)|十 | (((木)-(缶)-(木))|(冖))|((鬯)-(彡)) |
Ein Basis -Parser ist in rrpl_parser.js enthalten, das diese interaktive Demo betreibt. Es kann sowohl mit Browser-Seite JavaScript als auch mit node.js verwendet werden:
//require the module: (or in html, <script src="./rrpl_parser.js"></script>)
var parser = require ( './rrpl_parser.js' ) ;
//obtain an abstract syntax tree
var ast = parser . parse ( "(48|37)-(25678|27)-(37|15)" ) ;
//returns line segments (normalized 0.0-1.0) that can be used to render the character
var lines = parser . toLines ( parser . toRects ( ast ) ) ; RRPL -Daten können in einer JSON -Datei gespeichert werden, während die Root -Objekt -Zuordnungen Unicode -Zeichen in ihre jeweilige Beschreibung, z. B.
{
"一" : "48" ,
"丁" : "468|26|27" ,
"上" : "246|248" ,
"不" : "(48-45678-48)|(3-26-1)" ,
"丕" : "不|一" ,
"中" : "(46-2468-68)|(24-2468-28)" ,
"串" : "中|中"
} Die Referenzen in diesen Dateien werden normalerweise zuerst erweitert, bevor das Rendering versucht wird. Dies kann auf zwei Arten erfolgen. Das erste ist parser.preprocess(json_object) in rrpl_parser.js zu verwenden, während der zweite compile.js verwendet. Weitere Dokumentation finden Sie in den Header -Kommentaren dieser Dateien.
Die JSON -Dateien können weiter in einer binären Datei über die Hälfte der Größe des Originals mit compress.js komprimiert werden (und unkomprimiert) werden, indem ein halbes Byte verwendet wird, um jedes Symbol im RRPL -Alphabet zu codieren.

preview.html mit einer Darstellung aller Zeichen in einer RRPL -JSON -Datei: $node render.js preview path/to/input.json
realtime.html -Webseite, auf der Benutzereingaben interaktiv analysiert und gerendert werden können: (Zeichen, die in der Eingabedatei definiert sind, sind für Referenzierung verfügbar) $node render.js realtime path/to/input.json
$node export_glyphs.js path/to/input.json path/to/output/folder 0
Entgegen dem, was render.js erzeugt, enthält diese SVGs "Umrisse" der Glyphen anstelle von einfachen Strichen. Weitere Einstellungen wie Dicke können im Quellcode von export_glyphs.js optimiert werden. Die Befehlszeilen-API wird später kommen.
pip install fontforge ) Ein Beispiel finden Sie in tools/forge_font.py . Da RRPL alle chinesischen Zeichen auf eine kurze Reihe von Zahlen reduziert, kann ihre Struktur von sequentiellen Modellen wie Markov -Ketten, RNNs und LSTMs ohne große Schwierigkeiten gelernt werden. Ich habe RNN (wiederkehrende neuronale Netzwerke) in die Sprache angewendet, um nicht existierende chinesische Charaktere zu halluzinieren. Im Folgenden finden Sie einige Zeichen, die durch Training über Nacht auf ~ 1000 RRPL -Zeichenbeschreibungen generiert werden, wobei die Visuals mit einem PIX2PIX -Modell wiedergegeben werden. Ein separates Repo für dieses Projekt wird in Kürze erstellt.

rrpl.json enthält die neueste, arbeitsbekannte Version. Es gibt rund 5.000 Charaktere, aber über 50.000 chinesische Charaktere existieren! HILFE wird also sehr geschätzt. Wenn Sie dieses Projekt helfen möchten, fügen Sie bitte neue Zeichen der Datei an und senden Sie eine Pull -Anfrage. Für weitere Informationen kontaktieren Sie mich, indem Sie eine E -Mail an Lingdonh [at] Andrew [dot] CMU [dot] edu senden.
Nachfolgend finden Sie eine Darstellung aller mehr als 5000 chinesischen Zeichen, die bisher mit RRPL bezeichnet werden. Klicken Sie auf das Bild, um zu vergrößern.
