LingPyで歴史言語学的分析を行う 2
以前の投稿で, 非常に興味深い LingPy というライブラリを見つけたことをまとめた. 今回は, その LingPy を用いて他のコードを見てみたい.
今回は音韻的にそれぞれの単語がどのくらい離れているかという, ペアワイズ・アライメントを行ってみる.
from lingpy.align.pairwise import Pairwise
# 比較したい2つの単語のIPA表記 (例: 英語 'daughter' と ドイツ語 'Tochter')
# ※LingPyが認識しやすいよう、必要に応じて記号を使います
word1 = 'dɔːtə'
word2 = 'tʰoxtər'
# Pairwiseオブジェクトの作成
pw = Pairwise(word1, word2)
# SCA (Sound-Class-Based Alignment) アルゴリズムでアライメントを実行
# ※他にも 'edit' (レーベンシュタイン距離) などが指定可能です
pw.align(method='sca')
print("--- ペアワイズ・アライメント結果 ---")
# アライメントされた2つの文字列と、スコアが出力されます
print(pw)
# 個別のデータにアクセスする場合
print("\n--- 詳細 ---")
print(f"単語1のアライメント: {pw.alignments[0][0]}")
print(f"単語2のアライメント: {pw.alignments[0][1]}")
print(f"類似度スコア: {pw.alignments[0][2]}")
参考文献
- List, Johann-Mattis and Forkel, Robert (2024): LingPy. A Python library for historical linguistics. Version 2.6.13. URL: https://lingpy.org, DOI: https://zenodo.org/badge/latestdoi/5137/lingpy/lingpy. With contributions by Simon Greenhill, Tiago Tresoldi, Christoph Rzymski, Gereon Kaiping, Steven Moran, Peter Bouda, Johannes Dellert, Taraka Rama, Frank Nagel, Patrick Elmer, Arne Rubehn. Passau: University of Passau.