限りなき知の探訪

45年間、『知の探訪』を続けてきた。いま座っている『人類四千年の特等席』からの見晴らしをつづる。

百論簇出:(第243回目)『真打登場:「資治通鑑に学ぶリーダー論」(その14)』

2019-02-24 09:50:14 | 日記
前回

テーマ5:検索の柔軟性 ― 検索語の順序や熟語分割(承前)

テーマ5-3:(複数の)検索語がヒットしたあと、該当個所の前後の文章を表示する。


一般的に検索をするときは、検索語の箇所だけではなくその前後の箇所も見たいはずだ。それも、ある時は、少なく、また別の時はもう少し多くの行を見たいと思うだろう。私の検索システムは前回も述べたように原文を行単位(大体、漢字で30文字程度)に区切っているが、少なく表示するときは該当個所の前後3行ずつ表示する。もう少し多く表示したい時は、前後6行ずつ、もっと多い時には前後9行ずつ表示することができる。こうすることで字句が使われている前後関係が良く分かると同時に、もしヒットする個所が多い場合には検索語にどういった語句を追加すればよいかを知ることができる。

表示の時のひと工夫として、新字体表示も可能となっている。中国(大陸、台湾)で入力されているので原文は旧漢字であるが、表示の時に新漢字であることが便利なことも多い。結局、漢文を検索する時に、入力も出力も新漢字にすることで、手間が随分と省ける。

また、私の検索システムはWindows上で動くため、プログラム作成上、文字コードはShift-JISを採用している。そこで問題なのは、Shift-JISで表示できない漢字であるが、それらはUnicodeの番号で表記している。例えば資治通鑑の巻10(BC204年)、韓信率いる劉邦の軍が陳余の軍を「背水の陣」で破るという見せ場だが、直前に韓信の軍を井陘口で待ち伏せして叩き潰せと陳余の軍師の李左車が提案するが、韓信を侮っていた陳余はその提案を退ける場面は次のような表示になっている。

 冬十月、韓信、張耳以兵數萬東撃趙。趙王及成安君
 陳餘聞之、聚兵井#9658;口、號二十萬。廣武君李左車説成安君曰:
 「韓信、張耳乘勝而去國遠#9B2C;、其鋒不可當。臣聞『千里餽糧、
 士有飢色;樵蘇後爨、師不宿飽。』今井#9658;之道、車不得方軌、騎
 不得成列;行數百里、其勢糧食必在其後。。。


ここでは、「井#9658;口」と「#9B2C;」がShift-JISにないので #xxxxx; のような形式で表示されている。これだと、どのような漢字か分からないが、検索を考えると全く問題はない。また、これを正しい漢字+新漢字で表示したいときには、バッチコマンド(内部的にはrtfconv.comを使っている) を使い瞬時に下記のように変換して表示できる。

  冬十月、韓信、張耳以兵数万東撃趙。趙王及成安君
 陳余聞之、聚兵井陘口、号二十万。広武君李左車説成安君曰:
 「韓信、張耳乗勝而去国遠鬬、其鋒不可当。臣聞『千里餽糧、
 士有飢色;樵蘇後爨、師不宿飽。』今井陘之道、車不得方軌、騎
 不得成列;行数百里、其勢糧食必在其後。。。


ちなみに、私のシステムで Shift-JIS をベースにしているのは、漢文検索システムを開発している時には awk が Unicode を扱えなかったから、しかたなくShift-JISベースで検索システムを構築したからである。現在となっては、awk でもUnicodeが使えるようなので、将来的には蓄積データも検索システムも Unicode で統一することはあるかもしれないが、現時点ではそこまでする必要性を感じていない。



テーマ5-4:手持ちの本で該当個所のページを表示する。

漢文を行単位で検索するメリットの一つは、手持ちの本のページ数を算出できることだ。日本語の本を読んで漢文のあるフレーズに出会った時、その個所を意味を自分で確認したい時がある。

例えば、徒然草・第239段に近友の自慢話として堀川大納言(藤原師信)が論語の中で「紫の朱を奪うを悪む」という句の場所を探していた時に「九の巻にある」と教えてあげたことが載せられている。

この部分は確かに巻9に『子曰:「悪紫之奪朱也…」』という句がある。ところが私の手持ちの岩波文庫の論語には巻9は24ページにもわたる。巻番号が分かってもページ数までは分からない。こういう場合は、巻の始めのページからしらみつぶしに見ていくか、それとも本のインデックスを検索するか、のいづれかの方法しかないであろう。

どちらにしても、手間がかかる。それで私の漢文検索システムでは次のような方法でもう少しチェックする個所を絞ることができるようにした。

原文が行単位に区切られているのでまず巻番号のリストを作る。例えば、岩波文庫の論語では次のようになる

    検索行  :  論語:岩波文庫の該当ページ
4BRON.JPN: 54 : 論語(岩波文庫)學而  第一 : 17
4BRON.JPN: 75 : 論語(岩波文庫)爲政  第二 : 26
     (中略)
4BRON.JPN: 642 : 論語(岩波文庫)陽貨  第十七 : 236
4BRON.JPN: 688 : 論語(岩波文庫)微子  第十八 : 251
     (後略)

検索行がヒットしたところの行数から巻数(あるいは編数)とその巻数の始まりと終わりの行数が分かる。本の一行当たりの文字数は必ずしも一定ではないが、大体の目安として一定文字数と見なして、ヒットした行がその巻の初めから何%の所にあると分かるのでそれをページ数に按分して検索がヒットした個所のページ数を算出する。

例えば今回の例では次のように、245ページの中あたり(該当編の中で前から63%のところ)にあることが分かる。

4bron.jpn: 671 :: 蕩;古之矜也廉、今之矜也忿戻;古之愚也直、今之愚也詐而已
矣。」子曰:「巧言令色、鮮矣仁。」子曰:「惡紫之奪朱也、惡鄭聲之
==> [論語(岩波文庫)陽貨  第十七] Page[245.4] : [63]% : [642]--[688]


ただ、この方法では日本語での解説が多く入っていたりするとページがかなり外れることがある。その時は、一番上で説明したインデックス表を更に細分化することで解決できる。大抵の本は1,2ページずれていても、探している文句は容易に見つかるものだ。

このように、いろいろな工夫をすることで従来では紙の本を手作業で、あるいは記憶に頼って探していた漢文の検索作業をコンピュータに委ねることができる。これもひとえに中国(大陸、台湾)が ― 多分、経済採算性を無視して ― 熱心に原典をインプットし Webにアップロードしてくれたおかげである。多謝!

続く。。。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

想溢筆翔:(第392回目)『資治通鑑に見られる現代用語(その235)』

2019-02-17 08:08:08 | 日記
前回

【334.不肖 】P.4440、AD499年

『不肖』とは「才能がなく、愚かであること」という意味で自分をさす謙遜語でもある。元来「肖」とは「肖像画」からも分かるように「似せる」という意味である。従って「不肖」は「似ていない」という一般的な意味を持つが、漢文中では似る対象がほぼ父親に極限されている。つまり「不肖」とは「父親は偉いのに、息子は馬鹿だ」という意味だ。

中国の辞書『説文解字』の「肖」の解説には次のような説明がある:「骨肉相似也。从肉小声。不似其先,故曰“不肖”也」(骨肉、相い似るなり。肉扁で発音は「小」。これから先祖に似ないことを“不肖”という)。

この説明で明らかなように、「不肖」とは元来「容貌が父親に似ていない」という外面的・肉体的なことを指していたのが、外延的に行動・性格が似ていないという意味に拡大したということが分かる。

「不肖」を二十四史(+資治通鑑+続資治通鑑)で検索すると、下の表のようになる。四書五経(孟子、礼記)にも見える語なので、古くから極めて多く用いられていることが分かる。



さて、資治通鑑で「不肖」が使われている場面を見てみよう。

北魏の賢帝といわれた孝文帝(拓跋宏)が33歳の若さで崩御した。資治通鑑は臨終の様子を描写したのち、次のように孝文帝が親族に対して情愛深かったと褒める。

 +++++++++++++++++++++++++++
孝文帝(高祖)は終生、弟・従弟たちを分け隔てなく慈しんだ。ある時、咸陽王・拓跋禧たちにしみじみと次のように語った。「もし、我が子孫が不肖であったなら前たちが判断して、教え諭し甲斐があるなら補佐してくれ、そうでないならお前たちが代わりに帝位に就いてもいいが、他人には帝位を奪われるようなことはするな。」

孝文帝は賢者や能力のある者を登用し、彼らの忠告を素直に受け入れた。朝から晩まで政務に励み、常に次のように言っていた「人主として難しいのは公平な心を持つことと、わだかまりのない誠心を持つことだ。この二つができたなら蛮族(胡人、越人)たちとも兄弟のようにやっていける。」法律を厳格に適用し、大臣と雖も不法な行いは容赦せずに罰した。その一方で、小さな過ちには目をつぶった。例えば、かつて食事の中に虫が入っていた、別の時には給仕人が熱いスープをこぼしたので、帝の手に軽い火傷ができたが、いづれも笑って済ませた。

高祖友愛諸弟、終始無間。嘗従容謂咸陽王禧等曰:「我後子孫邂逅不肖、汝等観望、可輔則輔之、不可輔則取之、勿為他人有也。」

親任賢能、従善如流、精勤庶務、朝夕不倦。常曰:「人主患不能処心公平、推誠於物。能是二者、則胡、越之人皆可使如兄弟矣。」用法雖厳、於大臣無所容貸、然人有小過、常多闊略。嘗於食中得虫、又左右進羹誤傷帝手、皆笑而赦之。
 +++++++++++++++++++++++++++

中国を政治の最大の問題点は、韓非子の時代から現代に至るまで「人治」ではなく「法治」を行えるかどうかである。

中国には法律書は古くから完備されているものの、資治通鑑を読むとよく分かるが、それらはいわば皇帝や官僚の自己満足の為の書き物に過ぎず、実態は法律が公平に適用されたことは至って少ない。

それ故、賢帝や賢臣の一つメルクマール(目印)は法を厳格に適用できたかどうかだ。ここに書かれているように孝文帝は「用法厳、於大臣無所容貸」、つまり法に違反したものは貴顕といえども厳格に処罰したということだ。こういった文句が臨終後、敢えて誉め言葉として記述されるほど、法を厳格に適用した賢帝・賢臣が少なかったということになる。

続く。。。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

【麻生川語録・47】『ジグゾーパズル式の歴史理解』

2019-02-10 15:16:30 | 日記
これまで何度か書いているように、私は20歳になるまでは歴史が嫌いで、数学・物理(それと英語)が得意な、典型的な理系人間であった。しかし、『徹夜マージャンの果てに』に書いたように、20歳から俄然、人文系にのめり込むようになった。全く勝手の分からない分野の本を乱読したが、まるで迷路に入り込んだような気分であった。

早いもので、それから40年経って、振り返ってみると当初全く駄目であった歴史物が ― 部分的にではあるが ― 手に取るように分かるようになった。とりわけ、中国の歴史は史記や春秋左氏伝という偉大なる史書の日本語訳を読み、大いなる感動を受けてから、とうとう資治通鑑を原文で読み通すにまで至った。それ以外にも中国のものは歴史や哲学・思想だけでなく書道や絵画、陶磁器、彫物などの芸術分野にいたるまで随分幅広く関心があった。

一方、ヨーロッパ文明に関しては20歳代の始めにドイツに一年間留学していた時にヨーロッパ各国を8ヶ月ばかり旅行した。各地に残る歴史的建造物や博物館や公園、町並みや自然の風景を見ることで、その後、ヨーロッパの歴史を読む都度、「あの土地のことを言っているんだな」とか、「あの建物の中で起こったことなんだ!」とか、歴史的な事件をいわばバーチャル体験することも何度かあった。これから振り返ってみると、高校で世界史を習っていた時には、全く頭に残らなかったヨーロッパの歴史の一コマ一コマが易々と記憶できるようになった。

このような体験から、もし私が高校時代の歴史苦手の自分自身に出会って歴史の学び方を教えてあげるとしたら次のような事を言いたいと思っている。(話が拡散するのを避けるため、今回は中国の歴史について語ることにしよう。)

 ======================

まず、歴史をきっちりと学ぼうとするな、と言いたい。

「きっちり学ぶ」とはどういうことか? それはあたかも、四角い部屋に四角タイルを端から、きっちりと敷き詰めるようなやり方で、歴史を古代から時代通りにに全ての事柄を網羅的に学ぶようなやり方である。このような試験勉強的なやり方で歴史を学ぶと必ず歴史嫌いになることは間違いない。

私のお勧めは「ジグゾーパズル式の歴史理解」だ。

「ジグゾーパズル」を作るときの事を考えてみよう。誰でも、机の上に積まれたジグゾーパズルの山から適当にどれか一つを取り出し、机の真中に置くだろう。その時、それがどのピースとつながるのか、あるいは、どこに置くのがよいのかは全く見当がつかないであろう。しかし、取り上げたそのピースの形や色、柄は必ず頭にしっかりと残るはずだ。

その後、次々とピースを取り出しては机の上に並べていく。そうすると、徐々に全体の輪郭が見えてくるだろう。新たに手にしたピースと既に置いてあるピースとが意外な結びつきにびっくりする時もあるだろう。あるいは、全く手がかりがつかめず置き所にこまるピースもあるだろう。ジグゾーパズルの面白さは、まさにピースの一つ一つがストーリーを持って全体の図柄を形成していくところにある。



私のいう「ジグゾーパズル式の歴史理解」とはまさしく、歴史の一コマ一コマをあたかもジグゾーパズルのピースのように先ずは前後関係を無視してそのピースが持つストーリーをじっくりと味わうことから始まる。中国の歴史でこのピースに相当するのが、故事成句に見られるような、細切れのストーリーだ。

そこでまず、故事成句を集めている辞典や読み物を手に取ってみよう。例えば『故事 名言 中国編』(主婦と生活社)、『中国の思想 (別巻) 中国の故事名言』(徳間書店)、『中国の歴史と故事』(旺文社文庫)、あるいは『蒙求』(明徳出版社)などがある。これらの本には、ジグゾーパズルのピースのように故事や成句が次々と出てくる。これらの故事や成句は時代順に並んでいないので、一つ一つのピースがどのような関連にあるかは分からない。しかし、時代背景や前後関係は無視して、それぞれのピースの内容を味わって見てほしい。

例えば、以前のブログ
 沂風詠録:(第5回目)『漢文教育の重要性』
では「騎虎の勢い下るべからず」や「間髪をいれず」といった故事成句を紹介したが、いづれも時代背景や前後関係を全く知らなくても充分理解できる話である。

そういったピースが頭の中に数多く入ったら、次はそれらをつなぐために、年代に沿った記述をしている歴史の読み物を繙いてみよう。例えば『新十八史略』(河出書房新社)や陳舜臣氏の歴史読み物(例:『小説十八史略』『中国五千年』『中国の歴史』など)がある。読んでいるうちに、故事成句の時に集めたピースに出会うと、見知らぬ土地で友人に出会ったようなほっとした気分になる。そうすると、そこまで興味の持てなかった事項にも急に関心がわき、さらには今までは単なる一点の知識しかなかったが、それが急に面となって広がっていく。

最後の仕上げは、史記や春秋左氏伝を現代語訳でいいから通読してみよう。この時注意しないといけないのは、勉強モードで、タイルをきちんと敷き詰めるようなやり方で読まないことだ。面白くない所はさっさと飛ばして行こう。先に行って、話の辻褄が合わなかったら、その時は飛ばした場所に戻って読み返せばよいだけの話だ。一回でもいいから史記と春秋左氏伝を最後まで読むと、今までのピースが、面白いように全てつながってくることを実感するだろう。

そうなれば、次のフェーズは本格的に中華書局版の漢文のオリジナル版を買って(例:書虫『史記』)気に入った個所の原文を眺めてみるのも一興だ。。。

とまあ、以上のようなアドバイスを、かつての歴史嫌いであった若造の自分自身にしてあげたいと思っている。。。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

百論簇出:(第242回目)『真打登場:「資治通鑑に学ぶリーダー論」(その13)』

2019-02-03 12:20:13 | 日記
前回

テーマ5:検索の柔軟性 ― 検索語の順序や熟語分割

そもそも、私が漢文システムを自作しようと考えたのは、日本語や漢文の本を読んでいた時に原典の文章をチェックしたいためであった。前々回にも少し触れたが、この時、特に日本語の文章に現れる漢字を幾つか拾いだすことで、引用個所が見つかるようにしなければならない。また、前回述べたように難しい漢字は入力を省略しても探せるようにしたいなど、使い勝手のよい柔軟な検索を実現することを目指した。そのためには幾つかのステップを踏んで行った。

ステップ5-1:ダウンロードした原文(大抵は html ファイル)をほぼ同じ長さ(だいたい 30文字)に揃えて格納する。

ステップ5-2:内部的に(メモリー上で)この形式の二行(オプションとして三行も可)を一行に連結し、それに対して複数の検索語を順不同で検索する。

ステップ5-3:(複数の)検索語がヒットしたあと、該当個所の前後の文章を表示する。

ステップ5-4:手持ちの本で該当個所のページを表示する。

これらの点について説明しよう。

ステップ5-1:ダウンロードした原文(大抵は html ファイル)をほぼ同じ長さ(だいたい 30文字)に揃えて格納する。

html ファイルには、基本的に行数という概念が存在せず、節(ブロック)あるいはファイル全体が一単位となる。というのはブラウザーの横幅が自由に変えられるので行番号を振ることができないからである。そのようなファイル形式であるので Google検索のようにファイル全体の検索には向いているが、漢文検索において期待されるのはファイルの中や、大きな文章の塊の中に複数の検索語が存在するというのではなく、検索語同士が限られた近傍に存在するというケースだ。ここでいう「限られた近傍」とは、文章の1行か2行のことで、大体50文字程度を指す。

このテーマをコンピュータシステム的に考えると、検索語がファイルの先頭からどの位置にあるかを見つけ、全部の検索語が一定の範囲に入っているかを見つければいいことになる。しかし、これを本格的に実現しようとすると、テキストデータベースの構築とNamazuなどのテキスト検索システムなど、かなり大がかりなプログラム開発が必要となり、とても片手間ではできない。また、このような大規模なシステム開発で得てして起こる問題は、自分の期待する結果が得られなかった時に、改造の方法が簡単には分からないということである。

このような懸念から、私の「自作漢文検索システム」は簡便に(安直に)行単位の検索をすることにした。この検索エンジンは grep をソースコードから改造したもので、私が欲しいオプションは適宜追加した。しかし、元来が grep であるので、漢文の原文を30文字程度に切って行単位に格納する必要があった。

このシステムの欠点は、検索速度の遅さということになる。実際、十数年前に作った時は、まだハードディスクが玉軸受(ボールベアリング)で回転していて、遅かったので一回の検索に2分近くかかったこともあった。しかし、その後流体軸受けになり回転数も上がったので検索が早くなった。さらに、搭載メモリーが大きくなったので、一回検索すると、かなりのボリュームの原文がメモリー上に載ったままになるので、実質的に SSD(Solid State Drive)のパソコンで検索しているのと同等の速度となる。私の現在のパソコン+データ量の環境では検索がだいたい30秒以内で完了する。

ステップ5-2:内部的に(メモリー上で)この形式の二行(オプションとして三行も可)を一行に連結し、それに対して複数の検索語を順不同で検索する。 

しかし、行単位に区切ると、原文ではつながっている熟語が二行にまたがってしまう場合がある。そうなると、二語以上の熟語は検索にヒットしないことになる。それで、内部的に二行を一行にメモリー上で連結して、その長い行に対して検索をかける。たとえば、1, 2,3,4,5 の5行を検索するときは、内部的には毎回一行をずらして、(1+2),(2+3),(3+4),(4+5)... のような連結行を作ってそれに対して検索する。ただ、時には節の終わりの部分などでは、一行の中に数文字しかないことがある。そういった場合は、連結行も字数が少なくなり、検索がヒットしないこともあり得る。それで内部的に三行を連結して検索するオプションも加えた。



この検索のときに重要なのが「順不同」という点である。

「順不同」つまり検索語の入れる順序と関係なく検索するというのはGoogle検索などでは当たり前であるが、「寒泉」のような漢文検索では出来ないことは以前のブログ記事で述べた。日本語の本を読んでいる時や、うろ覚えの漢文のフレーズのように正しい順序でなくとも検索できるようになっていないと意味がない。

順不同やうろ覚えで字句を入力すると、都合のよいことにしばしば類似の文句が予期せずに見つかることである。いわゆる「あいまい検索」のようなものだ。「あいまい検索」をして分かるのは、昔の人は文章を書くときにいちいち文句を確かめていなくて、暗記していた文句を書いているということだ。根幹の部分は同じでも細部に於いては多少異なる。

たとえば「前事之不忘、後事之師也」(前事の忘れざるは後事の師なり)という言葉があるが、これには下に挙げるようにいくつかのバリエーションがある。
 前事者、後事之師
 前事之不忘、後事之師
 前事之不忘、後代之元亀也
 前事不忘、後事之戒 [*]
 前事不忘、後事之師
 前事不忘、後事之師也
 前鑑之験、後事之師也


このような文句「全て」を検索するには、「前事 忘 後事 師」と入力する。(この時、[*]を付けた「前事不忘、後事之戒」は「師」という文字は含まれていないが、その前の行にたまたま師があるのでヒットした。 )使っている内に実感したのだが、この「あいまい検索」は類似の文章を検出するのに非常に有効で重宝する機能だ。私は今まで資治通鑑関連の本を3冊(角川新書小学館新書河出書房新社)上梓しているが、資治通鑑の元になった文章を見つけるのにこの検索機能が非常に役立っている。

さらに、「あいまい検索」の利点は句点を無視して検索することだ。本やWebサイトによって、句点を打つ場所が微妙に異なることがある。その時、原文通りの句点でなくとも検索できるのは非常にありがたい。

また、普段入力しない(できない)ような難しい漢字はわざわざ打ち込まなくとも探せるのは都合がよい。また、Webサイトでは read-proof されていないことが多く、しばしば間違った字や、異字体が入力されていることがある。(例えば、「いもうと」の字には、「妹」「妺」があるが、たまに後者の「妺」(女扁に末)が入力されている。)そういう文字はだいたい決まっているので、入力して見つからない場合はそのような文字を除外して検索すると見つかることが多い。

文字を順不同で検索した後で、もし検索結果が多すぎたり、語順通りに見つけたい場合は、二段階で検索すれば良い。このような場合、コンピュータ用語でいう正規表現を使っても探すことが可能である。(私の場合は、自作のプログラム mgrep を使う。)要は、一度ざっくり検索してからその結果に対して、細かく分析するという考えればよい。一度の検索で、ばっちり正解を見つけるというしゃちこばった考え方を取らない方が応用範囲が広いということだ。

この機能は、何も漢文だけに限らず西洋語にも有効である。例えば英文やラテン語の文章を検索するとき ― とりわけラテン語は語尾活用が多様なので語尾を省いて入力し ― 幾つかの単語を入れて検索すると探している文句を見つけることができる。

続く。。。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする