限りなき知の探訪

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

智嚢聚銘:(第39回目)『中国四千年の策略大全(その 39)』

2023-09-24 10:53:55 | 日記
前回

前回と同じく、今回も古典の教養のありなしが運命を分けたお話。

明・嘉靖帝(世宗)は性格(大阪弁では「いらち」という)であったようだが、どうやら本来の性格ではなく、不老長寿の仙薬(丹薬)を長期間、服していたための中毒症状であったように私には思える。仙薬とはあたかも、仙人になれる聖薬のようだが、実は、水銀、ヒ素など多くの重金属を含む全くの毒薬である。過去、この仙薬で暴死している皇帝は何十人といる。このような皇帝の機嫌を損なうと、まさに韓非子がいう「逆鱗に触れ」、極刑は免れがたい。世慣れた処世術が問われる。

 ***************************

 馮夢龍『智嚢』【巻20 / 769 / 楊廷和顧鼎臣】(私訳・原文)

また別の時、嘉靖帝が宦官に科挙の試験である郷試の問題を読み上げさせていた所、《論語》の中の「仁以為己任、不亦重乎」(仁、もって己が任となす。また、重からずや)という句があった。それを聞いた帝が「この下の文は何といった?」と尋ねると、宦官は機転を利かせて「この下の文は『興於詩』(詩に興こる)云云です」、と答えた。この宦官は智恵が回るというべき人だ。

又命内侍読郷試録、題是「仁以為己任、不亦重乎」、上忽問:「下文云何?」内侍対曰:「下文是『興於詩』云云。」此内侍亦有智。

 ***************************

これも、論語の句を知らないと意味が分からない。

《論語》の巻4に「仁以為己任、不亦重乎」の句が見える。これは孔子の弟子の曾子が述べた言葉で、「士人(教養人)は強くなければいけない。なぜなら、重責をずっと背負っていかねばならないからだ。仁愛(人に対する愛情)を施すことを己の任務とする。至って大変なことだ。」」」( 曾子曰:「士不可以不弘毅、任重而道遠。仁以為己任、不亦重乎」)とある。

すぐ下に「死而後已、不亦遠乎」(「(仁愛は)死ぬまでつづけないといけない。」)という句が続く。ここには「死」という不吉な字が見える。宦官は機転を利かせて、わざとこの句を飛ばして、次の節の「興於詩、立於礼、成於楽」(詩に興こり、礼に立ち、楽に成る)を続けて読んだ。



 ***************************

 馮夢龍『智嚢』【巻20 / 770 / 宗沢】(私訳・原文)

北宋の徽宗の政和時代(1110年ごろ)、宗沢が莱州の掖県の知事であった。戸部省が都の恵民和剤局に薬を作らせるため、提挙司に命じて牛黄を全国から集めさせた。あまりに急な催促なので、在庫がたりなくなり、仕方なく方々で牛を殺して牛黄を取った。牛黄を用意できない人たちは役人に賄賂を贈って供出を免れようとした。宗沢だけは提挙司に堂々と次のような文を送った。「牛というのは病気が蔓延した歳には牛黄を多く出しますが、今は長年にわたって天下泰平で病気の牛がいないので、残念ながら牛黄を取ることはできません。」牛黄を取り立てにきた役人は返す言葉がなかった。これによって掖県は牛黄の供出は免除されたので、皆大喜びであった。

宗汝霖沢政和初知莱州掖県時、戸部著提挙司科買牛黄、以供在京恵民和剤局合薬用、督責急如星火。州県百姓競屠牛以取黄。既不登所科之数、則相与斂銭以賂吏胥祈免。〔辺批:弊所必至。〕汝霖独以状申提挙司、言「牛遇歳疫則多病有黄、今太平日久、和気充塞、県境牛皆充腯、無黄可取。」使者不能詰、一県獲免、無不歓戴。

 ***************************

中国には昔から「上に政策あれば下に対策あり」という諺があるようだが、その恰好の実例がこの話だ。

牛黄とは牛の胆嚢にできる結石で、昔から漢方薬として、解熱作用、精神安定作用、降血圧作用、造血作用、強心作用、などがある薬として知られている。ただ、牛黄を持つ牛は千頭に一頭程度といわれているので、無駄に多くの牛を殺さないといけないことになる。そこで、宗沢は、「牛黄は牛が病気にならないと取れない」という理屈をでっちあげ、「政治がうまく行っている我が県では牛は至って健康である。よって牛黄はとれない」とさかねじを食らわせた。中国の歴史には、正義心が強く、厚顔で、自前のでっち上げ理論で堂々とお上に楯突く硬骨漢がしばしば登場する。

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

百論簇出:(第276回目)『シニア・エンジニアのPython事始(その2)』

2023-09-17 08:19:43 | 日記
前回

前回述べたように、私がしたいのは、
 「コンピュータに自動で、複数のフォルダーを横断的に検索して、所望の複数の検索ワードにヒットするファイルを探し出す」
ことである。ここで対象とするのはテキストファイル以外のファイル、具体的にはマイクロソフトのOffice 製品の doc(docx) xls(xlsx) ppt(pptx) およびPDFファイルである。

これら全ての種類のファイルを検索するプログラムはすでに xgf という名で作っているが、今回、Python を使ったのは、PPTX ファイルに特化した検索だ。というのは、従来、xdoc2txt.exe を内部的に使っていて(Web上に存在するMiGrepも同様に内部的にxdoc2txt.exe を使っている)、PPTではこれで、曲がりなりにも十分検索できたのだが、PPTXではノート部が検索できなかった。(もっとも、xdoc2txt.exe では、本文とノート部は別々の場所にテキスト化されているので、チェックするのに不便ではあるが。。。)

ノート部のテキストも含めて検索できるようにするために、Webで「Python PPT テキスト化」のようなキーワードで検索して所望のPython コードを発見できた、それも、数種類見つかった。



余談になるが、これらのコードはどれも数十行程度で、簡単にコピペをして run させてみることができる。いくつか調べてみて、私はようやく「何故 Python が人気があるか?」理解することができた。というのは、以前から Python はライブラリーが豊富だとは聞いていたが「それなら、C言語にもあるのになあ」と、Pythonが人気の秘密が分からずにいたのだが、実際に使ってみると、Pythonのライブラリーでは、呼び手側の関数でのパラメータ宣言が全く不要だと分かった。この差は非常に大きい。つまり、Pythonでは単に必要なライブラリーを import するだけでよく、これは、C言語と比べると、全く信じられないような簡便さだ。その上、C言語のように、実行環境ごとに微妙に異なる修正が不要だ。(もっとも、その代わりにライブラリー関数の実行速度はC言語よりかなり遅いのは、欠点といえば欠点だが。。。)

さて、本論にもどって、私が今回作成したPPTXのテキスト部抽出のプログラム pptx2txt では、WindowsのDOSプロンプトのbatchファイル、Python、そしてAWK の3つのプログラムを組み合わせて使っている。ソフトウェア業界では、暗黙の了解として、プロの作るプログラムは、極力一つのプログラミング言語で作業を行うことになっているが、これは、バグつぶしのメンテナンスのしやすさやなどから考えて、そうなったものであろう。しかし、実世界において異種の混淆はあたりまえだ。たとえば、家具を作る場合を考えてみると、木材、鉄鋼、プラスチックなど多くの異種材料が使われている。材料はそれぞれ得意分野が異なるので、適材を適所に使うのは当然のことだ。また、プロのプログラムでは、処理途中では余計なファイルは極力作らずに、メモリー内で処理しようとするが、これがバグ検出や改造を難しくしている。実行途中で、一時的なファイルを作っておくと、多少処理速度は遅くなるが、バグつぶしが格段に易しくなる。こういう考えに基づき、私のプログラムは速度より、バグ検出、改造の容易さを主眼にしている。

結局、私の所望する、PPTXからの文字抽出ソフト [pptx_text.py] は、下記のサイトを参考にして作った。
https://1upnoob.blogspot.com/2022/03/python-pptx-text-mining.html
----------------
# -*- coding: Shift-JIS -*-

## pptx の中の text を全て抽出する

import collections
import collections.abc
from pptx import Presentation
import pptx
import sys

def pptx2text(inf, outf):
  text_runs = [] # 抽出したテキストデータを格納する空リスト
  prs = pptx.Presentation(inf)
  # スライドごとにテキストデータを抽出する

  ipage = 0;
  for sld in prs.slides:
    ipage += 1;
    text_runs.append("[Page:%02d]" %ipage)
    for shape in sld.shapes:
      # shapeに含まれるテキストデータを抽出
      if shape.has_text_frame:
        for text in shape.text.splitlines():
          text_runs.append(text + ' ')
      # tableに含まれるテキストデータを抽出
      if shape.has_table: 
        for cell in shape.table.iter_cells():
          for text in cell.text.splitlines():
            text_runs.append(text + ' ')

    text_runs.append('\n');
    text_runs.append("[Note:%02d]" %ipage);
    text_runs.append(sld.notes_slide.notes_text_frame.text + '\n')

  fout = open(outf, 'w', encoding='utf-8');
  fout.writelines(text_runs);
  fout.close(); 

def main():
  args = sys.argv;
  xx1 = len(args);
  if xx1 < 2:
    print("Usage: py pptx_best_text.py infile [outfile]");
    exit();
  else:
    inf = args[1];

  if xx1 >= 3:
    outf = args[2];
  else:
    outf = "jj.txt";
  pptx2text(inf, outf);

if __name__== "__main__":
 main();
----------------

ここで説明した、Pythonのプログラムでは入力PPTXファイルから本文とノート部のテキスト部をUTF8で取り出す。私は、テキストは、従来からの蓄積ファイルとの互換性を考えていまだにShift-JIS形式で保管している。それで、UTF8からShift-JISに変換するために rtfconv を使い、UTF8の文字でShift-JISで表現できないものは、#xxxx; のようなアルファニューメリックで表現している。

以上のような観点で、作る検索システムの骨格部は次のようになる。
1: py -B pptx_text.py inf.pptx tmpf1.txt
==> PPTXからテキスト(UTF8形式)を取り出すPythonプログラム(上掲)
2: rtfconv.com -h -cUTF8 -cJ -mK -mU tmpf1.txt > tmpf2.txt
==> UTF8をShift-JIS形式に変換。変換できない文字は、&#x□□□□;で表記される。
3: jgawk -f sub_cnv_ppt.awk -v OUTLEN=60 tmpf3.txt > outf.txt
==>&#x□□□□;形式は扱い難いので、#□□□□;に変更し、テキストとして見やすくしたり、検索した時に行数を知るために、横幅60バイト程度で折り返す。

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

智嚢聚銘:(第38回目)『中国四千年の策略大全(その 38)』

2023-09-10 09:32:22 | 日記
前回

徒然草の第238段に「紫の、朱を奪ふを悪む」という論語の文句が登場する。これは、堀川大納言(源具親)が皇太子(後の後醍醐天皇)からこの句の出典を尋ねられたので、探していたが見つからずに困っていた所、たまたまその場に来た兼好法師が教えてあげたという話だ。この話で、日本の朝廷でも論語は読まれていたことが分かるが、孟子は「易姓革命」理論が禍してか、日本では好まれなかったので、朝廷で読まれることはなかっただろう、と考えられる。

中国では、科挙に合格したような高級官僚は四書五経全部をすらすらと暗記していたので、本をひっくり返して調べることなく、頭の中から即座に関連する情報を取り出すことができた。

 ***************************
 馮夢龍『智嚢』【巻20 / 769 / 楊廷和顧鼎臣】(私訳・原文)

明の時代、嘉靖(1525年ごろ)の初めごろ、講官の顧鼎臣が《孟子》を嘉靖帝の御前で講じていたところ「咸丘蒙」の章で「放勛殂落」(放勛(聖王の尭)が死んだ)という語が出てきた。嘉靖帝と共に講義を聞いていた臣下の者たちは皆、色を失った。顧鼎臣は落ち着いて「堯はこの時、すでに御年120歳を越えておられました」と述べたので、聞いていた人たちは、ほっと一安心した。

嘉靖初、講官顧鼎臣講《孟子》「咸丘蒙」章、至「放勛殂落」語、侍臣皆驚、顧徐云:「堯是時已百有二十歳矣。」衆心始安。
 ***************************

明の嘉靖帝(世宗)は疑り深い性質であったため、些細な事で処刑されることが多かった。そういったぴりぴりした雰囲気が伝わってくるような話だ。

講官の顧鼎臣はたまたま不吉な単語の文章に出会ったが、そのまま講読したのであるが、帝の機嫌によっては厳罰もありうる。それで、一瞬、だれもが顧鼎臣の身の上を心配したが、顧鼎臣は、すらすらと堯の歳を述べたので、皆、胸をなでおろしたという次第。古典の教養が身を救ったということだ。




このケースは、たまたま何事も起こらなかったのであるが、近年の文化大革命時には『海瑞罷官』という京劇の台本がきっかけとなって大騒動になったことが想起される。

ところで、世の中には「放送禁止用語集」なるものがあり、放送の台本だけでなく、出版物に関しても、使う用語に縛りがかかっている。私は以前のブログ 
 百論簇出:(第112回目)『目に余る、単語の魔女狩り』
で述べたように現代日本のこのような傾向は行き過ぎと考えている。しかし、例えば以下のような中国の字句弾圧に比べると「なんとかわいいものか!」と思ってしまう。

 ***************************
 馮夢龍『智嚢』【巻20 / 769 / 楊廷和顧鼎臣】(私訳・原文)

嘉靖帝(世宗)の時代には禁止用語が数多くあった。ある時、科挙の出題で、めでたい句を選ばないといけないのに、《論語》から「無為而治」(何もしないのによく治まる)といった節や、あるいは《孟子》の「我非堯、舜之道」(私は堯、舜の道でなければ。。。)の二句が出題されたことがあり、いずれの場合も出題者は処罰された。というのは、嘉靖帝にはそれぞれの句が政治批判のように思われたからだ。「無為」というのは「何もしないで」ととらえ、「我非堯舜」の四字は、嘉靖帝は聖王ではない、と誹謗していると邪推したからだ。

世宗多忌諱、是時科場出題、務択佳語、如《論語》「無為而治」節、《孟子》「我非堯、舜之道」二句題、主司皆獲遣。疑「無為」非有為、「我非堯、舜」四字似謗語也。
 ***************************

嘉靖帝は、儒教の聖典の文句を自己流に解釈をして、官僚を処罰したが、明らかに断章取義もここに極まれり、という気がする。根本原因は嘉靖帝が論語や孟子の文章を正しく理解していなかったことに由来する。バカな君主を頂いたかわいそうな時代だった。

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

沂風詠録:(第356回目)『まんまとプーチンの罠にハメられたプリゴジン』

2023-09-03 09:04:18 | 日記
周知のように、先日(8/23日)ロシアのロシアの民間軍事会社「ワグネル」の創設者・プリゴジン氏のビジネスジェット機が墜落し、搭乗者全員が死亡した。墜落原因は不明だが、巷間ではプーチン大統領の暗殺説が有望だ。多分その推測が正しいだろう。この事件は、『本当に残酷な中国史 大著「資治通鑑」を読み解く』(P.194からP.197)に書いた、かつて唐の末期に王珂が陥った悲劇を彷彿とさせる。猜疑心の強い中国人でも、役者顔負けの見事な演技に見事に嵌められてしまった事件だ。

朱全忠は唐末に黄巣の乱で大混乱に陥った天下を平定するのに貢献し、後梁を建てた一代の英雄である。しかし朱全忠(朱温)はそもそも黄巣に従って唐政府の節度使である王重栄と戦って敗れ投降した人物である。王重栄の部下は朱全忠を殺せと言ったが、王重栄は朱全忠には見所があると言って殺さなかった。この処置に恩義を感じた朱全忠は王重栄と義理の甥舅(甥と伯父)という関係を結んだ。その上、『自分が高位に就いたら王氏みんなに恩返しをする』(我得志,凡氏王者皆事之)と、太陽と月に誓った。さて、王重栄には子供が無かったので、兄の子である王珂を養子とした。王珂は李克用の娘を妻とした。さて、時は移り、李克用が朱全忠と天敵の間柄になるに至って、王珂は朱全忠に攻められた。

++++++++++++++++++++++++++++
資治通鑑(中華書局):巻262・唐紀78・AD901年(P.8548)

朱全忠の部下の張存敬は軍隊を率いて晋州を出発し、河中に着き、王珂の軍を取り囲んだ。王珂は乏しい兵力では持ちこたえられないと考え、抜け出して都に向おうと考えたが、部下に説得され、城にとどまり、朝になると、城の四隅に白旗を立て、印章を持たせて、降伏の交渉をする使いを張存敬のもとに送った。張存敬はこの申し入れを受けて、開城するよう命じた。王珂は「私は昔から朱公(朱全忠)に我が家の事を相談してきた。貴卿(あなた)ではなく、朱公の到着をまって城を引き渡したい。」と答えた。張存敬はこの言い分を聞き入れて、朱全忠に使いを出した。

暫くして、朱全忠が洛陽に到着し、王珂が降伏したいとの意向を聞いて喜び、河中に向かった。朱全忠は虞郷に着くとまっさきに王重栄の墓に詣で、哭礼の儀式に則って哀悼した。籠城していた人達はこれを聞いて、ほっと安心した。朱全忠が城の前に到着したので、王珂は降伏の儀式どおり、手を縛り、羊を引いて城から出てきたが、朱全忠はその姿をみるや慌ててかけより「私の命を救ってくれた舅(王重栄)の恩をどうして忘れましょうか。若君にこのような恰好をさせたら、あの世で舅に会った時に会わせる顔がないではありませんか!」。こう言って、今まで通り、親しい間柄で王珂を出迎え、手を握って声をあげて泣いた。そして二人して馬に乗って並んで城の中に入った。

暫くして、朱全忠は王珂に、都に上り天子に面会するよう勧めた。その一方でこっそりと人を遣わして華州で王珂の一行を待ち伏せさせて殺した。
++++++++++++++++++++++++++++

朱全忠は腹の底では、既に王重栄の恩など忘れ、王珂を殺す予定であった。しかし、そういった悪だくみは露ほども見せずに、王重栄の墓に参り哭礼をし涙を見せた。それを聞いて王珂は疑いつつも、ほっと安心して投降した。朱全忠は王珂の手をとるやまたもや涙にくれた。こういった態度を見て王珂は完全に朱全忠に赦されたものだと安心した。それで上京するようにとの指示に何らの疑いも持たなかった。しかし、朱全忠は当初の予定通り、道中で王珂を暗殺させた。



以上の話を今回の配役で表現すると次のようになる:

ベラルーシの大統領のルカシェンコの説得でプリゴジンはプーチンの表面ばかりの言葉を真に受けてしまい、心の奥底を読めなかった。自家用ジェットであれば安心だと考えたプリゴジンは浅はかにも、信頼する部下もろともに、王珂の悲劇の二番煎じを演じてしまった。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする