Pythonを使ってDrupalにコンテンツを追加する

概要 Pythonを使ってDrupalにコンテンツを追加する機会がありましたので、その備忘録です。以下の記事を参考にしました。 https://weimingchenzero.medium.com/use-python-to-call-drupal-9-core-restful-api-to-create-new-content-9f3fa8628ab4 Drupalの準備 Amazon Lightsailに作成しました。以下の記事などが参考になります。 https://annai.co.jp/article/use-aws-lightsail モジュール 以下をインストールします。 HTTP Basic Auth JSON:API RESTful Web Services Serialization JSON:APIの設定変更 以下にアクセスして、設定を変更します。 </admin/config/services/jsonapi> Python {ipアドレス or ドメイン名}、{パスワード}を適宜設定してください。 Amazon Lightsailの場合、初期ユーザ名はuserです。またパスワードは以下のコマンドで確認します。 c a t ~ / b i t n a m i _ a p p l i c a t i o n _ p a s s w o r d i f e u p h } p } r r m r n e a . p o d = = a y = t o m p d l e r o ' ' e ' ' o " } r x t r i u { r A C a d e t e n s パ s c o d a q r q t e ス c n t u e u r ワ = e t = a " " } e q e = ' ー p e " t a s u s ド { t n { : y t t e t ' } ' t p t s s s h ' : - { e r " " } . t . t T " i t b p s a t ' y : b i o o u p a p u t d s t : p e " t l y " " t h / p ' n e e " v f ( / l : o s " : a o e i { i d " : l r n m i c ' e : { u m d p p a a - " e a p o ア t p - { W " t o r ド i p a h : " i t レ o l r a : n ス n i t t " t H / c i ' B " , T o v a c s e p T r n t l l h P d i e u w a e B ド . o " p a i a a メ a n , t n d s イ p / f e _ e i ン i v r r t r c 名 + n o . e s A } j d m x = u / s . M t h t j o a P y " e h s n p y a o ' i t f d n , + h r e a j o i r p s n e s i o " n , / n , d n ' s a o . u d " t e , h / = a ( r u t , i c p l ) e , ' j s o n = p a y l o a d ) その他 以下のようにnote_typeの登録も試みました。 ...

2023年4月11日 · 5 分 · Nakamura

ExcelからRDFを作成する

概要 RDFデータの作成にあたり、Excelで作成したデータから、RDFデータに変換するPythonライブラリを試作しました。まだまだ中途半端な状態ですが、備忘録です。 ノートブック 以下のノートブックから試用いただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ExcelからRDFデータを作成する.ipynb 変換元のExcelデータ 以下のようなExcelファイルを作成します。 https://docs.google.com/spreadsheets/d/16SufG69_aZP0u0Kez8bisImGvVb4-z990AEPesdVxLo/edit#gid=0 上記の例では、「prefix」という名前のシートに、使用するprefixの情報をまとめています。 また、「target」というシートに、具体的なデータを入力しています。Omeka SのBulk Importの仕様を参考にして、言語ラベル「@ja」や、type「^^uri」などを指定します。 上記のデータの作成方法については、改めて説明ページを用意したいと思います。 変換処理 上記のノートブックを参考にしてください。prefixの情報を格納したシートと、処理対象のデータを含むシートを指定して、RDFデータへの変換処理を実施します。 まとめ 同様のニーズに答える既存のツールが多々あるかと思いますが、参考になりましたら幸いです。

2023年4月3日 · 1 分 · Nakamura

TEI/XMLファイルからrespStmtのnameの値を抽出する方法(GPT-4による解説)

TEI/XMLファイルからrespStmtのnameの値を抽出する方法: PythonでBeautifulSoupとElementTreeを使ったアプローチ この記事では、PythonのBeautifulSoupとElementTreeを使って、TEI/XMLファイルからrespStmtのnameの値を抽出する方法を紹介します。 方法1: ElementTreeを使う まず、Pythonの標準ライブラリであるxml.etree.ElementTreeを使って、respStmtのnameの値を抽出します。 i # t r # n # n # i e m r o s a f l p X e o 名 r m n s o M e t 前 = e e a n e r L 空 s m a p : p t フ = = 間 { p = e m r r ァ を ' S の e i i x イ E t 定 t t r テ n n m ル T r 義 e m o キ i t t l を . e i t o ス s ( ( . 読 p e ' の t ト n " e み a . : n . を n a n t 込 r g a f 表 o m a r む s e ' m i 示 t e m e e t h e n . e e ( r t の d N t タ . ' o t 値 ( o e グ E y o p を ' n x が l o t : 抽 . e t 見 e u ( / 出 / : ) つ m r ) / / か e _ w t り n f w e ま t i w i せ T l . : ん r e t r で e . e e し e x i s た m - p 。 a l c S " s ' . t ) ) o m E r t T g / / t n e s i / : 1 n . a 0 m ' e } ' , n s ) 方法2: BeautifulSoupを使う 次に、BeautifulSoupを使って、respStmtのnameの値を抽出します。まず、beautifulsoup4とlxmlライブラリがインストールされていることを確認してください。インストールされていない場合は、以下のコマンドでインストールできます。 ...

2023年3月17日 · 3 分 · Nakamura

nbdevを使用する際の備忘録

概要 Pythonでパッケージを作成する際、nbdevを使用しています。 https://nbdev.fast.ai/ nbdevは以下のように説明されています。 Write, test, document, and distribute software packages and technical articles — all in one place, your notebook. (機械翻訳) ソフトウェア パッケージや技術記事の作成、テスト、文書化、配布をすべて 1 か所のノートブックで行います。 本記事では、nbdevを使用する際の備忘録です。 インストール 以下のチュートリアルのページが参考になります。 https://nbdev.fast.ai/tutorials/tutorial.html 以下、かいつまんで流れを説明します。 関連するツールをインストールした後、GitHubリポジトリを作成し、クローンした先で以下を実行します。 n b d e v _ n e w その後、以下も実行しておきます。 n b d e v _ i n s t a l l _ h o o k s そしてnbsフォルダの中の00_core.ipynbなどを編集して、本ノートブックの最後のセルにある以下を実行します。 ...

2023年3月15日 · 2 分 · Nakamura

IIIF Image API level 0による画像公開方法

概要 IIIF Image API level 0は、事前に作成した静的なタイル画像を用いて画像配信を行います。これにより、GitHub PagesやAmazon S3といった静的ファイルのホスティングサービスのみでの画像公開が可能となります。一方、任意の範囲の画像切り出しができないといった欠点も挙げられます。 本記事は、IIIF Image API level 0を用いた画像公開の一例について紹介します。 ツール 以下のノートブックでお試しいただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/IIIF_Image_API_静的ファイル作成ツール.ipynb 本ノートブックは、以下のスクリプトを参考にしています。 https://github.com/zimeon/iiif/blob/main/iiif_static.py 公開例 GitHub Pagesで公開するタイル画像を表示している例です。 https://www.kanzaki.com/works/2016/pub/image-annotator?u=https://nakamura196.github.io/iiif_static/files/tile/kunshujo/info.json まとめ 静的なファイルのみでIIIF Image API(のlevel 0)に対応する方法について紹介しました。 本手法の利点と欠点を考慮したうえで、ご活用いただけますと幸いです。

2023年1月30日 · 1 分 · Nakamura

Google Colabを用いたNDL

概要 Google Colabを用いたNDL"古典籍"OCRアプリを作成しました。以下のURLからお試しいただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/NDL古典籍OCRの実行例.ipynb NDL古典籍OCRの説明は以下です。 https://github.com/ndl-lab/ndlkotenocr_cli また、ノートブックの作成にあたっては、@blue0620さんのノートブックを参考にしています。ありがとうございます! https://twitter.com/blue0620/status/1617888733323485184 今回作成したノートブックでは、入力フォーマットの追加や、Googleドライブへの保存機能などを追加しています。 使い方 NDLOCRアプリの使い方とほぼ同様です。以下の動画を参考にしてください。 https://youtu.be/46p7ZZSul0o 工夫 工夫した点として、認識結果をIIIFマニフェストの形に変換し、Miradorビューアで閲覧できるようにしました。具体的には、以下のような出力が得られます。 後者のリンクをクリックすることで、以下のようなMiradorビューアが表示され、認識結果を確認することができます。 このIIIFマニフェストファイルも、Googleドライブに格納しています。 参考 NDLOCRのチュートリアルについては、以下を参考にしてください。

2023年1月25日 · 1 分 · Nakamura

JPCOARスキーマを用いたxmlファイルのバリデーション

概要 JPCOARスキーマでは、XMLスキーマ定義を以下のリポジトリで公開してくださっています。スキーマの作成およびデータの公開を行っていただき、ありがとうございます。 https://github.com/JPCOAR/schema 本記事では、上記のスキーマを使ったxmlファイルのバリデーションを試してみたので、その備忘録です。(今回のようなバリデーションは初めてのため、不正確な用語や情報を含む可能性があります。申し訳ありません。) Google Colabのノートブックも用意しました。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/JPCOARスキーマを用いたxmlファイルのバリデーション.ipynb 準備 リポジトリのクローン c g d i t / c c o l n o t n e e n t h / t t p s : / / g i t h u b . c o m / J P C O A R / s c h e m a . g i t ライブラリのインストール ...

2023年1月19日 · 9 分 · Nakamura

RELAX NGスキーマを操作するライブラリjingtrangを試す:rngファイルの作成編

概要 以下の記事で、jingtrangおよびrngファイルを用いたxmlファイルの検証を行いました。 このjingtrangライブラリでは、xmlファイルからrngファイルを作成できるということで、試してみます。 Google Colabのノートブックも用意しました。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/jingtrangを試す:作成編.ipynb rngファイルを作成する rngファイルを作成する元ファイルとして、以下を用意しました。 < r o o t > < t i t l e > a a a < / t i t l e > < / r o o t > 上記のファイルに対して、以下を実行します。 p y t r a n g b a s e . x m l b a s e . r n g 結果、以下のファイルが作成されました。 ...

2023年1月18日 · 4 分 · Nakamura

RELAX NGスキーマを操作するライブラリjingtrangを試す:検証編

概要 あるスキーマに従ったXMLファイルを作成する機会があったのですが、そのスキーマに合致したXMLファイルを作成できているか、確認する必要がありました。 上記の要件に対して、RELAX NGスキーマを操作するライブラリjingtrangを使ってみましたので、その備忘録です。 https://pypi.org/project/jingtrang/ Google Colabのノートブックも用意しました。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/jingtrangを試す.ipynb Validationを試す # p # w # w i g g ラ p r e v e イ n t a t ブ i g l ラ n フ h i h リ s ァ t d t の t イ t a t イ a ル p t p ン l の s i s ス l ダ : o : ト ウ / n / ー j ン / 対 / ル i ロ r 象 k n ー a の o g ド w X u t ( . M i r t g L g a e i フ e n i t ァ n g _ h イ j a u ル i l b の m l u 用 o を s 意 n 使 e ( o 用 r 校 g ) c 異 a o 源 t n 氏 a t 物 r e 語 i n テ . t キ g . ス i c ト t o の h m ダ u / ウ b n ン . a ロ i k ー o a ド / m ) t u e r i a / 1 0 9 1 6 . / x t m e l s t 2 0 2 1 / m a i n / t e i _ a l l . r n g OKな例 以下のように実行すると、何も出力されませんでした。 ...

2023年1月18日 · 3 分 · Nakamura

WordをTEI/XMLに変換する

概要 WordをTEI/XMLファイルに変換する機会がありました。調べてみたところ、TEIGarage ConversionなどのTEI公式のツールに加えて、以下のTEI Publisherでの変換例が見つかりました。 https://teipublisher.com/exist/apps/tei-publisher/test/test.docx.xml 上記の例では、Wordのスタイル情報を中心に、TEIのタグに変換しているようだったので、この方法を試してみました。なお今回は、TEI Publisherとは独立して使用することを目的として、python-docxライブラリを使用しました。 Wordファイル 以下のようなWordファイルを試作しました。いずれも仮ですが、「tei:persName」や「tei:warichu」といったスタイルを作成し、色などのスタイルを変更しました。スタイルを当てていくことで、簡易な構造化を行う仕組みです。 TEI/XMLへの変換 上記のようなWordファイルを入力として、スタイル情報を中心に、TEI/XMLに変換するスクリプトを作成しました。いずれpipなどを使って共有したいと考えています。 変換したTEI/XMLの例は以下です。まだまだ改善が必要ですが、validなTEI/XMLファイルに変換することができました。 < < < < < < < < < < < < < < < < < < < < < < < < < < < l s ワ / l l s 日 / l s 名 / l s < の / l l s < < l l s 文 / l l s < < l l s 割 < の < も / l l s 二 / l s 作 / l b e ー s b b e 付 s b e 前 s b e r < < < 形 s b b e s 朱 / s r s b b e 字 s b b e p 中 / p p s b b e 注 n あ < い / よ n こ < ス / あ s b b e 〇 s b e 成 s b / g ド e / / g の e / g の e / g u r 中 / r な / r さ r で e / / g e 書 s e e s e / / g の e / / g e 村 p e e p e / / g は o あ m い n う o ん m タ n り e / / g 二 e / g : e / > > の g > > 行 g > 行 g > > b b 村 r t か r t と r u 両 g > > > g e g d e g > > > サ g > > > r 覚 e r r e g > > > t あ i い o に t な i イ o ま g > > 三 g > 中 g > 入 > t に > t に > y > b > む t る t b 側 > g g > イ > s r s s r > e あ l t 入 e l ル t す > t 年 > t 村 > 力 y ス y ス > > ら > p > y ル t > t > ズ N s N N s あ e e 力 e e 。 y 一 y 覚 サ p タ p タ l > ビ y y に a N a a N t s > し t s > 「 p 月 p ン e イ e イ a を p p つ m a m m a y t て y t こ e 十 e プ = ル = ル c 記 e e い e m e e m p o く p o ん = 七 = ル " 「 " 「 e 述 = = て > e > e e n だ e n な " 日 " d d p p = し " " は > > = e さ = e 」 d p a a e e " ま r は r 」 検 " い " の a e t t r r l す e ス e を 討 割 u 。 割 u 後 t r e e s s e 。 d タ d 使 中 書 n 正 書 n に e s l L o o f 緑 " イ " 用 で " i し " i 全 l o i i n n t 色 > ル > し す > t く > t 角 i n n n l L " が 「 て 。 の 」 = 改 = ス n l e e i i > 左 く よ を " 行 " ペ e i " 」 n n ル だ う 使 w さ w ー " n > を e e ビ さ な 用 b れ b ス > e 使 " 」 で い 人 し r る r を " 用 > を す 。 名 て " ま " 入 > し 使 。 に く / で / れ て 用 は だ > 、 > て く し 、 さ 全 い だ て ス い 角 ま さ く タ 。 ス す い だ イ ペ 。 。 さ ル ー 先 い 「 ス 頭 。 を に 末 入 2 尾 力 文 に し 字 2 て の 文 く 空 字 だ 白 の さ が 空 い 入 白 。 り が ま 入 す り 。 ま す 。 別途開発中のTEI/XMLビューアで表示した例が以下です。<rt place="left">や朱書などのスタイルがまだ適用できていませんが、人名や割書などは再現することができました。 ...

2023年1月17日 · 4 分 · Nakamura

Google ColabでTesseractを動かす(日本語対応)

Google ColabでTesseractを動かすノートブックを作成しました。日本語にも対応しています。参考になりましたら幸いです。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/Tesseractを試す.ipynb 末尾に、hocrファイルをalto形式のxmlファイルに変換するフローも紹介しています。具体的には、以下のツールを使用しています。 https://digi.bib.uni-mannheim.de/ocr-fileformat/ 参考になりましたら幸いです。

2022年11月24日 · 1 分 · Nakamura

Vertex AIのworkbenchを使用した際、HuggingFaceのTrainer()が開始されない事象への対処法

Google CloudのVertex AIのworkbenchを使用した際、HuggingFaceのTrainer()が開始されない事象に遭遇しました。 この件について、以下のページで同様の不具合が報告されていました。 https://stackoverflow.com/questions/73415068/huggingface-trainer-does-nothing-only-on-vertex-ai-workbench-works-on-colab 当初、以下のような「PyTorch」の環境を選んでいましたが、この環境で上記の不具合が生じました。 そこで、上記の記事にある通り、「Python」の環境を選択することで、上記の不具合を避けることができました。 なお、上記の環境を選んだ場合、まず以下のような実行が必要です。 c o n d a i n s t a l l p y t o r c h c u d a t o o l k i t = 1 1 . 0 - c p y t o r c h 同様のことでお困りの方の参考になりましたら幸いです。

2022年11月21日 · 1 分 · Nakamura

ResourceSyncのPythonライブラリを試す

概要 ResourceSyncのPythonライブラリである「py-resourcesync」を試したので、その備忘録です。 https://github.com/resourcesync/py-resourcesync セットアップ g c p i d y t t p h c y o l - n o r n e s e s e o t h u u t r p t c p e i s s n : y s / n t / c a g l i l t h u b . c o m / r e s o u r c e s y n c / p y - r e s o u r c e s y n c 実行 resourcelist まず、出力用のresource_dirディレクトリを作成します。カレントディレクトリにex_resource_dirフォルダが作成されます。 ...

2022年11月21日 · 7 分 · Nakamura

Omeka SのREST APIとやりとりするためのPythonパッケージ

概要 Omeka SのREST APIをPythonから操作可能なパッケージが開発されています。 https://github.com/wragge/omeka_s_tools さらに、上記のリポジトリをベースとして、いくつかの機能追加を行なったリポジトリを作成しています。 https://github.com/nakamura196/omeka_s_tools2 本稿では、このリポジトリについて紹介します。 使い方 以下のページを参考にしてください。 https://nakamura196.github.io/omeka_s_tools2/ 本リポジトリはnbdevを用いて開発されており、パッケージの開発とドキュメンテーションを並行して行うことができ、便利な仕組みだと感じました。 追加開発した機能 IIIF画像URLの登録機能 Omeka SではIIIF画像URLの登録機能がありますが、本モジュールではこの登録機能が未実装でした。以下のように、IIIF画像URLの登録を行うメソッドを追加しました。 https://nakamura196.github.io/omeka_s_tools2/api.html#omekaapiclient.add_iiif_to_item アイテムセットの追加機能 本モジュールではアイテムセットの登録機能が未実装でした。以下のように、アイテムセットの登録を行うメソッドを追加しました。 https://nakamura196.github.io/omeka_s_tools2/api.html#adding-item-sets まとめ 今後追加開発していく機能については、いずれ本家のリポジトリに統合できればと考えています。 また今回開発した機能の使用例について、別の記事で紹介したいと思います。 具体的には、IIIFマニフェストファイルを入力データとして、そこに含まれる画像データを本モジュールを用いてOmeka Sに機械的に登録し、さらにScriptoを用いることで、それらの画像データに対する翻刻環境を作成する、といったことが可能になります。

2022年11月7日 · 1 分 · Nakamura

python-docxを用いた両側ルビ

python-docxを用いて、Wordで両側ルビを実現する方法の備忘録です。 以下のノートブックからお試しいただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/python_docxを用いた両側ルビ.ipynb 出力例は以下です。 入力例は以下です。 < < < b p 私 < に / p < が / / o > は r < < / 行 p > r < < / あ p b d u r < < / r r き > u r r r り > o y b b r < < / r < < / r t u ま b b t u ま d > y > u r r r u r r r 場 b b し y > b す y > b b t u b b t u > p y た > 入 p y 。 > y > b y > b l > 。 学 l > > 打 p y > 球 p y a 試 a < l > < l > c 験 c / a / a e < e r c r c = / = b e b e " r " > = > = l b a " " e > b r r f o i i t v g g " e h h > " t t ビ > " " リ に > > ヤ ゅ ダ キ ー う < ウ ド が / < < く r / / し t r r け > t t ん > > < / r t > まだ不完全はプログラムではありますが、参考になりましたら幸いです。 ...

2022年10月4日 · 2 分 · Nakamura

Pythonを用いてTEI/XMLファイルをEPUBに変換する

概要 Pythonを用いてTEI/XMLファイルをEPUBに変換する機会がありましたので、その備忘録です。 TEI/XMLファイルをEPUBに変換する方法として、Oxygen XML Editorを使用する方法もありますが、今回は、Pythonのライブラリ「EbookLib」を使用します。以下の記事を参考にしました。 https://dev.classmethod.jp/articles/try-create-epub-by-python-ebooklib/ 特に今回は、「校異源氏物語・本文テキストデータリポジトリ」で公開されているTEI/XMLファイルを対象として、縦書きのEPUBを作成することを目的とします。 変換方法 以下のノートブックにソースコードを記載しています。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/Pythonを用いてTEI_XMLファイルをEPUBに変換する.ipynb 結果 以下のように、EPUBに対応したリーダーで、校異源氏物語のテキストを閲覧することができます。 HTMLとCSSに変更を加えることで、多様な表示を実現することができると思います。 TEI/XMLの活用にあたり、参考になりましたら幸いです。

2022年9月30日 · 1 分 · Nakamura

XMLファイルで文字列のみを抽出して処理する方法

XMLファイルで文字列のみを抽出して処理する機会がありました。 このニーズに対して、以下のようなスクリプトにより、実現することができました。 s e o l u e p m e = n t B s e a = u t s i o f u u p l . S f o i u n p d ( C o h p i e l n d ( r p e a n t ( h t , e ' x r t ' = ) T , r u " e x , m l r " e ) c u r s i v e = T r u e ) ポイントは、text=Trueを与えている点で、テキストノードのみを取得することができました。 ...

2022年9月22日 · 1 分 · Nakamura

BeautifulSoupでxml:id属性を与える方法

BeautifulSoupでxml:id属性を与える方法の備忘録です。 以下の方法ではエラーが発生してしまいます。 f s s p r o o r o u u i m p p n . t b = a ( s p s 4 B p o e e u i a n p m u d ) p t ( o i s r f o t u u l p B S . e o n a u e u p w t ( _ i f t f e a u a g l t ( S u " o r p u e " p s , = " a x b m c l = " " ) x y z " , x m l : i d = " a b c " ) ) 以下のように記述すると正しく実行できました。 ...

2022年8月30日 · 2 分 · Nakamura

Virtuoso RDFストアに対して、curlおよびpythonを用いてRDFファイルを登録・削除する方法

概要 Virtuoso RDFストアに対して、curlおよびpythonを用いてRDFファイルを登録・削除する方法の備忘録です。 以下を参考にしています。 https://vos.openlinksw.com/owiki/wiki/VOS/VirtRDFInsert#HTTP PUT curl 上記のページの通りです。まず、登録用のサンプルデータとして、myfoaf.rdfを作成します。 < r / d r f d : < f R f / : D o f R F a o D f < a F x : f f > m P o : l e a P n r f e s s : r : o n s f n a o o m n a r e > f d > = f 中 " : 村 h a 覚 t b < t o / p u f : t o / = a / " f x h : m t n l t a n p m s : e . / > c w m w / w f . o e a x f a / m 0 p . l 1 e / . " c > o m / p e o p l e / 中 村 覚 " > 次に以下のコマンドを実行します。 ...

2022年8月16日 · 5 分 · Nakamura

二つのテキスト間の差分を抽出するプログラムを作成しました。

概要 二つのテキスト間の差分を抽出するプログラムを作成しました。以下のGoogle Colabからご利用いただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/校異情報の生成.ipynb 有名なサービスとして「difff」がありますが、今回はPythonを用いて実装しています。 https://difff.jp/ テキスト間の差分の算出には、difflib.SequenceMatcherを使用しています。 https://docs.python.org/ja/3/library/difflib.html 使い方 出力方式として、HTMLファイルとTEIファイルの2種類を選ぶことができます。 HTML HTMLファイルの出力結果例は以下です。 XML XMLファイルの出力例は以下です。 < < < さ た ? ? T し / x x E す T m m I せ E l l < < そ I - x t / t / > v m m e t e t e o l i e x e r d n H < i t < x s e s e f / H > b / t i l = a i f e o b > o " d l i a d o n h h e e < < < l d y < d = r t r D t / p / s / e e > p / y " e t > e i t u p o s D r > p > 1 f p s t i b u u o e > あ > . = : c l < t l < b r < u s い < < 0 " / > e t l i p l c l / r c う a / / l < / / " h / S i e c > i e i l c > え p a a b a a a t w t t S a P c D s i e お p p p / p p p e t w m l t t u a e t < < s D < < p < < p > p < < p < < p n p w t e m i b t s W w w t e x l r > l r > < l r > l r > c s . > > t o l i c i i i W s m e d き e d l x e d て e d o : t T > n i o > t t t i c l m g く m g b m m g と m g d / e i S c n > n n t > : / l i / i t t a S e e > i w w w w > : w w w w n r - l m t t s s d i i i i i i i i i g a c e t i m s s = t t t t d t t t t = w . < > o t " = = = = = = = = = " . o / n > x x a " " " " " " " " " u g r t < m m 1 # # # # a # # # # t i g i / l l " t t t t 3 t t t t f t / t p : : > 1 2 1 2 " 1 2 1 2 - h n l > i i " " " " > " " " " 8 u s e d d > > > > > > / / " b / > = = か こ け か ち じ > > ? u 1 " " < < け こ < ぬ づ > s . t t l / < < < < e 0 1 2 b l / r / / r " " " / e r l d l r c > > > > m d < e g e d < o 中 中 > g a m > m g a n 村 村 > p > > > p t 式 式 p p e 五 五 n 十 十 x x t 音 音 m m . < 又 l l c / 様 : : o w < i i m i / d d / t w = = l n i " " d e t a a a s n 2 4 s s e " " j > s > > p s 8 > / t e i - e x a m p l e / m a i n / t e i _ a l l . r n g " s c h e m a t y p e n s = " h t t p : / / r e l a x n g . o r g / n s / s t r u c t u r e / 1 . 0 " t y p e = " a p p l i c a t i o n / x m l " ? > 工夫した点として、TEI(Text Encoding Initiative)で定められているappタグを用いて出力します。そのため、appタグに対応したツールで可視化を行うことができます。 ...

2022年7月14日 · 4 分 · Nakamura