polyglotによる言語検出の精度を見てみる
awesome-pythonリストを確認していると、自然言語処理のカテゴリーの中にpolyglotというライブラリがあり、ドキュメントを確認してみると、言語検出ができるとのことなので精度を試して見ます。
環境の用意
はじめはmac上で環境構築を行なっていたのですが、iucがうまく入らなかったため、dockerに切り替えました。
docker hubで検索をかけると良さそうなのがあったのでこれを使用します。
urbulent/polyglot-baseイメージの使用・コンテナの起動
urbulent/polyglot-baseイメージを使用して以下コマンドでdokcerを立ち上げ、コンテナに入ります。
docker pull turbulent/polyglot-base
docker run --rm -it turbulent/polyglot-base /bin/ash
日本語モデルの用意
正しく検出を行うために、日本語のモデルをインストールします。ここからの作業はdokcer内で行います。
インストールはコマンドラインから行えるためリファレンスを参考に以下のコマンドでインストールを行います。
polyglot download LANG:ja
検出を行う
少し雑ですがツイッターから取得したテキストを元に判定を行います
echo "【速報でーす!】「進撃の巨人 Season3」7月から総合テレビで放送する予定です。▼くわしくはこちら(NHKアニメワールド)" | polyglot detect
echo "ハイアット リージェンシー 東京より、いちご尽くしの「いちごのアフタヌーンティー」が登場 -https://www.fashion-press.net/news/36750 " | polyglot detect
echo "【震度・震源速報 2018年1月24日】 24日19時51分頃、青森県東方沖を震源とする地震がありました。震源の深さは約30km、地震の規模はM6.2と推定されています。この地震による津波の心配はありません。" | polyglot detect
echo "HKT48のアルバム「092」。 パッと「買ってね!」と言える価格ではないので躊躇してたんですが(正直者)秋元さんからDVD特典に「いい!」とコメントが来たそうなので今更ですが。。素敵なアルバムです。学生さん、お年玉でぜひ!" | polyglot detect
echo "IN 熱海❤️10代の頃からお世話になっている方に昨日は旅館を用意していただいて、今日はその方の別荘にお母さんと泊まらせいただきます😌✨ステキな別荘で綺麗すぎるオーシャンビュー。私だけでなくていつもお母さんも気遣ってくださるんです‥😭本当に感謝しかない。私の第2のお父さん💕" | polyglot detect
少しわかりづらいですが、japaneseとして認識されています。
また、日本語と中国語が判別できているかも確認します。
echo “日本” | polyglot detect
echo 你好 日本 | polyglot detect
日本
だけだと'WARNING base.py: 93 Detector is not able to detect the language reliably.'としてワーニングとちゃんと返しています。你好 日本
では正しくChineseとして処理されています。
まとめ
ちょっとしたデータで試しただけですが、日本語として正しく検出できており、また検出言語に自信がないものはワーニングを返すということがわかりました。このライブラリを使用することにより、web上のデータをクローリングした際に、日本語のものだけに絞り込めたらいいなと思います。
Author And Source
この問題について(polyglotによる言語検出の精度を見てみる), 我々は、より多くの情報をここで見つけました https://qiita.com/lnkusu/items/35d78a13e03881da2a09著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .