4824578 Building Block สามารถบรรจุในแนวนอนหรือแนวตั้งโดยใช้ - และ | สัญลักษณ์ตามลำดับเพื่อเขียนร่ายมนตร์ที่ซับซ้อนมากขึ้น สัญลักษณ์เหล่านี้สามารถถูกล่ามโซ่เพื่อบรรจุมากกว่าสองสัญลักษณ์ที่มีห้องเท่ากัน
ตัวอย่าง:
| ผลลัพธ์ | รหัส | ผลลัพธ์ | รหัส |
|---|---|---|---|
27-26-26 | 2468|24578 |
( และ ) สัญลักษณ์สามารถใช้ในการจัดกลุ่มส่วนประกอบเข้าด้วยกันดังนั้นการบรรจุในแนวนอนและแนวตั้งแบบผสมสามารถเกิดขึ้นได้ในลำดับที่ถูกต้อง
ตัวอย่าง:
| ผลลัพธ์ | รหัส | ผลลัพธ์ | รหัส |
|---|---|---|---|
(48|37)-(25678|27)-(37|15) | (46-68)|(246-268)|(24-28) |
อักขระและอนุมูลอื่น ๆ สามารถอ้างอิงโดยตรงเพื่อสร้างอักขระใหม่ ตัวแยกวิเคราะห์จะทิ้งเนื้อหาของ glyph อ้างอิงลงในสตริงโดยตรงคล้ายกับคุณสมบัติ C/C ++ #include สิ่งนี้ทำให้ง่ายต่อการอธิบายตัวละครจีนที่ซับซ้อนมากขึ้นเนื่องจากส่วนใหญ่ประกอบด้วยอนุมูล
ตัวอย่าง:
| ผลลัพธ์ | รหัส | ผลลัพธ์ | รหัส |
|---|---|---|---|
廿|468|由|(八) | ((車|(山))-(殳))|(手) | ||
((口)-(口))|(甲)|十 | (((木)-(缶)-(木))|(冖))|((鬯)-(彡)) |
ตัวแยกวิเคราะห์พื้นฐานรวมอยู่ใน rrpl_parser.js ซึ่งเป็นพลังการสาธิตการโต้ตอบนี้ สามารถใช้กับ JavaScript ด้านเบราว์เซอร์รวมถึง Node.js:
//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 สามารถเก็บไว้ในไฟล์ JSON ได้โดยมีอักขระ UNICODE การแมปวัตถุรูทไปยังคำอธิบายที่เกี่ยวข้องเช่น
{
"一" : "48" ,
"丁" : "468|26|27" ,
"上" : "246|248" ,
"不" : "(48-45678-48)|(3-26-1)" ,
"丕" : "不|一" ,
"中" : "(46-2468-68)|(24-2468-28)" ,
"串" : "中|中"
} การอ้างอิงในไฟล์เหล่านี้มักจะขยายตัวครั้งแรกก่อนที่จะพยายามทำ สามารถทำได้สองวิธี ครั้งแรกคือการใช้ parser.preprocess(json_object) ใน rrpl_parser.js ในขณะที่ที่สองใช้ compile.js เอกสารเพิ่มเติมสามารถพบได้ในความคิดเห็นส่วนหัวของไฟล์เหล่านี้
ไฟล์ JSON สามารถบีบอัดลงใน (และไม่บีบอัดจาก) ไฟล์ไบนารีประมาณครึ่งหนึ่งของขนาดของต้นฉบับโดยใช้ compress.js โดยใช้ครึ่งไบต์เพื่อเข้ารหัสแต่ละสัญลักษณ์ในตัวอักษร RRPL

preview.html ที่มีการเรนเดอร์ของอักขระทั้งหมดในไฟล์ RRPL JSON: $node render.js preview path/to/input.json
realtime.html ซึ่งอินพุตผู้ใช้สามารถแยกวิเคราะห์และแสดงผลได้: (อักขระที่กำหนดไว้ในไฟล์อินพุตจะพร้อมใช้งานสำหรับการอ้างอิง) $node render.js realtime path/to/input.json
$node export_glyphs.js path/to/input.json path/to/output/folder 0
ตรงกันข้ามกับสิ่งที่ render.js สร้าง SVG เหล่านี้มี "โครงร่าง" ของร่ายมนตร์แทนจังหวะง่าย ๆ การตั้งค่าเพิ่มเติมเช่นความหนาสามารถปรับแต่งในซอร์สโค้ดของ export_glyphs.js ; API คำสั่งบรรทัดจะมาในภายหลัง
pip install fontforge ) ตัวอย่างสามารถพบได้ใน tools/forge_font.py เนื่องจาก RRPL ลดอักขระภาษาจีนทั้งหมดลงในจำนวนสตริงสั้น ๆ โครงสร้างของพวกเขาสามารถเรียนรู้ได้โดยแบบจำลองลำดับเช่นเชน Markov, RNN's และ LSTM โดยไม่มีปัญหามาก ฉันใช้ RNN (เครือข่ายประสาทอีกครั้ง) กับภาษากับภาพหลอนตัวละครจีนที่ไม่มีอยู่จริง ด้านล่างนี้เป็นอักขระบางตัวที่สร้างขึ้นโดยการฝึกอบรมข้ามคืนในคำอธิบายอักขระ ~ 1,000 RRPL โดยมีภาพที่แสดงผลโดยใช้โมเดล PIX2PIX repo แยกต่างหากสำหรับโครงการนั้นจะถูกสร้างขึ้นในไม่ช้า

rrpl.json มีเวอร์ชันล่าสุดที่กำลังดำเนินการอยู่ มีตัวละคร 5,000 ตัวอยู่ในนั้น แต่มีตัวละครจีนมากกว่า 50,000 ตัว! ดังนั้นความช่วยเหลือจึงได้รับการชื่นชมอย่างมาก หากคุณต้องการช่วยโครงการนี้โปรดต่อท้ายอักขระใหม่เข้ากับไฟล์และส่งคำขอดึง สำหรับข้อมูลเพิ่มเติมติดต่อฉันโดยส่งอีเมลไปที่ Lingdonh [ที่] Andrew [dot] CMU [dot] edu
ด้านล่างคือการแสดงผลของตัวละครจีนทั้งหมด 5,000 ตัวที่แสดงโดยใช้ RRPL จนถึงตอนนี้ คลิกที่ภาพเพื่อขยาย
