□ clear ことのはのとこ |
辞書を引いて言葉の意味を調べるように、文学作品の中で言葉がどのように使われているのかを探る。そんな「言葉の使用例データベース」のようなものを作ってみたいと思っていました。言葉の意味を補完するような辞書的な例文ではなく、生きた言葉のイメージの拡がりだとか、隣接する言葉との相互作用だとか、そんなものまで見出すことも出来るのではないかと思ったのです。 このような当初の目的がどこまで達成できたかは別としても、なかなか面白いものが出来たのではないかと思っています。太宰治を「幽霊」で検索してみたら、面白い文章が出てきました。太宰はやっぱり天才だなあ、と改めて感心しながら、その幽霊の出てくる前の文章も読みたくなってきました。 言葉の意味や使用例といった、言葉の一般的な姿よりも、語り手の思いの方に興味、関心が向かうのは当然のことです。 このプログラムを作り始める時には全く予定していなかったのですが、作品そのものも読めるようにしました。コンセプトの転換というか、進化というか、うん、どんなものでも成長するものなのです。 作品そのものを読むときは、検索結果の枠の上にある「作者名 作品名…」の部分をクリックしてください。 その気になれば長編小説をはじめから最後まで読むこともできますが、基本的には、小説を読むための検索ではなく、検索結果から興味が湧いて小説を読むという作りです。 □ 検索について 作者名のラジオボタンをクリックして、検索対象を指定します。 「add mode」にチェックを入れると、複数の検索対象をカンマ区切りで指定できるようになります。串刺し検索です。 検索語の欄に調べたい言葉を入力し、検索ボタンを押す、そうすると文学作品の文章の中から検索語を含む文とその前後の文の3行が表示されます。検索結果の表示は最大1000件までです。 「*」はワイルドカードとして使えます。 「恐ろしい」を検索するとき、「恐*し」とすれば、送り仮名の違いによる検索漏れを防ぐことが出来ます。 夏目漱石で「恐*し」と検索したところ、「吾輩は猫である」の中に「恐ろしい」と「恐しい」が混在しているのを発見して、ちょっと面白かったです。 「A+B」のようにすれば、「and 検索」になります。 「笑顔」を検索するとき、「笑**顔」とすれば、「笑顔」にも「笑い顔」にも「笑った顔」にもヒットしますが、「笑+顔」とすればさらに「笑って泣いて怒った顔」まで対象が広がります。 「A、B、C」のようにすれば、「or 検索」になります。 「櫻、桜」など、字体の違いや、その他、諸々使えると思います。 □ 検索結果の表示と1行について 検索の対象となる文字列は行単位です。表示も行単位です。 文章は句読点の〈。〉の位置ですべて改行して、それを1文とします。1行が1文です。ところが、長い文というものも存在します。1つの文で数百文字に及ぶものも珍しくありません。そこで、文字列が60字を超えたら、その次の句読点〈、〉で改行し、これを1文と見做すことにしました。 ちょっとややこしいですが、これで、1文(論理行の1行)は折り返しの(見た目の)3行以内に収まるようになったと思います。 検索語を含む文は前後の文と合わせて3行表示します。言葉がどのような文脈で使われているのかを把握するには、前後の関係を見ることも必要だろうという訳です。 文章全体を読む画面では、改行は元の位置に復元されます。 □ 検索結果表示の画面について 検索結果を表示する枠の、その上の1行に注目してください。 □ 作者名 作品名 章 段 番号 □ のような構成になっています。 作者名 作品名…をクリックすると、その作品の本文を読む画面に進みます。 また、左側の□をクリックするとページの一番上に移動し、 右側の□をクリックするとページの一番下に移動します。 パソコンであれば、Home key と End key で簡単に移動できますが、スマホやタブレットでは指先でひたすらページをめくらなければなりません。そのページめくりの手助けになればと思って付けた機能です。 □ 閲覧画面の「もどる」について 「もどる」をクリックすると、基本的には、検索結果の表示画面に戻ります。 基本的には、と断りを付けなければならないのが残念なところです。 この「もどる」は、「Next」「Previous」で移動した回数をカウントして、その回数分だけ履歴を戻す仕組みとなっています。 ですので、途中でブラウザの「戻るボタン」を使うと計算が合わなくなって、戻り過ぎてしまいます。 また、データファイルの最後の「end of file」を過ぎて「Next」を繰り返すことでも、計算が合わなくなって戻り過ぎます。 移動回数の補正を試みたのですが、うまくいきません。お手上げです。戻り過ぎたとしても、ブラウザの「進むボタン」が有効ですので、大きな問題ではないと思うことにしました。 とりあえず、閲覧画面と検索結果画面をスムーズに行ったり来たりすることが出来るようになったというお話でした。 □ 収録作品 検索語を空欄にして検索すると、見出し語の一覧を表示します。どんな作品が入っているのか確認したいときに試してみてください。 近代の作品はほとんどすべて青空文庫に公開さてているものに拠っています。 太宰治と芥川龍之介の作品については、新潮文庫の文庫名(省略形)を付け、その収録順に並べています。 古典作品の多くは、ヴァージニア大学の日本文化研究室で公開されていたものを使っています。もう20年近く前にダウンロードしたファイルが古いパソコンの中に眠っていたものもありました。よく生きていてくれた。 源氏物語は、渋谷栄一さんの源氏物語の世界に拠りました。 □ その他の作家、作品 その他で検索する作家、作品は以下の通りです。 検索対象に括弧内の文字列を入力すれば、個別に指定することもできます。 その他 林芙美子(hayashifumi) 田中英光(tanakahide) 伊藤左千夫(itousachio) 中島敦(nakajima) 亀井勝一郎(kamei) その他の詩人 高村光太郎(koutarou) 立原道造(michizo) 西東三鬼(saitosanki) 佐藤春夫(satoharuo) 千家元麿(senge) 上田敏(uedabin) 古典のその他 十六夜日記(izayoi) 秋の夜の長物語(akinoyono) 松帆浦物語(matsuhonoura) 和歌集 金槐和歌集(sanetomo) 百人一首(hyakunin) 古今和歌集(kokinwaka) 新古今和歌集(shinkokin) □ 漢字の取り扱い 青空文庫では、第3水準、第4水準漢字の多くを「※」に置き換えて、文字コード情報が添えられています。この「※」は出来るだけ元の漢字に変換しました。 すべての文字を総当たりで探し出して置き換えるという、対照表だけで4500行に及ぶ巨大なプログラムを作りました。それも、1行ずつ確認するという単純明快なやり方です。うまくいきました。結果が出せれば、方法は拙くてもいいではないか、とほくそ笑んで、このときは格別に美味しいお茶をいただくことが出来ました。 このプログラムを元にホームページ上で文字変換の出来るcgiを作りました。perlスクリプトをcgiに移植してささっと仕上げる予定だったのですが、制作過程で重大な欠陥が発覚したりして、その他さまざまな悪戦苦闘の果ての大幅な改良となったのでした。この間の苦闘振りは「青空文庫の※を漢字に変換」の説明文にも記しておきました。笑い話です。 旧字については、検索の便を考えて新字に改めました。ただし、使い分けするなど、現在でもしばしば使われているものとして、次の7つの文字は変換の対象から外しました。 「櫻(桜) 嶽(岳) 罐(缶) 燈(灯) 佛(仏) 萬(万) 龍(竜)」 これらの文字は作品の中に混在していますので、たとえば「桜」を検索するときには「桜、櫻」のように or検索 にするなど工夫してみてください。 実は、旧字すべてを新字(略字)に変換して、そのあとで字面から受ける印象の違いも重要だと気付いて、例外を設けることにしたのです。 幸いほとんどのテキストは無事だったのですが、一部、復元できなくなったものもあります。 芥川龍之介の作品の中で、燈はおよそ122回、灯が28回使われていますが、これを一つ一つチェックして復元するのは困難で、ここはすべて燈に統一しました。また、罐が7回、缶が5回使われていますが、これは缶に統一しました。 テキストに変更を加えるときはもっと慎重になるべきでした。反省です。 旧漢字を新漢字に変換するプログラムもcgiに移植しました。こちらは新漢字を旧漢字に変換する機能も備えています。「旧漢字と新漢字の変換」です。 □ 検索対象、検索語が空欄の場合 検索対象を指定して、検索語が空欄の場合は、対象となるデータファイルの最初の3文字を検索語とします。これは作者名にあたる部分ですので、作者名を入力して検索した場合とほぼ同じ結果になります。 検索対象が空欄の場合は、この説明文が検索対象となります。 これは検索対象エラーを防ぐ措置でもあるのですが、名だたる文豪の作品ばかりを収めたデータフォルダの中に、こんな説明文が紛れ込んでいることを考えると、申し訳ないような、こそばゆいような気持ちになってきます。でも、これは、あくまでも、第一義的には、エラー対策なのです。そこは強調しておきたいと思います。 |