Pythonでテキストが何語で書かれているのか言語検出してくれるライブラリが非常に有用【langdetect】

Python基礎

Pythonで日本語・英語・中国語・韓国語など、複数の言語を扱うとき「この文章が何語がパッと判別できる仕組みがあればなあ」と思ったことがある人は意外と多いでしょう。

今回はそんな方々の悩みを解決してくれるライブラリの紹介です。

方法

概要

langdetectというライブラリを使って問題を解決します。

事前準備

先にpipでインストールしておきましょう。

%pip install langdetect

使用コード1

一番簡単なコードはこんな感じです。

from langdetect import detect

text_to_detect = "美しい風景を眺める。"

print(detect(text_to_detect))

結果1

ja

日本語という結果が出力されました。

ちなみに、言語の略称はこちらに準拠しているそうです。

使用コード2

確率的に変動するような文章の場合、detect に代えて detect_langs を import します。

from langdetect import detect_langs

text_to_detect = "Otec matka syn."

detected_languages = detect_langs(text_to_detect)
for language in detected_languages:
    print(f"{language.lang}: {language.prob}")

変数 text_to_detect に代入されたテキストに対して、言語を予測検出します。

結果2

fi: 0.5714252762780159
pl: 0.42857031750101926

フィンランド語の確率が約57%、ポーランド語の確率が約49%という結果になりました。

detect_langs(text_to_detect) の中身がリスト形式になっており、各要素に対して .lang で言語、 .prob で確率(float)を出力してくれます。

以上です。

【Reference】

https://pypi.org/project/langdetect

スポンサーリンク