🐥

WordファイルをTEI XMLに変換する方法:TEIgarage APIの活用ガイ

2025/03/03に公開

この記事は、AIが作成し、一部を人が修正したものです。

はじめに

デジタル人文学の世界では、文書をTEI(Text Encoding Initiative)形式で保存することが一般的になっています。TEIは学術的なテキストを構造化するための標準規格です。今回は、Microsoft Wordで作成した文書をTEI XML形式に変換する方法を、Pythonを使って解説します。

TEIgarageとは?

TEIgarageは、さまざまな形式の文書をTEI XMLに変換するためのオンラインサービスです。このサービスはAPIを提供しており、プログラムから直接利用することができます。今回はこのAPIをPythonから呼び出して、Wordファイルを変換してみましょう。

必要なもの

  • Python 3.6以上
  • requestsライブラリ(APIリクエスト用)
  • インターネット接続
  • 変換したいWordファイル(.docx形式)

手順

1. 必要なライブラリをインストールする

まず、必要なライブラリをインストールしましょう。コマンドプロンプトやターミナルで以下のコマンドを実行します。

pip install requests

2. Pythonスクリプトを作成する

次に、以下のPythonコードをword_to_tei.pyなどの名前で保存します。

import requests
import os
import zipfile
from io import BytesIO

def convert_docx_to_tei_xml(file_path, output_path):

    # OxGarageのエンドポイント
    input_document_type = "docx%3Aapplication%3Avnd.openxmlformats-officedocument.wordprocessingml.document"
    output_document_type = "TEI%3Atext%3Axml"
    TEIGARAGE_URL = f"https://teigarage.tei-c.org/ege-webservice/Conversions/{input_document_type}/{output_document_type}/"

    # .docx ファイルを開いてAPIに送信
    with open(file_path, "rb") as file:
        files = {"file": file}
        response = requests.post(TEIGARAGE_URL, files=files)

    # 変換結果をファイルとして保存せずに展開
    if response.status_code == 200:

        # zipファイルをメモリ上で展開
        with zipfile.ZipFile(BytesIO(response.content)) as zip_ref:
            # tei.xmlファイルを保存
            for member in zip_ref.namelist():
                if member.endswith("tei.xml"):
                    zip_ref.extract(member, os.path.dirname(output_path))
                    tei_xml_path = os.path.join(os.path.dirname(output_path), member)
                    os.rename(tei_xml_path, output_path)
                    print("TEI/XML 変換成功!tei.xml に保存されました。")
                    break
            else:
                print("エラー: tei.xml ファイルが見つかりません。")
    else:
        print("エラー:", response.status_code, response.text)

# メイン処理
if __name__ == "__main__":
    # 変換したいWordファイルのパスを指定
    word_file = "documents/sample.docx"  # ここを実際のファイルパスに変更してください
    
    # 出力ファイルのパスを指定
    output_file = "output/sample_tei.xml"  # 出力先を指定
    
    try:
        # Wordファイルを変換
        convert_docx_to_tei_xml(word_file, output_file)
        
        
        
    except Exception as e:
        print(f"エラーが発生しました: {e}")

3. スクリプトを実行する

スクリプト内のword_file変数を、変換したいWordファイルの実際のパスに変更します。同様に、output_file変数も希望の出力先に変更してください。

その後、コマンドプロンプトやターミナルで以下のコマンドを実行します。

python word_to_tei.py

まとめ

TEIgarageのAPIを使うことで、WordファイルをTEI XML形式に簡単に変換することができます。このスクリプトを活用して、デジタル人文学プロジェクトでのテキスト処理を効率化しましょう。

TEIは学術的なテキストの標準的なマークアップ言語であり、変換されたXMLファイルは長期保存や詳細な分析に適しています。また、TEI形式のデータは様々なデジタル人文学ツールで利用することができます。

ぜひ、このスクリプトを自分のプロジェクトに合わせてカスタマイズしてみてください!

Discussion