LingPyで歴史言語学的分析を行う
最近また, 面白い言語学に使えそうなPythonライブラリを発見した. それがLingPyという, 歴史言語学的な分析を行うライブラリである.
このライブラリは, 歴史言語学的な知見を踏まえて言語分析ができる, 非常に興味深いライブラリである.
実際に使ってみた例がこちらである.
このコードを用いると, それぞれの単語がどういった系統の語に割り振られるかといった内容が表示される.
from lingpy import Wordlist, LexStat
from lingpy.align.sca import Alignments # Align ではなく Alignments をインポート
# 1. サンプルデータの作成 (概念, 言語, IPA表記)
data = {
0: ['concept', 'language', 'ipa'],
1: ['hand', 'Spanish', 'mano'],
2: ['hand', 'Italian', 'mano'],
3: ['hand', 'French', 'mɛ̃'],
4: ['water', 'English', 'wɔtə'],
5: ['water', 'German', 'vasər']
}
# 2. Wordlistオブジェクトの生成
wl = Wordlist(data)
# 3. LexStatによる同系語の自動計算
lex = LexStat(wl)
lex.cluster(method='sca', threshold=0.45, ref='cogid')
# 4. 同系語アライメント
alm = Alignments(lex, ref='cogid')
alm.align()
# 5. 結果の表示
print("\n--- 分析結果 ---")
print("概念\t言語\tIPA\t同系語ID\tアライメント")
for idx in alm:
concept = alm[idx, 'concept']
lang = alm[idx, 'language']
ipa = alm[idx, 'ipa']
cogid = alm[idx, 'cogid']
alignment = alm[idx, 'alignment']
print(f"{concept}\t{lang}\t{ipa}\t{cogid}\t{alignment}")
参考文献
- 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.