限りなき知の探訪

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

軟財就計:(第4回目)『私のソフトウェア道具箱(その 4)』

2022-02-27 20:26:15 | 日記
前回

事務作業では、書類の検索が非常に重要な仕事だ。書類には紙のものも多いが、最近では電子媒体の書類の方が圧倒的に多いだろう。長いファイル名だけでは、内容を思い出すのは難しいが、Google検索でも意図しないファイルが検索に多くひっかかって困っている人は多いことだろう。この問題の根本的理由は、検索に使う複数の単語はファイル全体に散らばっているのではなく、局所的であるという特性にある。局所的とは、40文字(せいぜい60字)程度の範囲をいう。このような検索プログラムが必要なのだが、残念な事に一般的には存在していない。

こう言うと、「いやいや、UNIXにはgrep という検索プログラムがあるよ」としたり顔にいう御仁もおられよう。確かにプログラミング開発の場合、UNIXの grep を使って検索をするのは初歩の初歩といえる。ただ、この場合、特徴的なのはプログラムが対象なので、【行番号】が判明することが非常に重要なのだ。少し専門的になるが grep では「正規表現」が使えるので、いろいろなパターンを検索条件として指定することができる。ただ、この時、問題となるのは単語の出現順序だ。つまり、 Aの後にBが現れるケースと、Bの後にAが現われるケースは違う検索条件となることだ。もっとも、両方のケースを探そうとすると、2つの grep 検索をパイプで連結すればよい。しかし、3つ以上の場合はそれだけの段数のパイプ連結が必要となり、検索はできるとはいうものの、実際問題としては、結構厄介だ。

問題はこれだけでない。プログラミングの場合は、1行だけの検索で済んだが日本文ではこの技は使えないことが多い。というのは、日本語では文字の途中で改行されると grep では検索できないからだ。それで、ワードのように、見かけ上は何行かに渡って分割されているように見えても、内部では一節が連続している、そのような文章なら検索はできるが、検索ワードは一つしか指定できない。

結局、市販のツールでは「複数行にまたがる文章に複数の指定ワードで検索する」ことができない。それで、私は新たな自作プログラムを開発して解決した。以下、自作のプログラムを xge という名前で呼ぶ。

1.xge では、ファイル内の連続の2行を内部的(メモリー)上では連結して1行にする。
2.その1行に対して複数の文字があるかを検索する。例:「特定の場所 一覧に できる」
3.このようにすると、行末で改行されていても検索することができる。
4.ただし、2行では足りないケースもあるので、オプションで3行も可能とする。また逆に連結したくない時もあるので、オプションで通常の grep のように検索対象を1行にすることも可能である。

この検索プログラム xge はC言語で書いてあるので、実行は極めて速い。それだけでなく、ディレクトリートリ―をリカーシブ(recursive)に辿ることができるので、特定のフォルダーだけでなく、その下にぶらさがっている全てのフォルダーのファイルを対象に検索することができる。このプログラムがあるおかげで、フレーズをうろ覚えでもファイルを見つけることができる。更に、この xge (実際には、このバリエーションの xgf)の優れた点は、テキストファイルだけでなく、マイクロソフトの他のファイル形式(doc, docx, xls, xlsx, ppt, pptx)やPDFファイルも内部的にテキストファイルに変換して、テキスト検索できることだ(内部的には、xdoc2txt.exe を使っている)。

ここで、一つ問題となるのは、検索順序である。Aの後にBがでるケースも、 Bの後にAがでるケースのどちらも検索結果として出てくる。もし、検索件数が少ないのなら、目視チェックで十分だが、多い場合は、この検索結果に対して、順序どおり検索するプログラム(mgrep と呼ぶ)を実行する。

いづれにせよ、幾つかのプログラムを組み合わせることで、初期の目的が達成された。 

【xge のオプション】

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

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

2022-02-20 10:47:41 | 日記
前回

前回の最後に、「幸運なことに現在のWebやITの進展のお陰で智嚢の文章の理解がスムーズに行った」ことを述べた。その理由を説明しよう。

智嚢の漢文は高校で習う2000年前の漢文とはかなり異なっているので、通常の漢文読解力では理解できない個所が多い。総じて、漢文は古代からあまり変化していないとはいえ、 2000年間には、漢文もかなり変化している。日本語を見ても分かるが、高校で習う古文は今から1000年ほど前の文章だが、文法や語彙が現代とは大きく異なる。また英語にしても、OED(Oxford English Dictionary)には単語だけでなく例文が数多く載せられているが、それを見いると、1600年、つまりシェークスピア辺りからの英語なら概ね理解できるが、1400年代以前の英語はぼやっとしか分からない。かなり英語ができる人でも分かる人はそういないだろう。 OEDから600年前の英語の例を幾つか下に挙げるのでチェックして頂きたい。

=========

Money : 1426 Lydg. De Guil. Pilgr. 17614 Thys hand in frenshe‥Ys callyd ‘Poitevyneresse’, For yt forgeth‥A monye callyd Poytevyn.   

Heart : 1382 ― Gen. xviii. 5, I shal sett a morsel of breed, and ȝoure herte be coumfortid.

Heart : c 1400 Apol. Loll. 36 Wiþ þe eeris and een of his hert, he schuld vnderstond hem.   

=========


さて、馮夢龍(1574‐1646)は今から約400年前の明の文人である。科挙に何度も受験したが合格しなかったが、当然のことながらいわゆる正統な漢文(古文)に通暁していた。もっとも、日常的には明代の口語を使っていたので、その文章にも時たま、古文では見られないような語彙や言い回しが見られる。問題は、これらの語法に対して私には十分な知識がないことだ。そういった語法にぶつかり、暫く考えこんでしまうことも間々あった。同様の問題は以前、朱子と弟子たちとの問答集である『朱子語類』を読んでいた時にも出会った。『朱子語類』の編纂は、1270年なので智嚢より更に400年ほど前の文章であるが、すでに南宋時代には口語は文章語(文語)とかなり乖離していた。それで、『朱子語類』の中でも文語的に書かれた個所はたいして苦労なく理解できるが口語的に書かれた個所は、一種の謎解き文のようで、私には理解できないところが多かった。

ところが冒頭で述べたように、現代のWebやIT技術の進展でこの厄介な明代の口語的文章が比較的容易に読み解くことができたので、本書を書き上げることができた。この時に参照したのは次の情報源だ。

1.原文

Wikipedia の姉妹サイトのWikisourceに『智嚢』の原文が全文掲載されている。このサイトから繁体字の原文ファイルをダウンロードすることができる。横書きでは読みづらいので、ワードで縦書きに変換してプリントして読む。



尚、Weではたまに字やフレーズの間違いがあるので、念のため書籍も購入して、必要に応じて参照した。
智嚢 / (明)馮夢龍評纂 ; 欒保群, 呂宗力校点、中州古籍出版社

2.現代中国語訳

Web上には原文だけでなく、現代語訳もアップロードされている。簡体字のものが多いが、繁体字のものもある。私には簡体字は読みにくいので繁体字に変換してから読んでいる。
[簡体字] http://www.809803.com/gdwx/xs/qt/zlqj/001.htm
[簡体字] https://yuedu.163.com/source/58a57eeb072a45319f17fbee20c36f11_4
[繁体字] http://www.4hn.org/modules/article/reader.php?aid=237&charset=big5

尚、繁体字のものでは楽天Koboから電子書籍で『中國智謀寶庫(上・中・下)』が出ている。

3.英訳本

最後の英訳本を紹介しよう。これはたまたまアメリカのAmazon.comで見つけた。わずか$3(400円)なので、ダメ元で買った。人間が翻訳したのではなく、機械翻訳をそのまま貼り付けたようで、ところどころに解析不可でプログラムが異常停止したような個所に出会う。しかし、訳はそれほどトンチンカンではない。改めて現代の自動翻訳のレベルの高さに感心させられた。
尚、この本は日本のAmazonでも購入できる。 https://www.amazon.co.jp/s?k=B07P466ZPN


=========

Written by Feng Menglong 冯梦龙, the Complete Works of Brainpower (智囊全集, Zhi Nang Quan Ji) was first compiled in 1626 or the Sixth Year of Tianqi in Ming Dynasty. It contains more than 1200 stories of brainpower and intelligence from the Pre-Qin Dynasty to the Ming Dynasty. There are twenty-eight sub-categories of wisdom, sagacity, courage, tact, wisdom, language, military, boudoir and so on.

This book records the history of creation and practice of Chinese wisdom. The characters in the book are all using wisdom and strategy to create history. It is not only a magic book reflecting the ancient people's ingenious use of wisdom to solve problems and overcome enemies, but also a huge intellectual treasure in the history of Chinese culture.
=========


趙開 (『中国四千年の策略大全』P.301)の原文、現代中国語訳、英訳、をそれぞれ示す。

【『中国四千年の策略大全』P.301】
趙開が紙幣を流通させることに成功し、庶民は喜んだ。ある時、ニセ札が30万枚見つかり、ニセ札作りの賊50人が捕まった。法律を厳格に適用すると死刑で、裁判官の張濬もそうしようと考えた。だが、趙開が反対した。「貴卿の判断は誤りです!ニセ札に本物の印を押せば、本物として使えます。賊には刑罰の黥を入れてお札作りに従事させ、そのニセ札を没収すれば、労せずして一挙に30万枚のお札と50人の工人が得られましょう。」【巻8/342】

【原文】
趙開
趙開既疏通錢引、民以為便。一日有司獲偽引三十萬、盜五十人。議法當死、
張濬欲從之、開曰:「相君誤矣!使引偽、加宣撫使印其上、即為真矣。黥其
徒、使治幣、是相君一日獲三十萬之錢而起五十人之死也。」濬稱善。

【現代中国語訳】
趙開
宋朝時趙開促成錢引通行後,人民都認為很方便。有一天,官吏査獲偽造錢引三十萬,盗印的五十人,依法當處死。
張浚想依法而行,趙開説:“大人錯了。假使錢引是假的,加蓋宣撫使印以後,就是真的了。盗印的人處以黥刑,然後派他們去印錢引,這樣您一天就得到三十萬錢,而救活五十人。”
張浚認為很好。

【英訳】


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


尚、英訳についている番号[343] は私の本では[342]としている。話の番号は、原文にはなく、編集者が勝手につけているので、番号がWebサイトで多少前後していて統一番号は存在しない。

このようにWeb上に原文・訳文とも豊富にあるので、まずはダウンロードして、簡体字であれば繁体字に変換したあと、ワードに貼り付けて成形してからプリントアウトして原文を読んだ。ところどころ分かり難い場所は、現代語訳を参照したが、現代語訳が分からない時は、中国の百度が提供している自動翻訳で日本語訳し、上で紹介した英訳も参照しながら翻訳した。私は、現代中国語は学習したことはないが、文章語であれば大体漢文風に読めば意味はとれるが、総じて、今回の翻訳を通じて強く感じたのは、WebやITの進展によって今までなら不可能だった領域にまでズブズブと気儘に入っていけるありがたみだ。これが以前から言っている「人類4000年の 特等席」に座っているということである。(参照:『教養を極める読書術』P.276)

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

軟財就計:(第3回目)『私のソフトウェア道具箱(その 3)』

2022-02-13 20:30:24 | 日記
前回

自分でプログラムが組めるというのは、突き詰めれば「わがままを通す」ことができるということだ。例えば、前回の最後に述べたように、 Britannica 11th をブラウザーで読もうとすると、読みづらい。最大の理由はフォントが小さいことと、白地に黒文字のコントラストの画面は長時間読むと疲れるからである。単に最初のフォントサイズの問題、ブラウザー(Chrome)のフォントを大きくする/小さくするだけなら、<Cntrl>+ / <Cntrl>ー で簡単にできるが、バックグラウンドの色を変更するのは大変だ。つまり何らかの方法を考えないことにはこの2番目の問題は解決できない。本論では具体的にどのように解決したか、概略を説明しよう。

ところで私は、アメリカ留学から帰国後(1984年)からはずっとコンピュータエンジニアとしてプログラミングやシステム開発をしてきた。それで、数多くのコンピュータ環境で仕事をしたのだが、長時間画面に向かっても疲れない色合いを見つけることは非常に重要だと確信するに至った。前回でも述べたが、DosPrompt 画面を default の色設定(黒地に白)は(少なくとも私の)眼には非常にどぎつく写る。長時間この環境で仕事をしていると眼がしょぼしょぼすること間違いない。また、一時期はやった緑色の文字も良くない。私のお気に入りの色あいは、薄い水色、あるいは、薄いアース色(薄茶)である。下図に示すように、エディターの秀丸とAkelPad では色を自分の好みに設定することができる。





さて問題は、ブラウザーではなくこのエディターで見れるようにするには、Webデータをダウンロードしてファイルをエディターで開く必要があることだ。何種類かのエディターを試したが、総じて日本製のものは、欧文のフォントがイマイチだ。特にギリシャ語はまるでダメ。最終的に見つけた欧文エディターのAkelPad の良い点は、ギリシャフォントが非常に見やすいことだ。ブラウザーでは太字・斜字の差やレイアウトなど確かに見やすいが、私の場合、コンテンツをしっかりと読むことを最優先しているので、眼がつかれないエディターが一番だ。プログラムを組んで、ファイルをダウンロードし、html ファイルをテキストファイルに変換し、エディターを起動するまでの一連の作業は次のような実行ファイル(DosPromptのバッチファイル)で全自動化されている。(コードの詳細は省略)
==============================

jgawk -f xga_curl.awk -v MYNUM=%myval% %xtmpf% -v OUTF=%tmphtm%2> nul
jgawk -f cut_htm.awk %tmphtm% > %dspf%
call b2jp_eng_br11.bat -n %dspf% > nul
start "" AkelPad.exe /OpenFile("%dspf%", 65001, -1)

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


ちなみに、私はワードも使うが基本的にはテキストエディターを使って、文章を作成している。ワードなどのワープロソフトは機能は豊富であるが、ほとんどの機能は不要だ。それは良いとしても、いかんせんスピードが遅くて話にならない。特に1000行ほどの文章ではページ移動が牛歩の歩みで話にならない!更に、特定場所に行きたいときには、マウス操作が必要だが、テキストエディターなら瞬時に指定行に飛んでいける。あるいは、ワープロでは特定文字列を検索することになるが、これも遅い。データが単に文字だけでなく、各種の情報(文字フォント名、フォントの大きさ、など)が複雑についているためファイル内の移動(検索)に時間がかかるのだ。その上、ワードの場合検索結果が左側の小窓に表示されるので、結果が多い場合、上から順番にチェックしないといけない。この例でも分かるように、 WYSIWYGのツール類には作業効率という概念が欠落している。はっきり言えば、これらのツール類はちょっとした作業には適しているが、本格的な事務作業には向いていない。

WYSIWYGのツール類になれているたいていの人は長いファイル名をつけることで、後にファイルを探すためのヒントにしようとしているが、これは非常に稚拙な方法だ。というのは検索したい時のキーワードは必ずしも初めに名前を付けた時と同じではないからだ。それで、目的のファイルの名前を思い出せない時はしかたなく、それらしき名前のファイルを一つ一つ手動で開いて中身を目で確認していくことになる。これは、非常に退屈な作業で、とても苛立つ。その上、とりこぼしも多い。残念ながら、こういう単純作業が「仕事」とみなされている。井戸の水汲み作業が電化によって自動化されたように、このようなファイル内容のチェックも検索ソフトを使って自動化できる時代が来ている。ただ、その際、 Googleのような全文検索では、簡単な単語で検索すると該当(ヒット)するファイルが余りにも多すぎる欠点がある。つまり、Google検索では、ファイル全体が検索対象となるからだ。しかし、目的のファイルを複数の単語で検索したい場合、たいていは関連する単語がある一定範囲内(例:十数語の範囲)である。このような狭い範囲の単語検索には残念ながらGoogleは向いていない。これは別のアイデアで解決しないといけない。

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

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

2022-02-06 21:09:33 | 日記
先ごろ(2022年2月1日)ビジネス社から私の新刊書『中国四千年の策略大全』が発行された。この本は明の馮夢龍が書いた『智嚢』という本の抄訳本である。なぜ日本では全く無名(といっていいほど)のこのような本を出版したのかという理由は帯に次のように書いた:「日本人は得てして中国人の言動を日本人の流儀で理解しようと努めるが、それは完全に間違っている。このような考えではいつまで経っても中国人を正しく理解することはできない。…「ころばぬ先の杖」ならぬ「騙されぬ先の『智嚢』ということだ」



本書には、掛値なしに中国人の巧妙な策略が満載である。これを読めばこれからの中国ビジネスで泣きを見ないようになるだろう。今後の中国ビジネスに携わる人の必読書の一つに加えてもらいたいと思っている。

ところで現在、中国はアメリカといろいろな点で衝突している。その一方で、2022年の冬季オリンピックが開催されているので、否が応でも注目度が高まっている。1972年に日中国交回復時には、日中両国とも、親中・親日的の華やかな雰囲気であったが、それから半世紀経った最近の傾向は日本では嫌中的ムードが広がっている。これに関連していえば、私はこれまで中国関連は4冊出版したが、先般のブログ
座右之銘・128】『賦斂軽而丘園可恋』
にも書いたように、無理やり嫌中的タイトルを付けられたものもあった。しかし、私の個人的な思いは、本書P.362に書いたように「中国の古典を読むつど、善悪こもごも常にその懐の広さに感嘆させられている」のである。資治通鑑を読んでいる時もしばしば感じたが、中国の歴史が「面白い」のはまるで小説や劇のような、どんてん返しが頻発するからだ。それも、想像もできなかったような策略に人々がまんまと騙されてしまって、顔面蒼白になって右往左往するのだ。「事実は小説より奇なり」とはよく言ったもので、中国の歴史などはまさにこの言葉を地で行く。



さて、この本の出版のいきさつについては、本書のP.366の「おわりに」に書いたが、下書き原稿はすでに数年前に出来上がっていた。しかし、なかなか出版社が見つからず、ほぼ諦めかけていたところをビジネス社の唐津社長の英断により実現したものだ。しかし、出版が決まってからもいろいろと追加修正が多く、時間がかかったものの、多くの人にご尽力頂きようやく完成した。手間暇がかかった分だけ、内容が充実したので筆者の私としても非常に喜んでいる。そこで、本稿ではざっくばらんに出版の裏事情を書いてみようと思う。

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

今まで私が出版した本は8冊あるが、中国関連の書物では、定番の資治通鑑(3冊)と旅行記・滞在記(1冊)がある。つまり、8冊のうち半分以上が中国関連ということになる。最後の旅行記・滞在記はほとんど日本語訳をベースにしたので、文章的には全く苦労はなかった。ところが資治通鑑関連の3冊は、いづれも現代語訳が存在しないので、原文(漢文)私が訳した。資治通鑑を編纂した司馬光グループの漢文は思った以上に分かりやすかった。史記や北史・南史の漢文と同じ程度の易しさといっていいだろう。漢文の文章の難易度からいえば史書は概して易しいが、文学作品の中には極端に難解なものもある。例えば、文選の漢文、特に巻1から巻6あたりに見える賦はとてつもない難字だらけで、正直言って私の漢文力ではまったく歯がたたない。



これだけでは何のことか分からないだろうから、実例で文選の難解さを示そう。上に示すのは巻5にある左思の呉都賦の一節だ。上部に赤線を引いてある部分は次のような難字が並ぶ。

「爾其山澤、則嵬嶷嶢屼、巊冥鬱岪。潰渱泮汗、滇㴐淼漫。或涌川而開瀆、或呑江而納漢。磈磈巍巍、滮滮涆涆。䃢碒乎數州之間、灌注乎天下之半。…」

ここに表れる漢字はほとんど人にとってはそれこそ生涯、一度もお目にかからないであろう。これを思うと、南方熊楠は小学生の時に既にこの難解な文選をノートに写し取っていたというから、その早熟ぶりを形容する言葉は見当たらない。

さて、今回の『智嚢』は文選とは別種の難解さがあった。しかし、幸運なことに現在のITやWebの進展のお陰で、多少の準備は必要ではあったとはいいうものの、難解さはほぼ満足のいく程度に解消された。それも、費用もかけずにだ。仮にこの本を10年前に訳そうとしても、とうてい私のような中国文学の素人にはとても無理であっただろう。現在のIT技術やWeb上のデータ・情報を使いこなせないと知的活動は出来ないなあ、とつくづく感じる。

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