edit_distance()
次の例での使用には少し問題があります。言語リストに記載されている言語の単語を 5 列に出力する必要がありますが、これは問題ではありません。私はそれをしました:
from nltk.corpus import swadesh
from nltk.metrics import *
from transliterate import translit
languages = ['be', 'bg', 'bs', 'ru', 'cs']
for lang in languages:
print('{:10}'.format(lang),end='')
print()
for i in range(len(swadesh.words('be'))):
for lang in languages:
print('{:10}'.format(swadesh.words(lang)[i].split(',')[0]),end='')
print()
この部分は、想定どおりに機能します。ここで、「be」言語の単語と他の言語のこの単語に相当する単語との間のレーベンシュタイン文字列編集距離を測定する必要があります。また、距離は括弧内の各単語の後に表示されます。たとえば、次のようになります。
tamto(0) acela(5) oni(5) то(3)
それを測定するための最良のアイデアとして何を提案しますか? 私は辞書を作成することを考えていました:
for i in languages:
words = swadesh.words(i)
d[i] = words
print(d)
そして、どういうわけか編集距離を計算しますが、これを実行できません。特に言語の 1 つであることに注意してください。ロシア語はスクリプトが異なるため、翻訳を使用する必要があります (間違っている場合は訂正してください。これはオンラインで見つけたものです)。それについて行く方法のヒントはありますか?私はプログラミングに慣れていないので、あなたにとっては簡単な質問かもしれませんが、nltk のすべてを回避する方法をまだ見つけようとしています。前もって感謝します!