仏典のTEI/XMLデータをHTMLに変換して読みやすくするスクリプトを作りました

SAT大蔵経データベース研究会で公開している仏典(勝鬘経義疏)のTEI/XMLデータをHTMLに変換して読みやすくするスクリプトを作りました。例によって、Google Colab上で動かせるようにしております。

それから、見本ということで、変換後のHTML版は、とりあえず以下のURLにて閲覧できるようにしています。

https://www.dhii.jp/dh/tei/2185/2185.html

まだ完成版からはほど遠いですが、これくらいやっておけば、TEI/XMLファイルのマークアップをする人達には便利なのではないか…というようなものを作ってみたところです。TEI/XMLのデータを作成することによって何ができるのか・何がしたいのか、ということも、この変換結果をみていただくとなんとなくつかんでいただけるかもしれないと思っております。

サーバを立てなくてもローカルでファイルをブラウザで読み込むだけで閲覧できるように、javascriptファイルなどをダウンロードして、各章のファイルなども一緒にまとめて zip ファイルを作成するようになっています。

変換をかけている主な項目としては、

  1. 章のリストと本文を上下にわけて、頁上部の章タイトルをクリックするとページ下部に本文が表示されるように。

  2. <div>の章単位で個々のHTMLにファイルを分割(⇒大きすぎるファイルは表示の際にブラウザが固まってしまうため)

  3. Double-endpoint attachment method の校異情報に対応して本文には黄色いマーカー+脚注記号を付与、校異情報はポップアップダイアログに表示

  4. 改行・返り点・脚注記号はそれぞれ小さく表示した上で任意に非表示化できるようにチェックボックスを用意

  5. 引用に関しては、@source属性を持っているものは外部リンクを埋め込み

  6. <back>にリストされている固有表現をとりだして右ウインドウに表示

といった感じです。

ただ、今回は、変換にはPythonを使っていますが、HTML上で動的な表示を行うために、変換結果の中にJavascriptが含まれるような書き方をしています。そのため、PythonとJavascriptの文法が完全に混在しています。両者をうまく分割するというのもあり得るのですが、とりあえず1つのスクリプトで済ませてしまいたいので、ここでは両者を混在させています。両方をある程度知らないと、スクリプトをみてもわけがわからないと思いますので、その点、ご注意ください。

それから、splitpinesを利用するためにvue.jsを使ったので、ついでに、Javascriptが必要な事柄については、基本的にvue.jsで書いています。

この後、さらにこのスクリプトをグレードアップしていくというのと、検索させるために検索用データを抽出するといったことにも取り組んでいく予定です。ちょっと気の長い話ですが、引き続きお付き合いいただけますと幸いです。

なお、このスクリプトと見本は、『人文学のためのテキストデータ構築入門』のフォローアップサイトでもリストしておりますので、他の入門的なスクリプトもあわせてご覧ください。

TEI利活用セミナーを開催します

明日(2022/11/5)の11:00-17:00、TEI利活用セミナーというのを開催します。 参加費無料・要申込み、です。参加申込みはこちらからお願いいたします。

TEIに準拠してファイルを作ったけど、これをどう扱えばいいのか…とか、 TEIに準拠して作られたファイルが自分の分野にはたくさんあるようだけど、これをどう使えばいいのか…?

というような人に向けて、ごく初歩的なことを知っていただく会です。

具体的には、

  • Oxygen XML Editorを用いたXPathによる検索とデータの抽出
  • Pythonを用いたデータの抽出と処理・地図へのプロット

といったあたりを扱う予定です。前半は、プログラミングの知識などはまったくなくても大丈夫です。後半は、Python等のプログラミング言語を勉強してない人でも、「勉強するとこういうことができるのか」というイメージを持っていただくのに役立てていただければと思います。

ご興味がおありの方はぜひご参加ください。

TEI/XML利活用の基礎:PythonでTEI/XMLファイルの地理情報を地図上にプロットする

プログラミング言語Pythonは、自然言語処理のライブラリが充実しているので、自分のメインの言語ではなかったのですが、10年くらい前に、授業で教えられるくらいの勉強をして、授業で教えたりしていました。その後、ディープラーニングへの入口として注目されるようになったので、このところは、人に教えるとき、特に若者に教えるときはPythonが基本です。インタラクティブなものを作りたいという人にだけはJavascriptをやりますが、やはり今は猫も杓子もPythonを使えるようになっているのがよいのではないかと思っております。

というわけで、漱石書簡の3つのTEI/XMLファイルに含まれる座標情報をPythonで地図上にプロットできるようになるチュートリアルをGoogle Colabに作ってみました。ご興味がおありの方はぜひ以下のURLにアクセスしてみてください。

colab.research.google.com

これを一通りやってみると、以下のような地図を作れるようになります。(以下のものはサンプル画像ですが、このような地図をOpenStreetMapを利用したインタラクティブなものとして作成できます。)

map
地図

基本的なものですので、これを踏まえて色々な応用の仕方や、逆に、こういった応用の仕方を踏まえて、マークアップの方法を検討してみたりしていただけるとよいかもしれません。

なお、上記のURLも含めて、TEI/XMLの利活用に関するチュートリアル的なものは、以下のURLに蓄積しておりますので、あわせてご覧ください。

www.dhii.jp

くずし字OCR等の動向を踏まえて、研究者の方々に期待すること

いま、日本近世研究、とくに文学研究のあたりがすごいことになっています。膨大な国費が投入されて数十万点の日本の歴史的典籍がデジタル化・公開されてしまっていますが、大半は江戸時代の版本のようですね。そして、さらに、そこに書かれたくずし字にOCRをかけたテキストが無料で公開されようとしており、一方で、グーグルが雇用している研究者が、フリーソフトでくずし字OCRソフトやアプリを開発・公開してくれています。さらに、お金があれば、凸版印刷もくずし字のテキスト化をしてくれるそうです。こういった流れを受けて、12月にはイギリスでもThe Digital Turn in Early Modern Japanese Studiesというシンポジウムが開催されるそうです。

実際のところ、そんなこと頼んでないのに…と思っておられる研究者の方々も多いのではないかと思います。が、他の周辺分野からみると、うらやましいという以外に言葉はないです。何がうらやましいのかというと、くずし字がOCRである程度文字読み取りできるようになったからと言って、そのテキストが前提とする世界観を踏まえて内容をきちんと理解できるようになるわけではないのであって、そこで起きることは、要するに、「入口」が少し広く用意されて、研究者以外の人達、あるいは、これから勉強を始めようという人達の関心を集めやすくなる。つまり、今までだったら全然読めなかったものが、断片的に文字を読み取れるようになることで、関心を集めやすくなる、ということだからです。ちゃんと内容を理解したい、という需要は、文字の読み取りだけでは達成し得ない、より高度な知識や理解を必要とするものであり、研究者の必要性への認知や必要性そのものも高まっていくことが想定されるからです。

どの分野でも、関心を集めるために色々な努力をして知恵を絞っています。最近は、何事も人件費から考えなければならないので予算を取るための工夫も必要です。そのようななかで、頼んでもないのに日本政府やGoogleが膨大な費用と手間をかけてそんな環境を作ってくれて(と言っても、もちろん、一部の研究者の方々は多大な努力をしておられるのですが)、皆が関心を持つための入口が用意されてしまう…というのは、コンテンツの魅力とタイミングのおかげだと言ってしまうこともできるかもしれませんが、やはり、これを奇貨として、今後大きく発展していただき、ついでに周辺分野ともよい協力関係を作っていっていただければ、と思うところです。多くの人は気づいておられると思いますが、別にデジタル・ヒューマニティーズ、デジタル人文学、などと言わずとも、デジタルで資料を使っていると、自然と色々つながってしまうので、周辺他分野との関係が有用になる場面も少なくないだろうと思われますので。

人文学のためのテキストデータ構築入門を教科書として使う場合

『人文学のためのテキストデータ構築入門』は、表題の通り、人文学のためのテキストデータ構築全般についての入門書という位置づけの本ですので、教科書として使っていただくこともできます。ただし、色々な要素を含んでいますので、用途に応じて取捨選択しつつご利用していただくのがよいかと思います。また、フォローアップサイトに教材を色々置いてありますので、そちらもご覧ください。以下に、例を少し示してみます。

https://bungaku-report.com/books/ISBN978-4-909658-84-5.html

全般的に教科書として使いたい場合

『人文学のためのテキストデータ構築入門』は、最初から読んでいただいて、第二部の終わりまでが、入門的な教科書としての役割を持っています。手書き文字認識とTEIガイドラインに準拠したデータの作り方と使い方が解説されています。使い方の方を深めたければ、フォローアップサイトの方に詳しい解説と用例があります。

TEIガイドラインに準拠したテキストデータ作成の教科書として使いたい場合

手書き文字認識はちょっと授業などで扱うにはややこしそうだしテキストデータそのものについての解説も特に必要ないので、TEIガイドラインの部分のみを授業で扱いたい…という場合には、以下のような順序で使っていただくことをおすすめします。

  1. 第二部第三章をベースにTEIガイドラインの概要の説明

  2. 第二部第四章をそのまま使ってOxygen XML Editorでのマークアップ手法の説明

2.0. XML全般についての解説

2.1. Well-formedなXMLの作成について

2.2. XMLに準拠したValidatedなTE/XMLの作成について

2.3. 書誌情報等、やや応用的なマークアップの手法について

  1. 第二部第五章をそのまま使ってマークアップしたデータを活用してみる手法

==========ここから先はさらなる活用手法など====================

  1. フォローアップサイトに掲載されている他の漱石書簡ファイルを使って第二部第五章の手法を応用してみる

  2. フォローアップサイトに掲載されている「TEI/XMLファイルの活用手法の例」に順次取り組んでみる(これは授業数回分)

応用編として自分の資料をマークアップさせたい場合

コラム1で、マークアップの指針を決める上での考え方を示していますので、こちらを参照した上で、自分の資料のマークアップについて検討していただくことを企図しています。また、第三部、第四部は応用例ですので、実際に各自がマークアップをしたり使ってみたりする時の参考情報としてご利用ください。

実習なしで座学として使いたい場合

実習なしの座学のみでも、少なくとも講師側はある程度TEIを理解していないと難しいと思いますが、テキストデータ構築の理論的な側面について検討する講義も可能になっております。その場合、たとえば以下のような形でご利用いただけます。


  1. 第1部 第1章 人文学のためのテキストデータの構築とは

  2. 第1部 第2章日本におけるテキストデータ構築の歴史

  3. 第2部 第3章 TEIガイドラインとは

  4. コラム1 TEIガイドラインで自分の資料を作り始めるには

  5. コラム 2 TEI協会 東アジア/日本語分科会の活動

  6. 第3部 第1章 日本古辞書のTEI符号化

  7. 第3部 第2章 TEIを用いた『渋沢栄一伝記資料』テキストデータの再構築

  8. 第3部 第3章 TEIとRDFを用いた財務史料の構造化

  9. 第3部 第4章 TEIデータの可視化方法と事例紹介

  10. COLUMN 4  著作権法改正で Google Booksのような検索サイトを作れるようになる?

  11. COLUMN 3  TEIにおけるセマンティック記述と (講師側がセマンティックWebを理解していれば)

適宜紹介: TEI活用の事例紹介(1)〜(6)


組み合わせ方は色々だと思いますので、適宜ご検討してみてください。

TEI準拠テキスト作成の入門セミナーを実施します

2022年10月10日、11:00~17:00(昼休みは12:30-13:20くらい)に、オンライン(Zoom)にて、TEI入門セミナーを実施します。

「人文学のためのテキストデータ構築入門」の第2部の第四章を中心に、TEIによるマークアップ手法について解説します。本で独習することもできるようになっていますが、話を聞きながら誰かと一緒に取り組んでみたいという方や、TEIを誰かに教えるにあたって、教えるポイントを確認してみたいという方は、ぜひこの機会にどうぞ。

https://bungaku-report.com/books/ISBN978-4-909658-84-5.html

参加希望者は、以下のURLにてお申し込みください。開催前日にZoomのURLをお送りします。

TEI準拠テキスト作成入門セミナー

シェイクスピア戯曲の文法的特徴を簡単に調べてみる

本日は、英語コーパス学会のワークショップで、「はじめてのXML」のお話をさせていただきました。コンセプトとしては、「とりあえずXMLはどういう風に良いものなのかを見ていただき、自分でやってみたい人はあとで録画をみていただく」ということで、パワポスライドとGoogle Colabを準備してちゃかちゃかお話をしました。このようなコンセプトにしたのは、コーパス研究者でタグを邪魔だという人を結構拝見したことがあったということと、ごく最近にも以下のようなお話もありましたので、使い方以前に、「タグがついていると何がうれしいのか」をもう少し明白に共有した方がよいのではないか、ということがありました。

さて、このワークショップの際は、英語コーパス学会の方々に聞いていただくので、おそらくなるべくカタいものを使った方がよいのではないかと思い、BNC (British National Corpus)を事例としてご用意したのですが、

せっかく作ったので公表したい

        

しかしBNCはマニアックすぎるのでは

        

そういえばノースイースタン大学のマーティン・ミュラー先生がシェイクスピアの品詞情報タグ付きコーパスを公開しておられたぞ

ということで、素材をシェイクスピアのテキストに入れ替えて、TEI/XMLファイルがあるとどう便利なのか、という簡単なPythonプログラムをGoogle Colab上に作成してみました。これは、ボタンクリックすれば実行されるものですので、プログラミングをまったくできなくてもお試ししていただくことができますが、解説に関してはPythonを少し勉強したことがある人向けのもので、細々とプログラムの中に書き込んでおります。でも、むしろ、これをみてPythonを勉強してみようという気持ちになってくださる人がおられたら、それもとてもうれしいことです。

colab.research.google.com

Google Colabでは、とにかく以下の「セルを実行」ボタンをクリックすると、そこに書かれたプログラムが実行されるようになっています。

上記のGoogle Colabでプログラムを実行していただくと、なるほど、という感じになってくださるのではないかと期待しております。

最後の方に用意してある「5.3.各ファイルにおける動詞の中でのbe動詞とdo動詞の割合を数えてみる」の結果をエクセルに持ち込んでグラフ表示すると冒頭の画像のような感じになります。

Google Colabに用意したものは、値を変えるだけでも色々なものを数えたりできますので、興味が沸いてきたら、「ファイル」メニューから「ドライブにコピーを保存」で自分のドライブにコピーしてから色々と試してみてください。

※この記事は「「人文学のためのテキストデータ構築入門」フォローアップサイト」の一環です。