freemt commited on
Commit
d6448a5
1 Parent(s): 5590f17

Update docs

Browse files
data/xiyouji-ch1-de.txt ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Wu Ch’êng-ên
2
+
3
+ Monkeys Pilgerfahrt
4
+
5
+ Hugendubel
6
+
7
+
8
+
9
+
10
+
11
+ Nach der englischen Übersetzung von Arthur Waley übertragen von Georgette Boner und Maria Nils.
12
+
13
+ 1980 © der deutschen Ausgabe Heinrich Hugendubel Verlag, München, Titel der Originalausgabe MONKEY © George Allen & Unwin Ltd. London
14
+
15
+ Alle Rechte vorbehalten
16
+
17
+ Umschlaggestaltung: Dieter Bonhorst, mit einer Illustration von Maja Weber
18
+
19
+ Druck und Bindung: May & Co., Darmstadt
20
+
21
+ ISBN 3 88034 9
22
+
23
+ Printed in Germany
24
+
25
+
26
+
27
+ * * *
28
+
29
+
30
+
31
+ Die Rechtschreibung und Interpunktion der Originalausgabe sind unverändert. Offensichtliche Fehler wurden stillschweigend korrigiert.
32
+
33
+
34
+
35
+
36
+
37
+ Inhalt
38
+
39
+
40
+ Vorwort zur englischen Ausgabe von Arthur Waley
41
+
42
+ 1. Kapitel: Die Geburt des magischen Affen Monkey
43
+
44
+ 2. Kapitel: Monkey’s Lehrjahre beim Patriarchen
45
+
46
+ 3. Kapitel: Die Waffen des Drachenkönigs; Monkey streicht seinen Namen aus der Liste Yamas, des Königs der Toten und erregt den Zorn des Jade-Kaisers
47
+
48
+ 4. Kapitel: Monkey erhält den Posten eines Pferdeknechts im Himmel und kehrt wegen dieser Beleidigung schnellstens auf die Erde zurück
49
+
50
+ 5. Kapitel: ›Der Große Weise Himmelsebenbürtige‹
51
+
52
+ 6. Kapitel: Der Zauberer Erh-lang und Lao-tsu nehmen Monkey gefangen
53
+
54
+ 7. Kapitel: Monkey verliert eine Wette gegen Buddha
55
+
56
+ 8. Kapitel: Ein Bote für die Heiligen Schriften
57
+
58
+ 9. Kapitel: Die Gesetze des Karma
59
+
60
+ 10. Kapitel: Ein gebrochenes Versprechen
61
+
62
+ 11. Kapitel: Der Kaiser vor dem Totengericht
63
+
64
+ 12. Kapitel: Tripitaka erhält den Auftrag, die Heiligen Schriften aus Indien zu holen
65
+
66
+ 13. Kapitel: Der Tod von Tripitakas Reisegefährten
67
+
68
+ 14. Kapitel: Tripitaka hebt den Bann von Monkey auf und macht ihn zu seinem Reisegefährten
69
+
70
+ 15. Kapitel: Monkeys Kampf mit dem verwunschenen Drachen
71
+
72
+ 16. Kapitel: Monkey vertreibt einen ›Unhold‹
73
+
74
+ 17. Kapitel: Der ›Unhold‹ Pigsy beschließt, Tripitaka und Monkey zu begleiten
75
+
76
+ 18. Kapitel: ›Das Ungeheuer vom Strom‹ schließt sich der Pilgerfahrt an
77
+
78
+ 19. Kapitel: Der Geist des toten Königs bittet Monkey um seine Hilfe
79
+
80
+ 20. Kapitel: Die durch bösen Zauber verwunschene Stadt Kräh-Hahn
81
+
82
+ 21. Kapitel: Lao-tsu’s Elexier erweckt den toten König wieder zum Leben; der falsche Zauberer wird in seine ursprüngliche Gestalt, einen Löwen, zurückverwandelt
83
+
84
+ 22. Kapitel: 500 Buddhisten werden von Monkey aus der Sklaverei befreit
85
+
86
+ 23. Kapitel: Monkey verulkt Taoisten, die einen Gottesdienst feiern
87
+
88
+ 24. Kapitel: Eine Wette mit tödlichem Ausgang
89
+
90
+ 25. Kapitel: Menschenopfer
91
+
92
+ 26. Kapitel: Der Flußkönig stellt Tripitaka eine Falle
93
+
94
+ 27. Kapitel: Göttliche Intervention und Rettung Tripitakas
95
+
96
+ 28. Kapitel: Tripitaka erhält die Heiligen Schriften
97
+
98
+ 29. Kapitel: Die Heimreise
99
+
100
+ 30. Kapitel: Willkommensfest in Ch’ang-an
101
+
102
+ Arthur Waley zur deutschen Ausgabe
103
+
104
+
105
+
106
+
107
+
108
+ Vorwort zur englischen Ausgabe von Arthur Waley
109
+
110
+
111
+ Die vorliegende Erzählung wurde von Wu Ch’êng-ên aus Huai-an in Kiangsu niedergeschrieben. Seine genauen Daten sind nicht bekannt. Doch scheint er zwischen 1505 und 1580 n. Chr. gelebt und sich als Dichter eines gewissen Ruhmes erfreut zu haben. Einige seiner eher unbedeutenden Verse sind in einer Anthologie der Ming-Dichtung überliefert.
112
+
113
+ Tripitaka, dessen Pilgerfahrt nach Indien das Thema der Erzählung bildet, ist eine wirkliche Person, in der Geschichte besser bekannt als Hsüan Tsang. Er lebte im siebten Jahrhundert n. Chr. Über seine Reise gibt es eingehende zeitgenössische Berichte. Bereits im zehnten Jahrhundert, und vermutlich schon früher, war Tripitakas Pilgerfahrt Gegenstand eines ganzen Zyklus phantastischer Legenden. Seit dem dreizehnten Jahrhundert sind diese Legenden ständig auf der chinesischen Bühne dargestellt worden. Wu Ch’êng-ên standen daher für seine lange Märchenerzählung eine Menge Bausteine zur Verfügung. Das ursprüngliche Buch ist von unendlichem Umfang und wird gewöhnlich in gekürzten Fassungen gelesen. Bei diesen Bearbeitungen blieb die ursprüngliche Anzahl der einzelnen Episoden bestehen; ihre Länge jedoch wurde, besonders durch Streichen von Dialogen, erheblich gekürzt. — Ich habe meist das entgegengesetzte Prinzip angewandt, indem ich zahlreiche Episoden ausließ, die beibehaltenen jedoch nahezu ungekürzt übersetzte, mit Ausnahme der meisten eingestreuten, für eine Übertragung ins Englische ungeeigneten Verse.
114
+
115
+ Monkey ist ein wahrhaft einzigartiges Werk in seiner Verbindung von Schönheit mit Ungereimtheit, von Tiefe mit Unsinn. Folklore, Allegorie, Religion, Geschichte, antibürokratische Satire und reine Poesie — dies sind die außerordentlich verschiedenen Elemente, aus denen das Buch sich zusammenfügt. Die Bürokraten der Erzählung sind Heilige im Himmel, und man könnte auf die Vermutung kommen, daß die Satire sich noch eher gegen die Religion als gegen die Bürokratie wandte. Dem ist aber nicht so. Es ist nämlich eine in China geläufige Anschauung, daß die Hierarchie im Himmel ein Spiegelbild der Regierungsform auf Erden sei. Hier wie so oft lassen die Chinesen die Katze aus dem Sack, wo andere Völker uns Rätsel aufgeben. Es ist häufig als Theorie geltend gemacht worden, daß eines Volkes Götter die Spiegelung seiner irdischen Regenten darstellen. In den meisten Fällen bleibt die Ableitung im Dunkeln. Im Volksglauben der Chinesen jedoch gibt es keinerlei Doppelsinn. Der Himmel ist einfach das gesamte bürokratische System, leibhaftig ins Empyreum versetzt.
116
+
117
+ Was die Allegorie anbelangt, so versinnbildlicht Tripitaka unverkennbar den ängstlich und beflissen durch die Schwierigkeiten des Lebens tappenden Menschen, während Monkey die ewige Unruhe des Genies personifiziert. Pigsy wiederum symbolisiert offensichtlich die physischen Begierden, primitive Kraft und eine Art schwerfälliger Geduld. Sandy ist rätselhafter. Die Kommentatoren sagen, er stelle ch’êng dar, was gewöhnlich mit ›Redlichkeit‹ übersetzt wird, allein noch eher etwas im Sinne von ›Integrität des Herzens‹ bedeutet. Er kam nicht als nachträglicher Einfall in die Erzählung, erscheint er doch bereits in einigen der frühesten Fassungen der Legende. Aber es muß zugegeben werden, daß sein Bild, obgleich für die Erzählung in unerklärlicher Weise nötig, dennoch in den Umrissen seltsam undeutlich und farblos bleibt.
118
+
119
+ Auszüge des vorliegenden Buches sind erschienen in Giles’ History of Chinese Literature und in Timothy Richard’s Mission to Heaven, zu einer Zeit, als nur die gekürzten Fassungen bekannt waren. Eine zugängliche, doch recht ungenaue Beschreibung des Werkes gibt Helen Hayes in A Buddhist Pilgrim’s Progress (Wisdom of the East Series). Ferner existiert eine recht freie japanische Paraphrase von verschiedenen Händen, mit einer 1806 datierten Einleitung des bekannten Novellisten Bakin und Illustrationen, deren einige von Hokusai stammen. Einer der Übersetzer, Hokusais Schüler Gakutei, gesteht, daß er keine Kenntnis von der Chinesischen Umgangssprache hatte, als er die Arbeit unternahm.
120
+
121
+ Der meiner Übersetzung zugrundeliegende Text erschien 1921 in der Oriental Press, Shanghai, mit einer ausführlichen und gelehrten Einleitung von Dr. Hu Shih, derzeitigem chinesischen Botschafter in Washington.
122
+
123
+
124
+
125
+
126
+
127
+ ERSTES KAPITEL
128
+
129
+
130
+ Die Geburt des magischen Affen Monkey
131
+
132
+ Es war ein Fels, den hatten seit der Erschaffung der Welt die reinen Essenzen des Himmels, die feinen Düfte der Erde, die Kraft der Sonne und die Anmut des Mondlichts solange umspielt und umwirkt, bis er magisch geschwängert eines Tages auseinanderbarst und ein steinernes Ei von der Größe eines Spielballs gebar. Vom Winde befruchtet entwickelte es sich zu einem Affen aus Stein, vollkommen an Leib und Gliedern. Alsbald lernte dieser Affe klettern und laufen; doch das erste, was er tat, war, sich nach allen vier Himmelsrichtungen zu verneigen. Dabei schoß ein stahlhelles Licht aus seinen Affenaugen, das bis zum Palast des Polarsterns leuchtete. Ob diesem Lichtstrahl erstaunte der Jade-Kaiser, der im Wolkenpalast der Goldenen Pforten, in der Schatzkammer der Heiligen Nebel, umgeben von seinen Ministern thronte. Als er das seltsame Licht aufblitzen sah, befahl er Tausend-Meilen-Auge und In-Alle-Winde-Ohr die Pforte des Südlichen Himmels aufzutun und hinauszuspähen. Auf sein Geheiß begaben sich diese beiden Hauptleute zur Pforte und spähten so scharf und horchten so gut, daß sie bald darauf berichten konnten: »Dieses stahlhelle Licht kommt von den Grenzen des kleinen Landes Ao-lai, das im Osten des Heiligen Erdteils liegt, vom Berge der Blumen und Früchte. Auf diesem Berge ist ein Zauberfelsen, der ein Ei gebar. Das Ei verwandelte sich in einen Affen aus Stein, und als er sich nach den vier Himmelsrichtungen verneigte, schoß ein stahlhelles Licht aus seinen Augen, dessen Strahl bis zum Palast des Polarsterns blitzte. Aber jetzt ist der Affe am Trinken und das Licht am Verdämmern.«
133
+
134
+ Der Jade-Kaiser geruhte einen gnädigen Standpunkt einzunehmen: »Die Geschöpfe in der Welt dort unten«, sagte er, »wurden aus den Essenzen des Himmels und der Erde gebildet, und nichts, was dort geschieht, sollte uns wundern.« Der Affe ging, rannte, hüpfte und sprang über die Hügel, stillte seinen Hunger an Gras und Sträuchern, löschte seinen Durst in Bächen und Quellen, pflückte Bergblumen und hielt Ausschau nach Früchten. Wolf, Panther und Tiger waren seine Gefährten, das Reh und das Zibet seine Freunde, Gibbons und Paviane seine Verwandten. Nachts ruhte er unter Felsenklippen, tagsüber streifte er umher zwischen Gipfeln und Schluchten. An einem heißen Morgen badeten er und die andern Affen, nachdem sie im Schatten einiger Föhren gespielt hatten, in einem Bergbach. Seht, wie die Wasser hüpfen und purzeln wie rollende Melonen!
135
+
136
+ Ein alter Spruch lautet: ›Vögel haben ihre Vogelsprache, Tiere ihre Tiersprache.‹ Die Affen sagten: »Keiner von uns weiß, woher dieser Bach kommt. Wäre es nicht lustig, da wir heute nichts besonderes vorhaben, bis zu seiner Quelle hinaufzugehen?« Unter Freudenjauchzern eilte die ganze Schar, die Söhne mitschleifend, die Töchter auf den Schultern tragend, nach den älteren und jüngeren Geschwistern rufend, den Bach entlang und kletterte die steilen Hänge hinauf bis zur Quelle. Nun standen sie vor dem Vorhang eines großen Wasserfalls.
137
+
138
+ Alle Affen patschten in die Hände und riefen: »Feines Wasser, feines Wasser! Und sich vorzustellen, daß es in einer Höhle tief unter dem Fuße des Berges anfängt und den ganzen weiten Weg bis ins Große Meer fließt! Wer von uns wäre kühn genug, durch diesen Vorhang zu springen und bis dorthin vorzudringen, wo das Wasser herkommt! Wenn er unversehrt zu uns zurückkehrt, soll er unser König sein!« Dreimal erscholl dieser Ruf. Da sprang plötzlich der Steinerne Affe aus der Schar und rief mit lauter Stimme: »Ich wage es, ich wage es!« Und seht! Er kneift die Augen zusammen, duckt sich und springt mit einem Satz mitten durch den Wasserfall. Als er die Augen öffnete, erblickte er um sich herum trockene Erde. Vor ihm dehnte sich leuchtend und glitzernd eine große Brücke. Er besah sie genau, sie war aus blankem Eisen. Das Wasser kam aus einem Loch im Felsen und füllte den Raum unter dem Brückenbogen aus. Monkey, der Steinerne Affe, kletterte auf die Brücke. Um sich schauend bemerkte er etwas, das einem Hause glich. Da gab es steinerne Sitze und Ruhelager, Tische mit steinernen Schüsseln und Bechern. Er hüpfte zurück auf den Brückenbogen und entdeckte auf der Klippe in großen eckigen Buchstaben die Inschrift: »Diese Höhle des Wasservorhangs im gesegneten Lande des Berges der Blumen und Früchte führt zum Himmel.« Monkey war außer sich vor Freude. Er eilte zurück, duckte sich abermals, schloß die Augen und sprang durch den Wasservorhang.
139
+
140
+ »So ein Glück«, rief er, »so ein Glück!« »Wie sieht es auf der andern Seite aus?« fragten die Affen sich um ihn drängend. »Ist das Wasser sehr tief?« »Da ist gar kein Wasser«, sagte der Steinerne Affe. »Eine eiserne Brücke ist da, und daneben ein vom Himmel geschenkter Erdenwinkel. Dort sollten wir leben.« »Wie kommst du auf den Gedanken, man könnte dort leben?« fragten die Affen. »Das Wasser«, erklärte der Steinerne Affe, »fließt aus einem Loch im Felsen und füllt den Raum unter der Brücke. Neben ihr gibt es Blumen und Bäume und ein Haus; darinnen sind Tische, Becher, Schüsseln, Ruhelager, Stühle, alles aus Stein. Wir könnten uns dort wirklich recht gemütlich einrichten. Es ist Platz genug für Hunderte und Tausende der Unsrigen, Junge und Alte. Kommt, laßt uns alle dorthin übersiedeln; wir werden bei jedem Wetter herrlich geborgen sein.« »Geh du voran und zeig uns den Weg!« riefen die Affen begeistert. Wiederum schloß Monkey seine Augen und war mit einem Satze drüben. »Vorwärts, kommt alle!« schrie er zurück. Die Kühneren sprangen sogleich; die Zaghafteren streckten die Köpfe vor und zogen sie wieder zurück, kratzten sich in den Ohren, rieben sich die Wangen, und mit einem Mal sprang die ganze Schar unter lautem Aufkreischen nach vorne. Bald darauf bemächtigten sie sich der Schüsseln, rissen die Becher an sich, drängten um den Herd und rauften um die Betten, schleppten Gegenstände herum oder schoben sie hin und her; kurz sie benahmen sich, wie es von der mutwilligen Affen-Natur nicht anders zu erwarten ist; keinen Augenblick gönnten sie sich Ruhe, bis sie zuletzt völlig erschöpft waren. Da setzte Monkey sich auf einen erhöhten Sitz und sagte: »Meine Herren! ›Mit jemandem, dessen Wort man nicht trauen kann, ist nichts anzufangen!‹* Ihr verspracht, wer immer von uns es fertig brächte, unversehrt durch den Wasserfall und zurück zu kommen, sollte euer König sein. Ich bin nicht nur gekommen, gegangen und wiedergekommen, sondern habe euch überdies einen behaglichen Schlafplatz entdeckt und euch in die beneidenswerte Lage versetzt, Hausbesitzer zu sein. Warum verneigt ihr euch nicht vor mir als eurem König?«
141
+
142
+ * Analekten des Confucius, II, 22.
143
+
144
+ Also an ihr Versprechen erinnert, preßten die Affen die Handflächen zusammen, fielen auf die Knie, nach Alter und Würde in einer Linie ausgerichtet, und riefen, sich beflissen verneigend: »Großer König, auf tausend Jahre!« Danach legte der Steinerne Affe seinen ursprünglichen Namen ab und nannte sich als König ›Schöner König Monkey‹. Er machte verschiedene Affen, Gibbons und Paviane zu seinen Ministern und Beamten. Tagsüber schweiften sie alle auf dem Berg der Blumen und Früchte umher; nachts schliefen sie in der Höhle des Wasservorhangs. Sie lebten in vollkommener Eintracht und Harmonie, ohne sich unter die Vögel oder Tiere zu mischen, in Unabhängigkeit und Glückseligkeit.
145
+
146
+ Einige hundert Jahre lang hatte der Affenkönig dieses unbeschwerte Dasein genossen, als ihn während eines Festes, an dem alle Affen teilnahmen, jäh tiefe Traurigkeit befiel und er in Tränen ausbrach. Da reihten sich seine Untertanen vor ihm auf, verneigten sich und sprachen: »Was betrübt Eure Majestät so sehr?« »Augenblicklich«, antwortete der König, »habe ich keinen Grund, unglücklich zu sein. Aber mir ahnt Böses für die Zukunft, und das bekümmert mich.« »Eure Majestät ist sehr schwer zu befriedigen«, sagten die Affen lachend. »Tagtäglich begehen wir fröhliche Feste auf Zauberbergen, in gesegneten Erdenwinkeln, in uralten Grotten und auf heiligen Inseln. Wir sind weder dem Einhorn noch dem Phoenix untertan, noch beugen wir uns den Geboten eines Menschenkönigs. Ist nicht solche Freiheit ein unermeßlicher Segen? Was mag in Eurer Majestät diese trüben Ahnungen erregen?« »Es stimmt«, antwortete Monkey, »daß ich heute an kein Gesetz eines Menschenkönigs gebunden bin, noch Tier oder Vogel zu fürchten habe. Aber die Zeit wird kommen, da ich alt und schwach werde. Yama, der König des Todes, liegt heimlich auf der Lauer, mich zu verderben. Gibt es kein Mittel, das mir erlaubte, statt auf Erden wiedergeboren zu werden, unter den himmlischen Wesen ewig zu leben?«
147
+
148
+ Als die Affen das vernahmen, bedeckten sie ihr Gesicht mit den Händen und weinten, denn jeder gedachte seines eigenen Todes. Doch seht! Aus der Schar hüpft ein ganz gewöhnlicher Affenwicht und ruft mit lauter Stimme: »Ist es dies, was Eure Majestät betrübt, so bedeutet es, daß Euer Herz sich der Religion geöffnet hat. Unter allen Geschöpfen gibt es drei Arten, die Yama, dem König des Todes, nicht untertan sind.« »Und weißt du auch, welche?« fragte Monkey. »Buddhas, Unsterbliche und Weise«, antwortete er. »Diese Drei stehen jenseits des sich drehenden Rades, jenseits von Geburt und Zerstörung. Sie sind ewig, wie Himmel und Erde, Hügel und Fluß.« »Wo findet man sie?« fragte Monkey. »Hier auf der Erde«, sagte der Affe, »in uralten Höhlen, zwischen verzauberten Hügeln.«
149
+
150
+ Der König war entzückt über diese Nachricht. »Morgen werde ich euch Lebewohl sagen, den Berg hinuntergehen, wie eine Wolke an die Grenzen des Meeres wandern, weit weg ans Ende der Welt, bis ich diese drei Arten von Unsterblichen gefunden habe. Von ihnen will ich lernen, ewige Jugend zu bewahren und dem Verhängnis des Todes zu entrinnen.« Dieser Entschluß war es, der ihn dazu führte, aus dem Netze der Reinkarnation zu springen und endlich sich in den Großen Weisen Monkey, den Himmelsebenbürtigen, zu wandeln. Das Affen-Volk klatschte in die Hände und rief laut: »Herrlich! Herrlich! Morgen werden wir die Hügel nach Früchten und Beeren absuchen und ein großes Abschiedsmahl zu Ehren unseres Königs veranstalten.«
151
+
152
+ Am nächsten Tage gingen sie pflichtgemäß und sammelten Pfirsiche und seltene Früchte, Bergkräuter, Gelbsamen, Wurzelknollen, Orchideen, seltsame Pflanzen und Blumen aller Arten, schmückten Steintische und Bänke und stellten wundersame Speisen und Getränke auf. Sie setzten ihren König an den Ehrenplatz, sich selber nach Alter und Rang. Blumen und Früchte brachten sie ihm zum Geschenk, und der Ehrenbecher wanderte von Hand zu Hand. Den ganzen Tag über tranken sie. Am nächsten Morgen in der Frühe erhob sich der König und sagte: »Kinder, schneidet Föhrenholz und baut mir ein Floß; sucht ein großes Bambusrohr als Ruderstange und macht mir ein paar Früchte und dergleichen zurecht. Ich möchte aufbrechen.«
153
+
154
+ Ganz allein bestieg er das Floß, stieß kräftig ab und fuhr weiter und weiter, geradeswegs ins Meer hinaus, bis er, von günstigen Winden getrieben, an die Gestade der Südlichen Welt gelangte. Das Schicksal war ihm hold; vom Augenblick an, da er das Floß betreten hatte, wehte tagelang ein heftiger Südost und trug ihn bis zum nordwestlichen Ufer an den Grenzen der Südlichen Welt. Er prüfte das Wasser mit seiner Stange und stellte fest, daß es seicht war; da verließ er das Floß und kletterte an die Küste. Am Strande waren Leute, die fischten, wilde Gänse schossen, Austern schöpften, Salz trockneten. Er lief auf sie zu und begann vor lauter Übermut absonderliche Possen zu treiben. Vor Schreck ließen sie ihre Körbe und Netze fallen und rannten davon, als gälte es ihr Leben. Einen von ihnen, der an seinem Platz blieb, packte Monkey, riß ihm die Kleider vom Leibe und schlüpfte selber hinein. Also ausstaffiert stolzierte er durch Städte und Dörfer, auf Märkten und in Basaren umher und ahmte Sitten und Sprache der Leute nach. Sein Herz aber lechzte einzig danach, die Unsterblichen zu finden und von ihnen das Geheimnis ewiger Jugend zu erfahren. Doch er sah die Kinder der Welt alle von der Sucht nach Gewinn oder Ruhm ergriffen; kein Einziger war unter ihnen, der sich um das Ende, das ihm beschieden sein sollte, gekümmert hätte. So suchte Monkey nach dem Wege zur Unsterblichkeit, doch fand er ihn nicht.
155
+
156
+ Während acht oder neun Jahren zog er von Stadt zu Stadt, von Ort zu Ort, bis er eines Tages an den Westlichen Ozean gelangte. Es schien ihm gewiß, daß es jenseits dieses Ozeans Unsterbliche gäbe, und so machte er sich ein Floß wie das früher benutzte. Er trieb hinaus über den Westlichen Ozean, bis er zum Westlichen Erdteil kam, wo er landete. Und als er sich eine Weile umgesehen hatte, bemerkte er einen sehr hohen und schönen Berg mit dichtbewaldetem Fuße. Er fürchtete sich nicht vor Wölfen, Tigern oder Panthern und stieg hinauf bis zum Gipfel. Um sich blickend vernahm er mit einem Male aus der Tiefe der Wälder eine Menschenstimme. Gespannt horchte er.
157
+
158
+ Jemand sang ein Lied, und er konnte die Worte unterscheiden:
159
+
160
+ Pläne nicht plan’ ich,
161
+
162
+ Ränke nicht schmied’ ich;
163
+
164
+ Eins sind mir Schande und Ruhm.
165
+
166
+ Langsam verlängert
167
+
168
+ Einfaches Leben Mir meine Tage.
169
+
170
+ Die mir begegnen auf meinem Wege,
171
+
172
+ Ein wie der andre, Unsterbliche sind es,
173
+
174
+ Die von erhabenen Sitzen gelassen
175
+
176
+ Schriften des Gelben Hofes erklären.
177
+
178
+
179
+
180
+ Als Monkey diese Worte hörte, wurde er sehr froh. »Es muß also irgendwo hier herum Unsterbliche geben«, überlegte er. Er sprang tief in den Wald hinein und gewahrte, vorsichtig umherspähend, daß der Sänger ein Holzfäller war, der Reisig sammelte. »Ehrwürdiger Unsterblicher«, sagte Monkey vortretend: »Euer Jünger erhebt seine Hände.« Der Holzfäller war so erstaunt, daß er seine Axt fallen ließ. »Ihr irrt Euch«, antwortete er, sich umwendend und den Gruß erwidernd. »Ich bin nur ein elender, hungriger Holzfäller. Wie kommt Ihr darauf, mich ›Unsterblicher‹ anzureden?« »Wenn Ihr kein Unsterblicher seid«, sagte Monkey, »warum habt Ihr geredet, als wäret Ihr einer?« »Was hab’ ich denn geredet?« fragte der Holzfäller, »das so klang, als wäre ich ein Unsterblicher?« »Wie ich an den Waldrand kam«, erklärte Monkey, »hörte ich Euch singen:
181
+
182
+ Die mir begegnen auf meinem Wege,
183
+
184
+ Ein wie der andre, Unsterbliche sind es,
185
+
186
+ Die von erhabenen Sitzen gelassen
187
+
188
+ Schriften des Gelben Hofes erklären.
189
+
190
+
191
+
192
+ Das sind geheime taoistische Texte. Was könntet Ihr anderes sein als ein Unsterblicher?« »Ich will Euch nicht täuschen«, entgegnete der Holzfäller. »Dies Lied hat mich in der Tat ein Unsterblicher gelehrt, der nicht weit von meiner Hütte wohnt. Er sah, daß ich hart für meinen Lebensunterhalt arbeiten und viel Mühsal ertragen muß; so riet er mir, wenn etwas mich bedrücke, die Worte dieses Liedes vor mich herzusagen. Es würde mich trösten und mir in meinen Schwierigkeiten helfen. Eben jetzt habe ich mich aufgeregt und darum das Lied gesungen. Ich hatte keine Ahnung, daß Ihr mir zuhörtet.«
193
+
194
+ »Wenn der Unsterbliche hier in der Nähe wohnt«, sagte Monkey, »wie kommt es, daß du nicht sein Schüler geworden bist? Hättest du nicht von ihm lernen können, niemals alt zu werden?« »Ich habe ein hartes Leben«, antwortete der Holzfäller. »Mit acht oder neun Jahren verlor ich meinen Vater. Ich habe weder Brüder noch Schwestern und muß ganz allein meine verwitwete Mutter unterstützen. Da gab es nichts als schwere Arbeit von früh bis spät. Nun ist meine Mutter alt, und ich getraue mich nicht, sie allein zu lassen. Der Garten ist verwildert, und wir haben weder genug zu essen noch anzuziehen. Das äußerste, was ich leisten kann, ist zwei Bündel Brennholz schneiden, sie zu Markte tragen und mit den paar Münzen, die ich dafür erhalte, einige Handvoll Reis kaufen, den ich selber zubereite und meiner greisen Mutter vorsetze. Ich habe keine Zeit hinzugehen und Magie zu lernen.« »Aus deiner Erzählung«, sagte Monkey, »ersehe ich, daß du ein guter und pflichtgetreuer Sohn bist. Deine Frömmigkeit wird gewiß belohnt werden. Alles, worum ich dich bitte, ist, mir zu zeigen, wo der Unsterbliche wohnt, denn es drängt mich ihn aufzusuchen.«
195
+
196
+ »Er wohnt ganz in der Nähe«, sagte der Holzfäller. »Dieser Berg wird der Berg der Heiligen Terrasse genannt, und oben ist die Höhle des Schiefen Mondes und der Drei Sterne. In dieser Höhle lebt ein Unsterblicher, der Patriarch Subodhi. Seinerzeit hatte er unzählige Schüler; gegenwärtig genießen etwa dreißig bis vierzig seinen Unterricht. Du mußt auf diesem Pfad acht oder neun Meilen in südlicher Richtung gehen, dann kommst du zu seiner Wohnung.« »Verehrter Bruder«, bat Monkey, den Holzfäller am Arm packend, »komm mit! Und wenn der Besuch mir von Nutzen ist, will ich nicht vergessen, daß du mir den Weg gezeigt hast.« »Manche Leute sind doch wirklich schwer von Begriff«, knurrte der Holzfäller. »Habe ich dir nicht eben erzählt, weshalb ich nicht fortkann? Was würde aus meiner Arbeit, wenn ich mit dir ginge? Wer würde meiner alten Mutter das Essen geben? Nein, ich muß weiter mein Holz schneiden, und du mußt deinen Weg allein finden.«
197
+
198
+ So blieb Monkey nichts anderes übrig als Lebewohl zu sagen. Er verließ den Wald, fand den Pfad, ging etwa sieben oder acht Meilen hügelaufwärts und stieß wahrhaftig auf eine Höhlenwohnung. Die Türe war jedoch verschlossen. Ringsum herrschte Stille; nichts verriet die Gegenwart eines Lebewesens. Den Kopf wendend, erblickte er auf der Spitze des Felsens eine steinerne, etwa dreißig Fuß hohe und acht Fuß breite Tafel mit der in riesigen Buchstaben prangenden Inschrift: ›Höhle des Schiefen Mondes und der Drei Sterne auf dem Berge der Heiligen Terrasse‹. »Die Leute hierzulande«, sagte Monkey, »sind in der Tat sehr zuverlässig. Es gibt also wirklich solch einen Berg und solch eine Höhle!« Er sah sich eine Weile um, getraute sich aber nicht an die Türe zu klopfen. Statt dessen hüpfte er auf eine Föhre und fing an Föhrensamen zu essen und zwischen den Zweigen herumzuspielen. Nach einiger Zeit hörte er jemanden rufen. Die Tür der Höhle ging auf, und ein wunderschöner Elfenjüngling trat heraus, von Erscheinung gänzlich anders als die gewöhnlichen Knaben, die Monkey bisher gesehen hatte. Er rief: »Wer untersteht sich, die Ruhe hier draußen zu stören?« Monkey hüpfte von seinem Baume, trat näher, verneigte sich und sagte: »Schöner Elfenknabe, ich bin ein Schüler, der gekommen ist Unsterblichkeit zu erlernen. Nicht im Traume möchte ich gestört haben.« »Du ein Schüler!« lachte der Knabe. »Freilich«, beteuerte Monkey. »Mein Meister unterrichtet eben«, sagte der Knabe. »Aber ehe er die Aufgabe stellte, hieß er mich an die Türe gehen und nachsehen, ob noch jemand am Unterricht teilzunehmen wünsche. Ich nehme an, er meinte dich.« »Selbstverständlich meinte er mich«, bestätigte Monkey. »So folge mir denn«, sagte der Knabe. Monkey machte sich schön zurecht und betrat, dem Jüngling folgend, die Höhle. Weite Räume taten sich vor ihnen auf. Sie gingen von Gemach zu Gemach, durch luftige Hallen, unzählige Gänge und Zellen, bis sie zu einer Plattform aus grünem Jadestein kamen, auf welcher der Patriarch Subodhi im Kreise von dreißig geringeren Unsterblichen thronte. Monkey fiel vor ihm nieder, schlug seinen Kopf dreimal auf den Boden und flüsterte: »Meister, Meister! Empfangt als Lehrer den ehrerbietigen Gruß Eures Schülers!« »Von wannen kommst du?« fragte der Patriarch. »Nenne mir deine Heimat und deinen Namen; danach erweise mir nochmals die Ehrerbietung.« »Ich komme aus der Höhle des Wasservorhanges«, antwortete Monkey, »auf dem Berge der Blumen und Früchte im Lande Ao-lai.« »Fort mit dir!« schrie der Patriarch. »Ich kenne die Leute dort; es sind Gauner und Schwindler. Es taugt nicht, daß einer von ihnen sich anmaßt, Erleuchtung zu erstreben.« Mehrmals heftig sich verneigend beteuerte Monkey: »Das ist kein Schwindel. Ich sage Euch nichts als die reine Wahrheit.« »Wenn du vorgibst die Wahrheit zu sprechen«, entgegnete der Patriarch, »wie wagst du zu behaupten, daß du von Ao-lai kommst? Zwischen dort und hier liegen zwei Ozeane und der gesamte Südliche Erdteil. Wie bist du hierher gekommen?« »Ich trieb über die Ozeane und durchwanderte die Länder mehr als zehn Jahre«, sagte Monkey, »bis ich endlich hier war.« »Nun gut«, meinte der Patriarch, »wenn du es gemütlich genommen hast, wäre es nicht ganz ausgeschlossen. Doch sage mir, aus welcher Familie stammst du? Wie nennt sie sich?« »Ich bin aus keiner Familie«, erwiderte Monkey, »habe weder Vater noch Mutter.« »Was du nicht sagst!« brummte der Patriarch, »bist du vielleicht auf einem Baume gewachsen?« »Das nicht gerade«, erklärte Monkey. »Ich komme aus einem Stein. Es gab einen verzauberten Felsen auf dem Berg der Blumen und Früchte. Als seine Zeit erfüllt war, barst er, und ich war da.«
199
+
200
+ »Wir müssen dir einen Schulnamen geben«, sagte der Patriarch. »Wir haben zwölf Worte, die wir in diesen Namen verwenden, je nach dem Grad des Schülers. Du kommst in den zehnten Grad.« »Welches sind die zwölf Worte?« fragte Monkey. »Sie heißen: Weit, Groß, Weise, Klug, Wahr, Ausgeglichen, Natur, Ozean, Lebhaft, Gewahr, Vollkommen und Erleuchtet. Da du zum zehnten Grad gehörst, muß dein Name das Wort Gewahr enthalten. Wie wäre: Der Leere Gewahr?« »Herrlich«, lachte Monkey. »Von nun an heiße ich Der Leere Gewahr.«
201
+
202
+ So wurde dies sein Name in der Religion.
203
+
204
+ Und wenn Ihr nicht wißt, ob er, ausgerüstet mit diesem Namen, am Ende Erleuchtung erlangte oder nicht, so hört, was Euch im nächsten Kapitel erzählt wird.
205
+
206
+
data/xiyouji-ch1-zh.txt ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 《西游记》
2
+ TXT小说天堂 https://www.xstt5.com,最有文艺气息的文学网站,提供经典的文学名著、武侠小说、言情小说、人文社科类书籍在线阅读,所有TXT电子书手机免费下载阅读,我们提供给您的小说不求最多,但求最经典最完整
3
+
4
+
5
+
6
+ 《》目录 第一回 灵根育孕源流出 心性修持大道生
7
+
8
+ 诗曰:
9
+
10
+ 混沌未分天地乱,茫茫渺渺无人见。
11
+
12
+ 自从盘古破鸿蒙,开辟从兹清浊辨。
13
+
14
+ 覆载群生仰至仁,发明万物皆成善。
15
+
16
+ 欲知造化会元功,须看西游释厄传。
17
+
18
+ 盖闻天地之数,有十二万九千六百岁为一元。将一元分为十二会,乃子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥之十二支也。每会该一万八百岁。且就一日而论:子时得阳气,而丑则鸡鸣;寅不通光,而卯则日出;辰时食后,而巳则挨排;日午天中,而未则西蹉;申时晡而日落酉;戌黄昏而人定亥。譬于大数,若到戌会之终,则天地昏蒙而万物否矣。再去五千四百岁,交亥会之初,则当黑暗,而两间人物俱无矣,故曰混沌。又五千四百岁,亥会将终,贞下起元,近子之会,而复逐渐开明。邵康节曰:“冬至子之半,天心无改移。一阳初动处,万物未生时。”到此,天始有根。再五千四百岁,正当子会,轻清上腾,有日,有月,有星,有辰。日、月、星、辰,谓之四象。故曰,天开于子。又经五千四百岁,子会将终,近丑之会,而逐渐坚实。易曰:“大哉乾元!至哉坤元!万物资生,乃顺承天。”至此,地始凝结。再五千四百岁,正当丑会,重浊下凝,有水,有火,有山,有石,有土。水、火、山、石、土谓之五形。故曰,地辟于丑。又经五千四百岁,丑会终而寅会之初,发生万物。历曰:“天气下降,地气上升;天地交合,群物皆生。”至此,天清地爽,阴阳交合。再五千四百岁,正当寅会,生人,生兽,生禽,正谓天地人,三才定位。故曰,人生于寅。
19
+
20
+ 感盘古开辟,三皇治世,五帝定伦,世界之间,遂分为四大部洲:曰东胜神洲,曰西牛贺洲,曰南赡部洲,曰北俱芦洲。这部书单表东胜神洲。海外有一国土,名曰傲来国。国近大海,海中有一座山,唤为花果山。此山乃十洲之祖脉,三岛之来龙,自开清浊而立,鸿蒙判后而成。真个好山!有词赋为证。赋曰:
21
+
22
+ 势镇汪洋,威宁瑶海。势镇汪洋,潮涌银山鱼入穴;威宁瑶海,波翻雪浪蜃离渊。木火方隅高积上,东海之处耸崇巅。丹崖怪石,削壁奇峰。丹崖上,彩凤双鸣;削壁前,麒麟独卧。峰头时听锦鸡鸣,石窟每观龙出入。林中有寿鹿仙狐,树上有灵禽玄鹤。瑶草奇花不谢,青松翠柏长春。仙桃常结果,修竹每留云。一条涧壑藤萝密,四面原堤草色新。正是百川会处擎天柱,万劫无移大地根。那座山,正当顶上,有一块仙石。其石有三丈六尺五寸高,有二丈四尺围圆。三丈六尺五寸高,按周天三百六十五度;二丈四尺围圆,按政历二十四气。上有九窍八孔,按九宫八卦。四面更无树木遮阴,左右倒有芝兰相衬。盖自开辟以来,每受天真地秀,日精月华,感之既久,遂有灵通之意。内育仙胞,一日迸裂,产一石卵,似圆球样大。因见风,化作一个石猴,五官俱备,四肢皆全。便就学爬学走,拜了四方。目运两道金光,射冲斗府。惊动高天上圣大慈仁者玉皇大天尊玄穹高上帝,驾座金阙云宫灵霄宝店,聚集仙卿,见有金光焰焰,即命千里眼、顺风耳开南天门观看。二将果奉旨出门外,看的真,听的明。须臾回报道:“臣奉旨观听金光之处,乃东胜神洲海东傲来小国之界,有一座花果山,山上有一仙石,石产一卵,见风化一石猴,在那里拜四方,眼运金光,射冲斗府。如今服饵水食,金光将潜息矣。”玉帝垂赐恩慈曰:“下方之物,乃天地精华所生,不足为异。”
23
+
24
+ 那猴在山中,却会行走跳跃,食草木,饮涧泉,采山花,觅树果;与狼虫为伴,虎豹为群,獐鹿为友,猕猿为亲;夜宿石崖之下,朝游峰洞之中。真是“山中无甲子,寒尽不知年。”一朝天气炎热,与群猴避暑,都在松阴之下顽耍。你看他一个个:
25
+
26
+ 跳树攀枝,采花觅果;抛弹子,邷么儿;跑沙窝,砌宝塔;赶蜻蜓,扑八蜡;参老天,拜菩萨;扯葛藤,编草帓;捉虱子,咬又掐;理毛衣,剔指甲;挨的挨,擦的擦;推的推,压的压;扯的扯,拉的拉,青松林下任他顽,绿水涧边随洗濯。一群猴子耍了一会,却去那山涧中洗澡。见那股涧水奔流,真个似滚瓜涌溅。古云:“禽有禽言,兽有���语。”众猴都道:“这股水不知是那里的水。我们今日赶闲无事,顺涧边往上溜头寻看源流,耍子去耶!”喊一声,都拖男挈女,呼弟呼兄,一齐跑来,顺涧爬山,直至源流之处,乃是一股瀑布飞泉。但见那:
27
+
28
+ 一派白虹起,千寻雪浪飞;海风吹不断,江月照还依。
29
+
30
+ 冷气分青嶂,馀流润翠微;潺湲名瀑布,真似挂帘帷。
31
+
32
+ 众猴拍手称扬道:“好水!好水!原来此处远通山脚之下,直接大海之波。”又道:“那一个有本事的,钻进去寻个源头出来,不伤身体者,我等即拜他为王。”连呼了三声,忽见丛杂中跳出一名石猴,应声高叫道:“我进去!我进去!”好猴!也是他:
33
+
34
+ 今日芳名显,时来大运通;有缘居此地,王遣入仙宫。
35
+
36
+ 你看他瞑目蹲身,将身一纵,径跳入瀑布泉中,忽睁睛抬头观看,那里边却无水无波,明明朗朗的一架桥梁。他住了身,定了神,仔细再看,原来是座铁板桥。桥下之水,冲贯于石窍之间,倒挂流出去,遮闭了桥门。却又欠身上桥头,再走再看,却似有人家住处一般,真个好所在。但见那:
37
+
38
+ 翠藓堆蓝,白云浮玉,光摇片片烟霞。虚窗静室,滑凳板生花。乳窟龙珠倚挂,萦回满地奇葩。锅灶傍崖存火迹,樽罍靠案见肴渣。石座石床真可爱,石盆石碗更堪夸。又见那一竿两竿修竹,三点五点梅花。
39
+
40
+ 几树青松常带雨,浑然相个人家。
41
+
42
+ 看罢多时,跳过桥中间,左右观看,只见正当中有一石碣。碣上有一行楷书大字,镌着“花果山福地,水帘洞洞天。”石猴喜不自胜,急抽身往外便走,复瞑目蹲身,跳出水外,打了两个呵呵道:“大造化!大造化!”众猴把他围住,问道:“里面怎么样?水有多深?”石猴道:“没水!没水!原来是一座铁板桥。桥那边是一座天造地设的家当。”众猴道:“怎见得是个家当?”石猴笑道:“这股水乃是桥下冲贯石桥,倒挂下来遮闭门户的。桥边有花有树,乃是一座石房。房内有石窝、石灶、石碗、石盆、石床、石凳。中间一块石碣上,镌着‘花果山福地,水帘洞洞天。’真个是我们安身之处。里面且是宽阔,容得千百口老小。我们都进去住也,省得受老天之气。这里边:
43
+
44
+ 刮风有处躲,下雨好存身。霜雪全无惧,雷声永不闻。
45
+
46
+ 烟霞常照耀,祥瑞每蒸熏。松竹年年秀,奇花日日新。”
47
+
48
+ 众猴听得,个个欢喜,都道:“你还先走,带我们进去,进去!”石猴却又瞑目蹲身,往里一跳,叫道:“都随我进来!进来!”那些猴有胆大的,都跳进去了;胆小的,一个个伸头缩颈,抓耳挠腮,大声叫喊,缠一会,也都进去了。跳过桥头,一个个抢盆夺碗,占灶争床,搬过来,移过去,正是猴性顽劣,再无一个宁时,只搬得力倦神疲方止。石猿端坐上面道:“列位呵,‘人而无信,不知其可。’你们才说有本事进得来,出得去,不伤身体者,就拜他为王。我如今进来又出去,出去又进来,寻了这一个洞天与列位安眠稳睡,各享成家之福,何不拜我为王?”众猴听说,即拱伏无违。一个个序齿排班,朝上礼拜,都称“千岁大王”。自此,石猴高登王位,将“石”字儿隐了,遂称美猴王。有诗为证。诗曰:
49
+
50
+ 三阳交泰产群生,仙石胞含日月精。
51
+
52
+ 借卵化猴完大道,假他名姓配丹成。
53
+
54
+ 内观不识因无相,外合明知作有形。
55
+
56
+ 历代人人皆属此,称王称圣任纵横。美猴王领一群猿猴、猕猴、马猴等,分派了君臣佐使,朝游花果山,暮宿水帘洞,合契同情,不入飞鸟之丛,不从走兽之类,独自为王,不胜欢乐。是以:
57
+
58
+ 春采百花为饮食,夏寻诸果作生涯。
59
+
60
+ 秋收芋栗延时节,冬觅黄精度岁华。
61
+
62
+ 美猴王享乐天真,何期有三五百载。一日,与群猴喜宴之间,忽然忧恼,堕下泪来。众猴慌忙罗拜道:“大王何为烦恼?”猴王道:“我虽在欢喜之时,却有一点儿远虑,故此烦恼。”众猴又笑道:“大王好不知足!我等日日欢会,在仙山福地,古洞神州,不伏麒麟辖,不伏凤凰管,又不伏人间王位所拘束,自由自在,乃无量之福,为何远虑而忧也?”猴王道:“今日虽不归人王法律,不惧禽兽威服,将来年老血衰,暗中有阎王老子管着,一旦身亡,可不枉生世界之中,不得久住天人之内?”众猴闻此言,一个个掩面悲啼,俱以无常为虑。
63
+
64
+ 只见那班部中,忽跳出一个通背猿猴,厉声高叫道:“大王若是这般远虑,真所谓道心开发也!如今五虫之内,惟有三等名色,不伏阎王老子所管。”猴王道:“你知那三等���?”猿猴道:“乃是佛与仙与神圣三者,躲过轮回,不生不灭,与天地山川齐寿。”猴王道:“此三者居于何所?”猿猴道:“他只在阎浮世界之中,古洞仙山之内。”猴王闻之,满心欢喜,道:“我明日就辞汝等下山,云游海角,远涉天涯,务必访此三者,学一个不老长生,常躲过阎君之难。”噫!这句话,顿教跳出轮回网,致使齐天大圣成。众猴鼓掌称扬,都道:“善哉!善哉!我等明日越岭登山,广寻些果品,大设筵宴送大王也。”
65
+
66
+ 次日,众猴果去采仙桃,摘异果,刨山药,□【左“属”右“立刀”】黄精,芝兰香蕙,瑶草奇花,般般件件,整整齐齐,摆开石凳石桌,排列仙酒仙肴。但见那:
67
+
68
+ 金丸珠弹,红绽黄肥。金丸珠弹腊樱桃,色真甘美;红绽黄肥熟梅子,味果香酸。鲜龙眼,肉甜皮薄;火荔枝,核小囊红。林檎碧实连枝献,枇杷缃苞带叶擎。兔头梨子鸡心枣,消渴除烦更解酲。香桃烂杏,美甘甘似玉液琼浆;脆李杨梅,酸荫荫如脂酸膏酪。红囊黑子熟西瓜,四瓣黄皮大柿子。石榴裂破,丹砂粒现火晶珠;芋栗剖开,坚硬肉团金玛瑙。胡桃银杏可传茶,椰子葡萄能做酒。榛松榧柰满盘盛,橘蔗柑橙盈案摆。熟煨山药,烂煮黄精,捣碎茯苓并薏苡,石锅微火漫炊羹。人间纵有珍馐味,怎比山猴乐更宁?群猴尊美猴王上坐,各依齿肩排于下边,一个个轮流上前,奉酒,奉花,奉果,痛饮了一日。次日,美猴王早起,教:“小的们,替我折些枯松,编作筏子,取个竹竿作篙,收拾些果品之类,我将去也。”果独自登筏,尽力撑开,飘飘荡荡,径向大海波中,趁天风,来渡南赡部洲地界。这一去,正是那:
69
+
70
+ 天产仙猴道行隆,离山驾筏趁天风。
71
+
72
+ 飘洋过海寻仙道,立志潜心建大功。
73
+
74
+ 有分有缘休俗愿,无忧无虑会元龙。
75
+
76
+ 料应必遇知音者,说破源流万法通。也是他运至时来,自登木筏之后,连日东南风紧,将他送到西北岸前,乃是南赡部洲地界。持篙试水,偶得浅水,弃了筏子,跳上岸来,只见海边有人捕鱼、打雁、挖蛤、淘盐。他走近前,弄个把戏,妆个□【上左“齿”右“可”,下“女”】虎,吓得那些人丢筐弃网,四散奔跑。将那跑不动的拿住一个,剥了他衣裳,也学人穿在身上,摇摇摆摆,穿州过府,在市尘中,学人礼,学人话。朝餐夜宿,一心里访问佛仙神圣之道,觅个长生不老之方。见世人都是为名为利之徒,更无一个为身命者。正是那:
77
+
78
+ 争名夺利几时休?早起迟眠不自由!
79
+
80
+ 骑着驴骡思骏马,官居宰相望王侯。
81
+
82
+ 只愁衣食耽劳碌,何怕阎君就取勾?
83
+
84
+ 继子荫孙图富贵,更无一个肯回头!
85
+
86
+ 猴王参访仙道,无缘得遇。在于南赡部洲,串长城,游小县,不觉八九年馀。忽行至西洋大海,他想着海外必有神仙。独自个依前作筏,又飘过西海,直至西牛贺洲地界。登岸偏访多时,忽见一座高山秀丽,林麓幽深。他也不怕狼虫,不惧虎豹,登山顶上观看。果是好山:
87
+
88
+ 千峰开戟,万仞开屏。日映岚光轻锁翠,雨收黛色冷含青。枯藤缠老树,古渡界幽程。奇花瑞草,修竹乔松。修竹乔松,万载常青欺福地;奇花瑞草,四时不谢赛蓬瀛。幽鸟啼声近,源泉响溜清。重重谷壑芝兰绕,处处巉崖苔藓生。起伏峦头龙脉好,必有高人隐姓名。
89
+
90
+ 正观看间,忽闻得林深之处,有人言语,急忙趋步,穿入林中,侧耳而听,原来是歌唱之声。歌曰:
91
+
92
+ “观棋柯烂,伐木丁丁,云边谷口徐行,卖薪沽酒,狂笑自陶情。苍迳秋高,对月枕松根,一觉天明。认旧林,登崖过岭,持斧断枯藤。
93
+
94
+ 收来成一担,行歌市上,易米三升。更无些子争竞,时价平平,不会机谋巧算,没荣辱,恬淡延生。相逢处,非仙即道,静坐讲黄庭。”美猴王听得此言,满心欢喜道:“神仙原来藏在这里!”急忙跳入里面,仔细再看,乃是一个樵子,在那里举斧砍柴。但看他打扮非常:
95
+
96
+ 头上戴箬笠,乃是新笋初脱之箨。身上穿布衣,乃是木绵捻就之纱。腰间系环绦,乃是老蚕口吐之丝。足下踏草履,乃是枯莎搓就之爽。手执衠钢斧,担挽火麻绳。扳松劈枯树,争似此樵能!
97
+
98
+ 猴王近前叫道:“老神仙!弟子起手。”那樵汉慌忙丢了斧,转身答礼道:“不当人!不当人!我拙汉衣食不全,怎敢当‘神仙’二字?”猴王道:“你不是神仙,如何说出神仙的话来?”樵夫道:“我说甚么神仙话?”猴王道:“我才来至林边,只听的你说:‘相逢处非仙即道,静坐讲黄庭。’黄��乃道德真言,非神仙而何?”樵夫笑道:“实不瞒你说,这个词名做满庭芳,乃一神仙教我的。那神仙与我舍下相邻。他见我家事劳苦,日常烦恼,教我遇烦恼时,即把这词儿念念。一则散心,二则解困。我才有些不足处思虑,故此念念。不期被你听了。”猴王道:“你家既与神仙相邻,何不从他修行?学得个不老之方?却不是好?”樵夫道:“我一生命苦,自幼蒙父母养育至八九岁,才知人事,不幸父丧,母亲居孀。再无兄弟姊妹,只我一人,没奈何,早晚侍奉。如今母老,一发不敢抛离。却又田园荒芜,衣食不足,只得斫两束柴薪,挑向市尘之间,货几文钱,籴几升米,自炊自造,安排些茶饭,供养老母,所以不能修行。”
99
+
100
+ 猴王道:“据你说起来,乃是一个行孝的君子,向后必有好处。但望你指与我那神仙住处,却好拜访去也。”樵夫道:“不远,不远。此山叫做灵台方寸山。山中有座斜月三星洞。那洞中有一个神仙,称名须菩提祖师。那祖师出去的徒弟,也不计其数,见今还有三四十人从他修行。你顺那条小路儿,向南行七八里远近,即是他家了。”猴王用手扯住樵夫道:“老兄,你便同我去去。若还得了好处,决不忘你指引之恩。”樵夫道:“你这汉子,甚不通变。我方才这般与你说了,你还不省?假若我与你去了,却不误了我的生意?老母何人奉养?我要斫柴,你自去,自去。”
101
+
102
+ 猴王听说,只得相辞。出深林,找上路径,过一山坡,约有七八里远,果然望见一座洞府。挺身观看,真好去处!但见:
103
+
104
+ 烟霞散彩,日月摇光。千株老柏,万节修篁。千株老柏,带雨半空青冉冉;万节修篁,含烟一壑色苍苍。门外奇花布锦,桥边瑶草喷香。石崖突兀青苔润,悬壁高张翠藓长。时闻仙鹤唳,每见凤凰翔。仙鹤唳时,声振九皋霄汉远;凤凰翔起,翎毛五色彩云光。玄猿白鹿随隐见,金狮玉象任行藏。细观灵福地,真个赛天堂!又见那洞门紧闭,静悄悄杳无人迹。忽回头,见崖头立一石牌,约有三丈馀高、八尺馀阔,上有一行十个大字,乃是“灵台方寸山,斜月三星洞”。美猴王十分欢喜道:“此间人果是朴实。果有此山此洞。”看勾多时,不敢敲门。且去跳上松枝梢头,摘松子吃了顽耍。
105
+
106
+ 少顷间,只听得呀的一声,洞门开处,里面走出一个仙童,真个丰姿英伟,像貌清奇,比寻常俗子不同。但见他:
107
+
108
+ 髽髻双丝绾,宽袍两袖风。貌和身自别,心与相俱空。
109
+
110
+ 物外长年客,山中永寿童。一尘全不染,甲子任翻腾。
111
+
112
+ 那童子出得门来,高叫道:“甚么人在此搔扰?”猴王扑的跳下树来,上前躬身道:“仙童,我是个访道学仙之弟子,更不敢在此搔扰。”仙童笑道:“你是个访道的么?”猴王道:“是。”童子道:“我家师父,正才下榻,登坛讲道。还未说出原由,就教我出来开门。说:‘外面有个修行的来了,可去接待接待。’想必就是你了?”猴王笑道:“是我,是我。”童子道:“你跟我进来。”
113
+
114
+ 这猴王整衣端肃,随童子径入洞天深处观看:一层层深阁琼楼,一进进珠宫贝阙,说不尽那静室幽居,直至瑶台之下。见那菩提祖师端坐在台上,两边有三十个小仙侍立台下。果然是:
115
+
116
+ 大觉金仙没垢姿,西方妙相祖菩提;
117
+
118
+ 不生不灭三三行,全气全神万万慈。
119
+
120
+ 空寂自然随变化,真如本性任为之;
121
+
122
+ 与天同寿庄严体,历劫明心大法师。
123
+
124
+ 美猴王一见,倒身下拜,磕头不计其数,口中只道:“师父!师父!我弟子志心朝礼!志心朝礼!”祖师道:“你是那方人氏?且说个乡贯姓名明白,再拜。”猴王道:“弟子东胜神洲傲来国花果山水帘洞人氏。”祖师喝令:“赶出去!他本是个撒诈捣虚之徒,那里修甚么道果!”猴王慌忙磕头不住道:“弟子是老实之言,决无虚诈。”祖师道:“你既老实,怎么说东胜神洲?那去处到我这里,隔两重大海,一座南赡部洲,如何就得到此?”猴王叩头道:“弟子飘洋过海,登界游方,有十数个年头,方才访到此处。”
125
+
126
+ 祖师道:“既是逐渐行来的也罢。你姓甚么?”猴王又道:“我无性。人若骂我,我也不恼;若打我,我也不嗔,只是陪个礼儿就罢了。一生无性。”祖师道:“不是这个性。你父母原来姓甚么?”猴王道:“我也无父母。”祖师道:“既无父母,想是树上生的?”猴王道:“我虽不是树生,却是石里长的。我只记得花果山上有一块仙石,其年石破,我便生也。”祖师闻言,暗喜道:“这等说,却是天地生成的。你起来走走我看。”猴王纵身跳起,拐呀拐的走了两遍。祖师笑道:“你身躯虽是鄙陋,却像个食松果的猢狲。我与你就身上取个姓氏,意思教你姓‘猢’。猢字去了个兽傍,乃是古月。古者,老也;月者,阴也。老阴不能化育,教你姓‘狲’倒好。狲字去了兽傍,乃是个子系。子者,儿男也;系者,婴细也。正合婴儿之本论。教你姓‘孙’罢。”猴王听说,满心欢喜,朝上叩头道:“好!好!好!今日方知姓也。万望师父慈悲!既然有姓,再乞赐个名字,却好呼唤。”祖师道:“我门中有十二个字,分派起名到你乃第十辈之小徒矣。”猴王道:“那十二个字?”祖师道:“乃广、大、智、慧、真、如、性、海、颖、悟、圆、觉十二字。排到你,正当‘悟’字。与你起个法名叫做‘孙悟空’好么?”猴王笑道:“好!好!好!自今就叫做孙悟空也!”正是:鸿蒙初辟原无姓,打破顽空须悟空。
127
+
128
+ 毕竟不之向后修些甚么道果,且听下回分解。
129
+
130
+
docs/build/doctrees/environment.pickle CHANGED
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
 
docs/build/doctrees/intro.doctree CHANGED
Binary files a/docs/build/doctrees/intro.doctree and b/docs/build/doctrees/intro.doctree differ
 
docs/build/doctrees/userguide-zh.doctree CHANGED
Binary files a/docs/build/doctrees/userguide-zh.doctree and b/docs/build/doctrees/userguide-zh.doctree differ
 
docs/build/doctrees/userguide.doctree CHANGED
Binary files a/docs/build/doctrees/userguide.doctree and b/docs/build/doctrees/userguide.doctree differ
 
docs/build/html/_sources/intro.rst.txt CHANGED
@@ -15,4 +15,7 @@ Properly aligned texts (paragraph-to-paragraph or sentence-to-sentence) find app
15
  Limitations
16
  ***********
17
 
18
- Currently, only zh-en/en-zh pairs are supported although further pairs will be added if and when time permits. If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.
 
 
 
 
15
  Limitations
16
  ***********
17
 
18
+ Currently, only zh-en/en-zh pairs are supported for fast-track alignment although further pairs will be added if and when time permits.
19
+ If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.
20
+
21
+ An experimental slow-track mode (approximately 500 pairs per 5 minutes) is introdueced for other laugnages pairs.
docs/build/html/_sources/userguide-zh.rst.txt CHANGED
@@ -6,6 +6,7 @@
6
  - ``radiobee`` 目前仅支持中英、英中对齐。
7
  - ``radiobee`` 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 ``docx``, ``pdf``, ``srt``, ``html`` 等格式。
8
  - ``file 2`` 为空白时,``radiobee`` 则会视 ``file 1`` 为中英文混合文本及试着分离中英文,然后进行对齐。
 
9
  - 第二次上载文件前请点击"Clear"。
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: 一般无需理会这些参数。
11
  - ``esp`` 和 ``min_samples`` 的建议值 -- ``esp`` (最小 ``epsilon``): 8-12, ``min_samples``: 4-8.
 
6
  - ``radiobee`` 目前仅支持中英、英中对齐。
7
  - ``radiobee`` 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 ``docx``, ``pdf``, ``srt``, ``html`` 等格式。
8
  - ``file 2`` 为空白时,``radiobee`` 则会视 ``file 1`` 为中英文混合文本及试着分离中英文,然后进行对齐。
9
+ - 英中、中英非空行限制在 ``2000`` 以内,其他语言对的对齐(``500`` 对约需5分钟)则限制在 ``200`` 以内。
10
  - 第二次上载文件前请点击"Clear"。
11
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: 一般无需理会这些参数。
12
  - ``esp`` 和 ``min_samples`` 的建议值 -- ``esp`` (最小 ``epsilon``): 8-12, ``min_samples``: 4-8.
docs/build/html/_sources/userguide.rst.txt CHANGED
@@ -4,8 +4,8 @@ How to use
4
  - ``radiobee aligner`` is a sibling of `bumblebee aligner`. To know more about these aligners, please join qq group `316287378`.
5
 
6
  - Uploaded files should be in pure text format (txt, md, csv etc). ``docx``, ``pdf``, ``srt``, ``html`` etc may be supported later on.
7
- - If ``file 2`` is left blank, ``radiobee`` will treat ``file 1`` as mixed English-Chinese text and attempt to separate English and Chinese texts before procedding to align them.
8
-
9
  - Click "Clear" first for subsequent submits when uploading files.
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: Normally there is no need to touch these unless you know what you are doing.
11
  - Suggested ``esp`` and ``min_samples`` values -- ``esp`` (minimum epsilon): 8-12, ``min_samples``: 4-8.
 
4
  - ``radiobee aligner`` is a sibling of `bumblebee aligner`. To know more about these aligners, please join qq group `316287378`.
5
 
6
  - Uploaded files should be in pure text format (txt, md, csv etc). ``docx``, ``pdf``, ``srt``, ``html`` etc may be supported later on.
7
+ - If ``file 2`` is left blank, ``radiobee`` will treat ``file 1`` as mixed (for example English-Chinese) text and attempt to separate English and Chinese texts before procedding to align them.
8
+ - The number non-blank lines is limited to 2000 for zh-en/zh-en and 200 for other languange pairs.
9
  - Click "Clear" first for subsequent submits when uploading files.
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: Normally there is no need to touch these unless you know what you are doing.
11
  - Suggested ``esp`` and ``min_samples`` values -- ``esp`` (minimum epsilon): 8-12, ``min_samples``: 4-8.
docs/build/html/intro.html CHANGED
@@ -85,7 +85,9 @@
85
  </section>
86
  <section id="limitations">
87
  <h2>Limitations<a class="headerlink" href="#limitations" title="Permalink to this headline"></a></h2>
88
- <p>Currently, only zh-en/en-zh pairs are supported although further pairs will be added if and when time permits. If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.</p>
 
 
89
  </section>
90
  </section>
91
 
 
85
  </section>
86
  <section id="limitations">
87
  <h2>Limitations<a class="headerlink" href="#limitations" title="Permalink to this headline"></a></h2>
88
+ <p>Currently, only zh-en/en-zh pairs are supported for fast-track alignment although further pairs will be added if and when time permits.
89
+ If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.</p>
90
+ <p>An experimental slow-track mode (approximately 500 pairs per 5 minutes) is introdueced for other laugnages pairs.</p>
91
  </section>
92
  </section>
93
 
docs/build/html/searchindex.js CHANGED
@@ -1 +1 @@
1
- Search.setIndex({docnames:["examples","index","intro","modules","radiobee","userguide","userguide-zh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","index.rst","intro.rst","modules.rst","radiobee.rst","userguide.rst","userguide-zh.rst"],objects:{},objnames:{},objtypes:{},terms:{"1":[5,6],"12":[5,6],"2":[5,6],"3":2,"316287378":[5,6],"4":[5,6],"8":[5,6],"\u4e00\u822c\u65e0\u9700\u7406\u4f1a\u8fd9\u4e9b\u53c2\u6570":6,"\u4e3a\u4e2d\u82f1\u6587\u6df7\u5408\u6587\u672c\u53ca\u8bd5\u7740\u5206\u79bb\u4e2d\u82f1\u6587":6,"\u4e3a\u7a7a\u767d\u65f6":6,"\u4e86\u89e3\u8fd9\u4e9b\u5bf9\u9f50\u5de5\u5177":6,"\u4ee5\u540e\u53ef\u80fd\u4f1a\u652f\u6301":6,"\u4f18\u8d28\u5bf9":6,"\u4f7f\u7528\u8bf4\u660e":1,"\u5219\u4f1a\u89c6":6,"\u53e6\u4e00\u65b9\u9762":6,"\u53ef\u4ee5\u4ee5\u540e\u4f1a\u652f\u6301":[],"\u53ef\u4ee5\u53f3\u51fb\u62f7\u51fa\u56fe\u7684\u94fe\u63a5\u7528\u6d4f\u89c8\u5668\u72ec\u7acb\u8bbf\u95ee\u62f7\u51fa\u6765\u7684\u94fe\u63a5\u6216\u53f3\u51fb\u5b58\u76d8\u518d\u7528\u770b\u56fe\u7a0b\u5e8f\u6253\u5f00\u5b58\u76d8\u7684\u56fe\u6587\u4ef6":6,"\u548c":6,"\u5acc\u56fe\u592a\u5c0f\u7684\u8bdd":6,"\u5b58\u4e0b\u6709\u5173\u53c2\u6570\u67e5\u770b\u6216\u901a\u77e5\u5f00\u53d1\u8005":6,"\u662f":6,"\u6700\u5c0f":6,"\u7136\u540e\u8fdb\u884c\u5bf9\u9f50":6,"\u7684\u5b6a\u751f\u5144\u5f1f":6,"\u7684\u5efa\u8bae\u503c":6,"\u76ee\u524d\u4ec5\u652f\u6301\u4e2d\u82f1":6,"\u76ee\u524d\u4ec5\u652f\u6301\u7eaf\u6587\u672c\u6587\u4ef6\u4e0a\u8f7d":6,"\u7b2c\u4e8c\u6b21\u4e0a\u8f7d\u6587\u4ef6\u524d\u8bf7\u70b9\u51fb":6,"\u7b49":6,"\u7b49\u683c\u5f0f":6,"\u82f1\u4e2d\u5bf9\u9f50":6,"\u8bbe\u5927\u4e9b\u5219\u4f1a\u5f97\u5230\u5c11\u4e00\u4e9b\u5bf9\u9f50\u5bf9\u56e0\u4e3a\u53ef\u80fd\u9519\u5931\u4e86\u4e00\u4e9b":6,"\u8bbe\u5927\u4e9b\u5219\u53ef\u80fd\u4f1a\u9519\u5931\u4e00\u4e9b":[],"\u8bbe\u5927\u4e9b\u6216":6,"\u8bbe\u5c0f\u4e9b\u53ef\u4ee5\u5f97\u5230\u66f4\u591a\u7684\u5bf9\u9f50\u5bf9\u4f46\u4e5f\u4f1a":[],"\u8bbe\u5c0f\u4e9b\u53ef\u4ee5\u5f97\u5230\u66f4\u591a\u7684\u5bf9\u9f50\u5bf9\u4f46\u4e5f\u4f1a\u6709\u66f4\u591a":6,"\u8bbe\u5c0f\u4e9b\u6216":6,"\u8bef\u62a5\u5bf9":6,"\u8bf7\u52a0\u5165qq\u7fa4":6,"\u8fd0\u884c\u51fa\u9519\u65f6\u53ef\u4ee5\u70b9\u51fb":6,"\u9519\u8bef\u5224\u65ad\u4e3a\u5bf9\u9f50\u7684\u5bf9":6,"\u9519\u8bef\u5bf9":[],"do":5,"new":5,As:0,For:0,If:[2,5],On:5,The:2,To:5,about:5,ad:2,address:5,aim:2,align:[0,2,5,6],align_s:[1,3],align_text:[1,3],also:5,although:2,amend_avec:[1,3],an:2,app:[1,3],applic:2,ar:[2,5],attempt:5,been:[0,2],befor:5,better:5,blank:5,browser:5,built:0,bumblebe:[5,6],can:5,candid:5,cannot:0,cat:2,chines:5,clear:[5,6],click:[0,5],cmat2tset:[1,3],co:0,contact:2,content:3,copi:5,csv:[5,6],current:2,de:2,develop:[2,5],dl_type:[5,6],docterm_scor:[1,3],docx:[5,6],download:0,dual:2,dualtext:2,e:2,ebook:2,educ:2,en2zh:[1,3],en2zh_token:[1,3],en:2,english:5,epsilon:[5,6],esp:[5,6],etc:[2,5],exampl:[1,2],fals:5,file2text:[1,3],file:[5,6],files2df:[1,3],find:2,first:5,flag:[5,6],format:5,full:2,further:2,g:2,gen_aset:[1,3],gen_eps_minsampl:[1,3],gen_model:[1,3],gen_pset:[1,3],gen_row_align:[1,3],go:5,good:5,gradio:2,group:5,ha:[0,2],hand:5,have:5,help:2,here:2,how:1,html:[5,6],http:0,huggingfac:0,identifi:5,idf_typ:[5,6],imag:5,implement:2,index:1,inform:5,insert_spac:[1,3],instal:1,interfac:2,interpolate_pset:[1,3],introduct:1,ja:2,join:5,just:0,know:5,languag:2,larger:5,later:5,learn:2,left:5,limit:1,lists2cmat:[1,3],loadtext:[1,3],look:5,machin:2,mai:5,md:[5,6],mdx_e2c:[1,3],method:0,mikee:0,min_sampl:[5,6],minimum:5,miss:5,mix:5,modul:[1,3],more:5,motiv:1,need:5,norm:[5,6],normal:5,now:0,one:0,onli:2,onlin:0,open:5,other:5,output:5,packag:[0,1,3],page:1,pair:[2,5],paragraph:2,particular:2,pdf:[5,6],permit:2,pip:0,pleas:5,plot_cmat:[1,3],plot_df:[1,3],posit:5,power:2,proced:5,process_upload:[1,3],properli:2,provid:2,publish:0,pure:5,pypi:0,python:2,qq:5,radiobe:[0,2,5,6],result:5,right:5,row:0,ru:2,save:5,search:1,seg_text:[1,3],select:5,sentenc:2,separ:5,should:5,shuffle_s:[1,3],sibl:5,smaller:5,smatrix:[1,3],someth:5,space:0,srt:[5,6],submit:[0,5],submodul:[1,3],subsequ:5,suggest:[0,5],support:[2,5],tab:5,tabl:0,tend:5,term:2,testrun:0,text:[2,5],tf_type:[5,6],them:5,time:2,tmx:2,touch:5,translat:2,treat:5,trim_df:[1,3],two:2,txt:[5,6],unless:5,upload:5,us:[0,1],usag:1,valu:5,version:0,wa:2,welcom:2,what:5,when:[2,5],willing:2,wrong:5,yet:0,you:[2,5],zh:2,zip:0},titles:["Examples","Welcome to radiobee\u2019s documentation!","Introduction","radiobee","radiobee package","How to use","\u4f7f\u7528\u8bf4\u660e"],titleterms:{"\u4f7f\u7528\u8bf4\u660e":6,align_s:4,align_text:4,amend_avec:4,app:4,cmat2tset:4,content:[1,4],docterm_scor:4,document:1,en2zh:4,en2zh_token:4,exampl:0,file2text:4,files2df:4,gen_aset:4,gen_eps_minsampl:4,gen_model:4,gen_pset:4,gen_row_align:4,how:5,indic:1,insert_spac:4,instal:0,interpolate_pset:4,introduct:2,limit:2,lists2cmat:4,loadtext:4,mdx_e2c:4,modul:4,motiv:2,packag:4,plot_cmat:4,plot_df:4,process_upload:4,radiobe:[1,3,4],s:1,seg_text:4,shuffle_s:4,smatrix:4,submodul:4,tabl:1,trim_df:4,us:5,usag:0,welcom:1}})
 
1
+ Search.setIndex({docnames:["examples","index","intro","modules","radiobee","userguide","userguide-zh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","index.rst","intro.rst","modules.rst","radiobee.rst","userguide.rst","userguide-zh.rst"],objects:{},objnames:{},objtypes:{},terms:{"1":[5,6],"12":[5,6],"2":[5,6],"200":[5,6],"2000":[5,6],"3":2,"316287378":[5,6],"4":[5,6],"5":2,"500":[2,6],"8":[5,6],"\u4e00\u822c\u65e0\u9700\u7406\u4f1a\u8fd9\u4e9b\u53c2\u6570":6,"\u4e2d\u82f1\u975e\u7a7a\u884c\u9650\u5236\u5728":6,"\u4e3a\u4e2d\u82f1\u6587\u6df7\u5408\u6587\u672c\u53ca\u8bd5\u7740\u5206\u79bb\u4e2d\u82f1\u6587":6,"\u4e3a\u7a7a\u767d\u65f6":6,"\u4e86\u89e3\u8fd9\u4e9b\u5bf9\u9f50\u5de5\u5177":6,"\u4ee5\u5185":6,"\u4ee5\u540e\u53ef\u80fd\u4f1a\u652f\u6301":6,"\u4f18\u8d28\u5bf9":6,"\u4f7f\u7528\u8bf4\u660e":1,"\u5176\u4ed6\u8bed\u8a00\u5bf9\u7684\u5bf9\u9f50":6,"\u5219\u4f1a\u89c6":6,"\u5219\u9650\u5236\u5728":6,"\u53e6\u4e00\u65b9\u9762":6,"\u53ef\u4ee5\u53f3\u51fb\u62f7\u51fa\u56fe\u7684\u94fe\u63a5\u7528\u6d4f\u89c8\u5668\u72ec\u7acb\u8bbf\u95ee\u62f7\u51fa\u6765\u7684\u94fe\u63a5\u6216\u53f3\u51fb\u5b58\u76d8\u518d\u7528\u770b\u56fe\u7a0b\u5e8f\u6253\u5f00\u5b58\u76d8\u7684\u56fe\u6587\u4ef6":6,"\u548c":6,"\u5acc\u56fe\u592a\u5c0f\u7684\u8bdd":6,"\u5b58\u4e0b\u6709\u5173\u53c2\u6570\u67e5\u770b\u6216\u901a\u77e5\u5f00\u53d1\u8005":6,"\u5bf9\u7ea6\u97005\u5206\u949f":6,"\u662f":6,"\u6700\u5c0f":6,"\u7136\u540e\u8fdb\u884c\u5bf9\u9f50":6,"\u7684\u5b6a\u751f\u5144\u5f1f":6,"\u7684\u5efa\u8bae\u503c":6,"\u76ee\u524d\u4ec5\u652f\u6301\u4e2d\u82f1":6,"\u76ee\u524d\u4ec5\u652f\u6301\u7eaf\u6587\u672c\u6587\u4ef6\u4e0a\u8f7d":6,"\u7b2c\u4e8c\u6b21\u4e0a\u8f7d\u6587\u4ef6\u524d\u8bf7\u70b9\u51fb":6,"\u7b49":6,"\u7b49\u683c\u5f0f":6,"\u82f1\u4e2d":6,"\u82f1\u4e2d\u5bf9\u9f50":6,"\u8bbe\u5927\u4e9b\u5219\u4f1a\u5f97\u5230\u5c11\u4e00\u4e9b\u5bf9\u9f50\u5bf9\u56e0\u4e3a\u53ef\u80fd\u9519\u5931\u4e86\u4e00\u4e9b":6,"\u8bbe\u5927\u4e9b\u6216":6,"\u8bbe\u5c0f\u4e9b\u53ef\u4ee5\u5f97\u5230\u66f4\u591a\u7684\u5bf9\u9f50\u5bf9\u4f46\u4e5f\u4f1a\u6709\u66f4\u591a":6,"\u8bbe\u5c0f\u4e9b\u6216":6,"\u8bef\u62a5\u5bf9":6,"\u8bf7\u52a0\u5165qq\u7fa4":6,"\u8fd0\u884c\u51fa\u9519\u65f6\u53ef\u4ee5\u70b9\u51fb":6,"\u9519\u8bef\u5224\u65ad\u4e3a\u5bf9\u9f50\u7684\u5bf9":6,"do":5,"new":5,As:0,For:0,If:[2,5],On:5,The:[2,5],To:5,about:5,ad:2,address:5,aim:2,align:[0,2,5,6],align_s:[1,3],align_text:[1,3],also:5,although:2,amend_avec:[1,3],an:2,app:[1,3],applic:2,approxim:2,ar:[2,5],attempt:5,been:[0,2],befor:5,better:5,blank:5,browser:5,built:0,bumblebe:[5,6],can:5,candid:5,cannot:0,cat:2,chines:5,clear:[5,6],click:[0,5],cmat2tset:[1,3],co:0,contact:2,content:3,copi:5,csv:[5,6],current:2,de:2,develop:[2,5],dl_type:[5,6],docterm_scor:[1,3],docx:[5,6],download:0,dual:2,dualtext:2,e:2,ebook:2,educ:2,en2zh:[1,3],en2zh_token:[1,3],en:[2,5],english:5,epsilon:[5,6],esp:[5,6],etc:[2,5],exampl:[1,2,5],experiment:2,fals:5,fast:2,file2text:[1,3],file:[5,6],files2df:[1,3],find:2,first:5,flag:[5,6],format:5,full:2,further:2,g:2,gen_aset:[1,3],gen_eps_minsampl:[1,3],gen_model:[1,3],gen_pset:[1,3],gen_row_align:[1,3],go:5,good:5,gradio:2,group:5,ha:[0,2],hand:5,have:5,help:2,here:2,how:1,html:[5,6],http:0,huggingfac:0,identifi:5,idf_typ:[5,6],imag:5,implement:2,index:1,inform:5,insert_spac:[1,3],instal:1,interfac:2,interpolate_pset:[1,3],introduct:1,introduec:2,ja:2,join:5,just:0,know:5,languag:2,languang:5,larger:5,later:5,laugnag:2,learn:2,left:5,limit:[1,5],line:5,lists2cmat:[1,3],loadtext:[1,3],look:5,machin:2,mai:5,md:[5,6],mdx_e2c:[1,3],method:0,mikee:0,min_sampl:[5,6],minimum:5,minut:2,miss:5,mix:5,mode:2,modul:[1,3],more:5,motiv:1,need:5,non:5,norm:[5,6],normal:5,now:0,number:5,one:0,onli:2,onlin:0,open:5,other:[2,5],output:5,packag:[0,1,3],page:1,pair:[2,5],paragraph:2,particular:2,pdf:[5,6],per:2,permit:2,pip:0,pleas:5,plot_cmat:[1,3],plot_df:[1,3],posit:5,power:2,proced:5,process_upload:[1,3],properli:2,provid:2,publish:0,pure:5,pypi:0,python:2,qq:5,radiobe:[0,2,5,6],result:5,right:5,row:0,ru:2,save:5,search:1,seg_text:[1,3],select:5,sentenc:2,separ:5,should:5,shuffle_s:[1,3],sibl:5,slow:2,smaller:5,smatrix:[1,3],someth:5,space:0,srt:[5,6],submit:[0,5],submodul:[1,3],subsequ:5,suggest:[0,5],support:[2,5],tab:5,tabl:0,tend:5,term:2,testrun:0,text:[2,5],tf_type:[5,6],them:5,time:2,tmx:2,touch:5,track:2,translat:2,treat:5,trim_df:[1,3],two:2,txt:[5,6],unless:5,upload:5,us:[0,1],usag:1,valu:5,version:0,wa:2,welcom:2,what:5,when:[2,5],willing:2,wrong:5,yet:0,you:[2,5],zh:[2,5],zip:0},titles:["Examples","Welcome to radiobee\u2019s documentation!","Introduction","radiobee","radiobee package","How to use","\u4f7f\u7528\u8bf4\u660e"],titleterms:{"\u4f7f\u7528\u8bf4\u660e":6,align_s:4,align_text:4,amend_avec:4,app:4,cmat2tset:4,content:[1,4],docterm_scor:4,document:1,en2zh:4,en2zh_token:4,exampl:0,file2text:4,files2df:4,gen_aset:4,gen_eps_minsampl:4,gen_model:4,gen_pset:4,gen_row_align:4,how:5,indic:1,insert_spac:4,instal:0,interpolate_pset:4,introduct:2,limit:2,lists2cmat:4,loadtext:4,mdx_e2c:4,modul:4,motiv:2,packag:4,plot_cmat:4,plot_df:4,process_upload:4,radiobe:[1,3,4],s:1,seg_text:4,shuffle_s:4,smatrix:4,submodul:4,tabl:1,trim_df:4,us:5,usag:0,welcom:1}})
docs/build/html/userguide-zh.html CHANGED
@@ -77,6 +77,7 @@
77
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 目前仅支持中英、英中对齐。</p></li>
78
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 <code class="docutils literal notranslate"><span class="pre">docx</span></code>, <code class="docutils literal notranslate"><span class="pre">pdf</span></code>, <code class="docutils literal notranslate"><span class="pre">srt</span></code>, <code class="docutils literal notranslate"><span class="pre">html</span></code> 等格式。</p></li>
79
  <li><p><code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">2</span></code> 为空白时,<code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 则会视 <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">1</span></code> 为中英文混合文本及试着分离中英文,然后进行对齐。</p></li>
 
80
  <li><p>第二次上载文件前请点击”Clear”。</p></li>
81
  <li><p><code class="docutils literal notranslate"><span class="pre">tf_type</span></code> <code class="docutils literal notranslate"><span class="pre">idf_type</span></code> <code class="docutils literal notranslate"><span class="pre">dl_type</span></code> <code class="docutils literal notranslate"><span class="pre">norm</span></code>: 一般无需理会这些参数。</p></li>
82
  <li><p><code class="docutils literal notranslate"><span class="pre">esp</span></code> 和 <code class="docutils literal notranslate"><span class="pre">min_samples</span></code> 的建议值 – <code class="docutils literal notranslate"><span class="pre">esp</span></code> (最小 <code class="docutils literal notranslate"><span class="pre">epsilon</span></code>): 8-12, <code class="docutils literal notranslate"><span class="pre">min_samples</span></code>: 4-8.</p>
 
77
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 目前仅支持中英、英中对齐。</p></li>
78
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 <code class="docutils literal notranslate"><span class="pre">docx</span></code>, <code class="docutils literal notranslate"><span class="pre">pdf</span></code>, <code class="docutils literal notranslate"><span class="pre">srt</span></code>, <code class="docutils literal notranslate"><span class="pre">html</span></code> 等格式。</p></li>
79
  <li><p><code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">2</span></code> 为空白时,<code class="docutils literal notranslate"><span class="pre">radiobee</span></code> 则会视 <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">1</span></code> 为中英文混合文本及试着分离中英文,然后进行对齐。</p></li>
80
+ <li><p>英中、中英非空行限制在 <code class="docutils literal notranslate"><span class="pre">2000</span></code> 以内,其他语言对的对齐(<code class="docutils literal notranslate"><span class="pre">500</span></code> 对约需5分钟)则限制在 <code class="docutils literal notranslate"><span class="pre">200</span></code> 以内。</p></li>
81
  <li><p>第二次上载文件前请点击”Clear”。</p></li>
82
  <li><p><code class="docutils literal notranslate"><span class="pre">tf_type</span></code> <code class="docutils literal notranslate"><span class="pre">idf_type</span></code> <code class="docutils literal notranslate"><span class="pre">dl_type</span></code> <code class="docutils literal notranslate"><span class="pre">norm</span></code>: 一般无需理会这些参数。</p></li>
83
  <li><p><code class="docutils literal notranslate"><span class="pre">esp</span></code> 和 <code class="docutils literal notranslate"><span class="pre">min_samples</span></code> 的建议值 – <code class="docutils literal notranslate"><span class="pre">esp</span></code> (最小 <code class="docutils literal notranslate"><span class="pre">epsilon</span></code>): 8-12, <code class="docutils literal notranslate"><span class="pre">min_samples</span></code>: 4-8.</p>
docs/build/html/userguide.html CHANGED
@@ -75,7 +75,8 @@
75
  <ul class="simple">
76
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span> <span class="pre">aligner</span></code> is a sibling of <cite>bumblebee aligner</cite>. To know more about these aligners, please join qq group <cite>316287378</cite>.</p></li>
77
  <li><p>Uploaded files should be in pure text format (txt, md, csv etc). <code class="docutils literal notranslate"><span class="pre">docx</span></code>, <code class="docutils literal notranslate"><span class="pre">pdf</span></code>, <code class="docutils literal notranslate"><span class="pre">srt</span></code>, <code class="docutils literal notranslate"><span class="pre">html</span></code> etc may be supported later on.</p></li>
78
- <li><p>If <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">2</span></code> is left blank, <code class="docutils literal notranslate"><span class="pre">radiobee</span></code> will treat <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">1</span></code> as mixed English-Chinese text and attempt to separate English and Chinese texts before procedding to align them.</p></li>
 
79
  <li><p>Click “Clear” first for subsequent submits when uploading files.</p></li>
80
  <li><p><code class="docutils literal notranslate"><span class="pre">tf_type</span></code> <code class="docutils literal notranslate"><span class="pre">idf_type</span></code> <code class="docutils literal notranslate"><span class="pre">dl_type</span></code> <code class="docutils literal notranslate"><span class="pre">norm</span></code>: Normally there is no need to touch these unless you know what you are doing.</p></li>
81
  <li><p>Suggested <code class="docutils literal notranslate"><span class="pre">esp</span></code> and <code class="docutils literal notranslate"><span class="pre">min_samples</span></code> values – <code class="docutils literal notranslate"><span class="pre">esp</span></code> (minimum epsilon): 8-12, <code class="docutils literal notranslate"><span class="pre">min_samples</span></code>: 4-8.</p></li>
 
75
  <ul class="simple">
76
  <li><p><code class="docutils literal notranslate"><span class="pre">radiobee</span> <span class="pre">aligner</span></code> is a sibling of <cite>bumblebee aligner</cite>. To know more about these aligners, please join qq group <cite>316287378</cite>.</p></li>
77
  <li><p>Uploaded files should be in pure text format (txt, md, csv etc). <code class="docutils literal notranslate"><span class="pre">docx</span></code>, <code class="docutils literal notranslate"><span class="pre">pdf</span></code>, <code class="docutils literal notranslate"><span class="pre">srt</span></code>, <code class="docutils literal notranslate"><span class="pre">html</span></code> etc may be supported later on.</p></li>
78
+ <li><p>If <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">2</span></code> is left blank, <code class="docutils literal notranslate"><span class="pre">radiobee</span></code> will treat <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">1</span></code> as mixed (for example English-Chinese) text and attempt to separate English and Chinese texts before procedding to align them.</p></li>
79
+ <li><p>The number non-blank lines is limited to 2000 for zh-en/zh-en and 200 for other languange pairs.</p></li>
80
  <li><p>Click “Clear” first for subsequent submits when uploading files.</p></li>
81
  <li><p><code class="docutils literal notranslate"><span class="pre">tf_type</span></code> <code class="docutils literal notranslate"><span class="pre">idf_type</span></code> <code class="docutils literal notranslate"><span class="pre">dl_type</span></code> <code class="docutils literal notranslate"><span class="pre">norm</span></code>: Normally there is no need to touch these unless you know what you are doing.</p></li>
82
  <li><p>Suggested <code class="docutils literal notranslate"><span class="pre">esp</span></code> and <code class="docutils literal notranslate"><span class="pre">min_samples</span></code> values – <code class="docutils literal notranslate"><span class="pre">esp</span></code> (minimum epsilon): 8-12, <code class="docutils literal notranslate"><span class="pre">min_samples</span></code>: 4-8.</p></li>
docs/source/intro.rst CHANGED
@@ -15,4 +15,7 @@ Properly aligned texts (paragraph-to-paragraph or sentence-to-sentence) find app
15
  Limitations
16
  ***********
17
 
18
- Currently, only zh-en/en-zh pairs are supported although further pairs will be added if and when time permits. If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.
 
 
 
 
15
  Limitations
16
  ***********
17
 
18
+ Currently, only zh-en/en-zh pairs are supported for fast-track alignment although further pairs will be added if and when time permits.
19
+ If you are willing to help with a particular pair (for example, de-zh, ja-zh, ru-zh, etc.), you are welcome to contact the developer.
20
+
21
+ An experimental slow-track mode (approximately 500 pairs per 5 minutes) is introdueced for other laugnages pairs.
docs/source/userguide-zh.rst CHANGED
@@ -6,6 +6,7 @@
6
  - ``radiobee`` 目前仅支持中英、英中对齐。
7
  - ``radiobee`` 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 ``docx``, ``pdf``, ``srt``, ``html`` 等格式。
8
  - ``file 2`` 为空白时,``radiobee`` 则会视 ``file 1`` 为中英文混合文本及试着分离中英文,然后进行对齐。
 
9
  - 第二次上载文件前请点击"Clear"。
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: 一般无需理会这些参数。
11
  - ``esp`` 和 ``min_samples`` 的建议值 -- ``esp`` (最小 ``epsilon``): 8-12, ``min_samples``: 4-8.
 
6
  - ``radiobee`` 目前仅支持中英、英中对齐。
7
  - ``radiobee`` 目前仅支持纯文本文件上载 (txt, md, csv 等)。 以后可能会支持 ``docx``, ``pdf``, ``srt``, ``html`` 等格式。
8
  - ``file 2`` 为空白时,``radiobee`` 则会视 ``file 1`` 为中英文混合文本及试着分离中英文,然后进行对齐。
9
+ - 英中、中英非空行限制在 ``2000`` 以内,其他语言对的对齐(``500`` 对约需5分钟)则限制在 ``200`` 以内。
10
  - 第二次上载文件前请点击"Clear"。
11
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: 一般无需理会这些参数。
12
  - ``esp`` 和 ``min_samples`` 的建议值 -- ``esp`` (最小 ``epsilon``): 8-12, ``min_samples``: 4-8.
docs/source/userguide.rst CHANGED
@@ -4,8 +4,8 @@ How to use
4
  - ``radiobee aligner`` is a sibling of `bumblebee aligner`. To know more about these aligners, please join qq group `316287378`.
5
 
6
  - Uploaded files should be in pure text format (txt, md, csv etc). ``docx``, ``pdf``, ``srt``, ``html`` etc may be supported later on.
7
- - If ``file 2`` is left blank, ``radiobee`` will treat ``file 1`` as mixed English-Chinese text and attempt to separate English and Chinese texts before procedding to align them.
8
-
9
  - Click "Clear" first for subsequent submits when uploading files.
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: Normally there is no need to touch these unless you know what you are doing.
11
  - Suggested ``esp`` and ``min_samples`` values -- ``esp`` (minimum epsilon): 8-12, ``min_samples``: 4-8.
 
4
  - ``radiobee aligner`` is a sibling of `bumblebee aligner`. To know more about these aligners, please join qq group `316287378`.
5
 
6
  - Uploaded files should be in pure text format (txt, md, csv etc). ``docx``, ``pdf``, ``srt``, ``html`` etc may be supported later on.
7
+ - If ``file 2`` is left blank, ``radiobee`` will treat ``file 1`` as mixed (for example English-Chinese) text and attempt to separate English and Chinese texts before procedding to align them.
8
+ - The number non-blank lines is limited to 2000 for zh-en/zh-en and 200 for other languange pairs.
9
  - Click "Clear" first for subsequent submits when uploading files.
10
  - ``tf_type`` ``idf_type`` ``dl_type`` ``norm``: Normally there is no need to touch these unless you know what you are doing.
11
  - Suggested ``esp`` and ``min_samples`` values -- ``esp`` (minimum epsilon): 8-12, ``min_samples``: 4-8.
gradio_queue.db CHANGED
Binary files a/gradio_queue.db and b/gradio_queue.db differ
 
img/plt.png CHANGED
radiobee/__main__.py CHANGED
@@ -242,6 +242,16 @@ if __name__ == "__main__":
242
  10,
243
  6,
244
  ],
 
 
 
 
 
 
 
 
 
 
245
  ]
246
 
247
  # modi examples setup
 
242
  10,
243
  6,
244
  ],
245
+ [
246
+ "data/xiyouji-ch1-zh.txt",
247
+ "data/xiyouji-ch1-de.txt",
248
+ "linear",
249
+ "None",
250
+ "None",
251
+ "None",
252
+ 10,
253
+ 6,
254
+ ],
255
  ]
256
 
257
  # modi examples setup
radiobee/error_msg.py CHANGED
@@ -6,7 +6,7 @@ import pandas as pd
6
  def error_msg(
7
  msg: Optional[Union[str, Exception]],
8
  title: str = "error message",
9
- ) -> Tuple[Union[pd.DataFrame, None], None, None, None, None]:
10
  """Prepare an error message for gradiobee outputs."""
11
  if msg is None:
12
  msg = "none..."
@@ -19,4 +19,4 @@ def error_msg(
19
  df = pd.DataFrame([msg], columns=[title])
20
 
21
  # return df, *((None,) * 4) # pyright complains
22
- return df, None, None, None, None
 
6
  def error_msg(
7
  msg: Optional[Union[str, Exception]],
8
  title: str = "error message",
9
+ ) -> Tuple[Union[pd.DataFrame, None], None, None, None, None, None]:
10
  """Prepare an error message for gradiobee outputs."""
11
  if msg is None:
12
  msg = "none..."
 
19
  df = pd.DataFrame([msg], columns=[title])
20
 
21
  # return df, *((None,) * 4) # pyright complains
22
+ return df, None, None, None, None, None
radiobee/gradiobee.py CHANGED
@@ -1,5 +1,7 @@
1
  """Gradiobee."""
 
2
  from pathlib import Path
 
3
  from itertools import zip_longest
4
 
5
  # import tempfile
@@ -26,6 +28,12 @@ from radiobee.trim_df import trim_df
26
  from radiobee.error_msg import error_msg
27
  from radiobee.text2lists import text2lists
28
 
 
 
 
 
 
 
29
  sns.set()
30
  sns.set_style("darkgrid")
31
  pd.options.display.float_format = "{:,.2f}".format
@@ -92,11 +100,17 @@ def gradiobee(
92
  # single file
93
  # when text2 is empty
94
  # process file1/text1: split text1 to text1 text2 to zh-en
 
 
95
  if not text2.strip():
96
  _ = [elm.strip() for elm in text1.splitlines() if elm.strip()]
97
  if not _: # essentially empty file1
98
  return error_msg("Nothing worthy of processing in file 1")
99
 
 
 
 
 
100
  _ = zip_longest(_, [""])
101
  _ = pd.DataFrame(_, columns=["text1", "text2"])
102
  df_trimmed = trim_df(_)
@@ -148,6 +162,11 @@ def gradiobee(
148
  # len1 = len(list1) # noqa
149
  # len2 = len(list2) # noqa
150
 
 
 
 
 
 
151
  file_dl = Path(f"{Path(file1.name).stem[:-8]}-{Path(file2.name).stem[:-8]}.csv")
152
  file_dl_xlsx = Path(
153
  f"{Path(file1.name).stem[:-8]}-{Path(file2.name).stem[:-8]}.xlsx"
@@ -156,18 +175,43 @@ def gradiobee(
156
  df_trimmed = trim_df(df1)
157
  # --- end else single
158
 
159
- try:
160
- cmat = lists2cmat(
161
- list1,
162
- list2,
163
- tf_type=tf_type,
164
- idf_type=idf_type,
165
- dl_type=dl_type,
166
- norm=norm,
167
- )
168
- except Exception as exc:
169
- logger.error(exc)
170
- return error_msg(exc)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
 
172
  tset = pd.DataFrame(cmat2tset(cmat))
173
  tset.columns = ["x", "y", "cos"]
@@ -320,26 +364,29 @@ def gradiobee(
320
 
321
  # df_aligned.likelihood = df_aligned.likelihood.apply(lambda x: np.nan if x in [""] else x)
322
 
323
- # style
324
- styled = df_aligned.style.set_properties(
325
- **{
326
- "font-size": "10pt",
327
- "border-color": "black",
328
- "border": "1px black solid !important"
329
- }
330
- # border-color="black",
331
- ).set_table_styles([{
332
- "selector": "", # noqs
333
- "props": [("border", "2px black solid !important")]}] # noqs
334
- ).format(
335
- precision=2
336
- )
337
- # .bar(subset="likelihood", color="#5fba7d")
 
 
 
338
 
339
- # .background_gradient("Greys")
340
 
341
- # df_html = df_aligned.to_html()
342
- df_html = styled.to_html()
343
 
344
  # ===
345
  if plot_dia:
 
1
  """Gradiobee."""
2
+ # pylint: disable=invalid-name
3
  from pathlib import Path
4
+ import platform
5
  from itertools import zip_longest
6
 
7
  # import tempfile
 
28
  from radiobee.error_msg import error_msg
29
  from radiobee.text2lists import text2lists
30
 
31
+ uname = platform.uname()
32
+ HFSPACES = False
33
+ if "amzn2" in uname.release: # on hf spaces
34
+ HFSPACES = True
35
+ import SentenceTransformer
36
+ model_s = SentenceTransformer('sentence-transformers/distiluse-base-multilingual-cased-v1')
37
  sns.set()
38
  sns.set_style("darkgrid")
39
  pd.options.display.float_format = "{:,.2f}".format
 
100
  # single file
101
  # when text2 is empty
102
  # process file1/text1: split text1 to text1 text2 to zh-en
103
+
104
+ len_max = 2000
105
  if not text2.strip():
106
  _ = [elm.strip() for elm in text1.splitlines() if elm.strip()]
107
  if not _: # essentially empty file1
108
  return error_msg("Nothing worthy of processing in file 1")
109
 
110
+ # exit if there are too many lines
111
+ if len(_) > len_max:
112
+ return error_msg(f" Too many lines ({len(_)}) > {len_max}, alignment op halted, sorry.", "info")
113
+
114
  _ = zip_longest(_, [""])
115
  _ = pd.DataFrame(_, columns=["text1", "text2"])
116
  df_trimmed = trim_df(_)
 
162
  # len1 = len(list1) # noqa
163
  # len2 = len(list2) # noqa
164
 
165
+ # exit if there are too many lines
166
+ len12 = len(list1) + len(list2)
167
+ if len12 > 2 * len_max:
168
+ return error_msg(f" Too many lines ({len(list1)} + {len(list2)} > {2 * len_max}), alignment op halted, sorry.", "info")
169
+
170
  file_dl = Path(f"{Path(file1.name).stem[:-8]}-{Path(file2.name).stem[:-8]}.csv")
171
  file_dl_xlsx = Path(
172
  f"{Path(file1.name).stem[:-8]}-{Path(file2.name).stem[:-8]}.xlsx"
 
175
  df_trimmed = trim_df(df1)
176
  # --- end else single
177
 
178
+ logger.debug("lang1: %s, lang2: %s", lang1, lang2)
179
+ if debug:
180
+ print("gradiobee ln 179 lang1: %s, lang2: %s" % (lang1, lang2))
181
+ print("fast track? ", lang1 in lang_en_zh and lang2 in lang_en_zh)
182
+
183
+ # fast track
184
+ lang_en_zh = ["en", "zh"]
185
+ if lang1 in lang_en_zh and lang2 in lang_en_zh:
186
+ try:
187
+ cmat = lists2cmat(
188
+ list1,
189
+ list2,
190
+ tf_type=tf_type,
191
+ idf_type=idf_type,
192
+ dl_type=dl_type,
193
+ norm=norm,
194
+ )
195
+ except Exception as exc:
196
+ logger.error(exc)
197
+ return error_msg(exc)
198
+ # slow track
199
+ else:
200
+ if len(list1) + len(list2) > 200:
201
+ msg = (
202
+ "This will take too long (> 2 minutes) to complete "
203
+ "and will hog this experimental server and hinder "
204
+ "other users from trying the service. "
205
+ "Aborted...sorry"
206
+ )
207
+ return error_msg(msg, "info ")
208
+ try:
209
+ vec1 = model_s.encode(list1)
210
+ vec2 = model_s.encode(list2)
211
+ cmat = vec1.dot(vec2.T)
212
+ except Exception as exc:
213
+ logger.error(exc)
214
+ return error_msg(exc)
215
 
216
  tset = pd.DataFrame(cmat2tset(cmat))
217
  tset.columns = ["x", "y", "cos"]
 
364
 
365
  # df_aligned.likelihood = df_aligned.likelihood.apply(lambda x: np.nan if x in [""] else x)
366
 
367
+ if len(df_aligned) > 200:
368
+ df_html = None
369
+ else: # show a one-bathc table in html
370
+ # style
371
+ styled = df_aligned.style.set_properties(
372
+ **{
373
+ "font-size": "10pt",
374
+ "border-color": "black",
375
+ "border": "1px black solid !important"
376
+ }
377
+ # border-color="black",
378
+ ).set_table_styles([{
379
+ "selector": "", # noqs
380
+ "props": [("border", "2px black solid !important")]}] # noqs
381
+ ).format(
382
+ precision=2
383
+ )
384
+ # .bar(subset="likelihood", color="#5fba7d")
385
 
386
+ # .background_gradient("Greys")
387
 
388
+ # df_html = df_aligned.to_html()
389
+ df_html = styled.to_html()
390
 
391
  # ===
392
  if plot_dia:
requirements.txt CHANGED
@@ -13,6 +13,7 @@ seaborn
13
  cchardet
14
  tabulate
15
  git+https://github.com/ffreemt/fast-langid
 
16
  # python-dotenv
17
  varname
18
  openpyxl
 
13
  cchardet
14
  tabulate
15
  git+https://github.com/ffreemt/fast-langid
16
+ sentence-transformers
17
  # python-dotenv
18
  varname
19
  openpyxl