概要

「デジタル源氏物語」は『源氏物語』に関する様々な関連データを収集・作成し、それらを結びつけることで、『源氏物語』研究はもちろん、古典籍を利用した教育・研究活動の一助となる環境の提案を目指したサイトです。

https://genji.dl.itc.u-tokyo.ac.jp/

本サイトが提供する機能の一つとして、「校異源氏物語と現代語訳の対応づけ」があります。以下のように、「校異源氏物語」と青空文庫で公開されている与謝野晶子訳の対応箇所がハイライト表示されます。

この記事では、上記の機能を実現するための手順について説明します。

データ

以下のようなデータを作成します。

https://genji.dl.itc.u-tokyo.ac.jp/data/tei/koui/54.xml

「校異源氏物語」のテキストデータに対して、anchorタグを使って、与謝野晶子訳のファイルとIDのペアを対応付ます。

<te<xbto<>dpy><<<<<>lpls/lbbbe<<sb//gaae>f>nngaccc>cohhsroo=rrr"e#scczpooo=rrn"rrehee_tss2tpp0p==5s""5:hh"/tt/ttnwpp=3ss"i::2d/0./5gg5ree"gnn//jj>kiio..uddillg..eiinttjcci..muuo--nttooogkkayytooa..raaicc/..ajjpppi/aaipptiie//miistt/ee2mm0ss5//5tt-ee0ii1/.yyjoosssoaannn"oo>//5566..xxmmll##YYGG55660000000000340000""//>>

このデータの作成にあたっては、以下のツールを開発して使用しました。

https://github.com/tei-eaj/parallel_text_editor

残念ながら2024-01-07時点では動作しませんが、動作イメージは以下をご確認ください。今後、本ツールの改修を行いたいと思います。

https://youtu.be/hOp_PxYUrZk

上記の作業の結果、以下のようなGoogleドキュメントが作成されます。

https://docs.google.com/document/d/1DxKItyugUIR3YYUxlwH5-SRVA_eTj7Gh_LJ4A0mzCg8/edit?usp=sharing

「校異源氏物語」の各行について、対応する与謝野晶子訳のIDを\[YG(\d+)\]の形で挿入されます。

22222222000000005555555555555555--------0000000012345678[Y[GY5G6506000000[00Y30G065006]00]0000800][YG5600000500][YG5[6Y0G05060000400000]700]

源氏物語の冊毎のGoogleドキュメントがGoogleドライブに保存されます。

https://drive.google.com/drive/folders/1QgS4z_5vk8AEz95iA3q7j41-U3oDdfpx

処理

Googleドライブからのファイル名とIDの一覧を取得

Googleドライブとの接続

#ifffff#c|mrrrrr|lpoooooaeommmmmesxrxsdptgggggpeoooooooGfroooooorotsgggggto#S]c###i#ite.lllllg_CrffrxpeeeeeliIOeTctIyca.._aaenfPdhriofn:etaoappDiE"seemscoie#wssppprhuauiirtmShae.rttflieetrratutcci_ot=ft.pehsStrliiihthllv_d=tieadecceahvfHnns.h_iie(ipNldtsrrrc:fcvti.tttet2oeeCsf[soeheeerlreoocdt((r.annley:na.=ddeoepkerpe"eacuttili/etueassdwdteeiE)Enrt..efn/otxCrscshnn=vrrsehden,gwkoireoa.=re(.errpdlirtwemsernre="wb_oooeisr:ctwnatdndeIdctrusrrrnbcorh..tseonfnefroiiett.oreegji(nocrsnlektlraw.ifvsdsosc"ttrettodeedvshraleeeooativesaiwen((iieloringnloaacdhla.n.c'celqswymtsllkllrs(llrtjrde:eupicesyesie.Re_uisereiiioaoatn.ddeedpnaodi=csmmmrlppow.f)sxqAa_lnsvrtpppt_eirhjr.puptls".esesooopsseesocviepho,t'earrrHa,.snomrarsF,cfo,rtitttttcn_eletlao"_vimthdott"adid(oSlrwjinpCIbp)emhh)ued)wC_"svcgornuE:l/ee:tn:a).Ost)o3eresireahtnfPehn'AtdtlrtuuaoidrErea(,PeadoetsuraoSvs)IRnlrhetilcmen)cetlt/rhzsr_retrcqiehd'oeec(xoeluadersrdadlptkdielAii_vsioeeesspfvazua.errnnntpiecasirntu:ttFl.ctelet=ni"lemeiraf_0a)oeso_brs)lwttsnfleesoaiesc=kdafl,hrceanle_erntdo(ltte.aw"eosdj.rttk_ssrecoef)oefoktninarmeh:l.depneeosl.(nhejultssyteoe"osnrk"ef,lnoosrSg,CtOiahPnneE.dSf)iisrst

一覧の取得

ics#riciewmleetoflipirCsenstoevaumfnehrnillqpsiop:fjttclt=agtrooses"g=irpoj=t'e=inens=h=1Srtticn.oGeQie{e(to(dnocsgzs}m'en"uolDeSeusNmfdmgirr4=l:oiapleivz1tigt(envi_0sfn[acDtec50.ii/or.ev,glitcnidv.keeteofvr3f8ftsemnieiiAi(m[fgCvAlEe'fs'i,lePezlfo:ngi_Is9diua.fes(5slnmj,ne)i=edestr.A"s.'oi(vl3n'']nnciiqe,)]"drcs7x,eeetjt[=nd(4P]"te1a)iw=n-gt"4tUee))i3Tmaoo[alDk's_deipfndfap,':tx]h'f)iilnesp(airde,ntnsa"m,e)").execute()

各Googleドキュメントに対する処理

上記で取得したファイル名(冊数)とIDに基づき、各Googleドキュメントに対する処理を行います。

この処理により、冒頭で紹介したanchorタグが挿入された校異源氏物語のXMLデータを作成します。

なお、編集元となる校異源氏物語のXMLデータは以下で公開されています。

https://kouigenjimonogatari.github.io/

(参考)XMLデータの整形

XMLデータの整形にあたり、以下のような関数を作成しました。

defprett"P::"#d#p#pry"rpr"orre("eae"meetstrtttuetau=ttrlymryynfnm__,px:DiXxxprmOnMmmrxilPMiLllemn_rd__tltseoaat_sttmssysrt.___ttiypssxrhnattmiegprrrln:rsii_gXienna:MXnSggsLMtt_sLer==stsditrtsndr)rtXgo\iirM(mnnniLx.'ggnmt..gslojst_pottrsriroiten:nrt(pgit[r.nylegxit)mntley()fporrinlti.neinpretty_xml_as_string.split('\n')ifline.strip()])

以下のような、Beautiful Soupのprettify()メソッドの場合、不要な改行が含まれてしまうようでした。

#s#pporrBueieptnattu=y(t_piBHhrfeTteuaMmtluLltStyoi=_ufhpustlomSulop)u.pp(rhettmtli_fcyo(n)tent,"html.parser")

まとめ

デジタル源氏物語における校異源氏物語と現代語訳の対応づけに必要な手順をメモしました。