🗣️

PythonのlangdetectをChatGPTで変換してflutterパッケージに移植しました

2023/04/26に公開

Pythonのlangdetectライブラリを移植して、flutter用の言語検出パッケージを作成しました。その名も、flutter_langdetectです。

https://pub.dev/packages/flutter_langdetect

(移植作業の80%はChatGPT-4を使ってPythonからdartへの変換を行っています。)

特徴

  • 55言語を検出可能
  • 軽量で高速

インストール方法

まず、pubspec.yamlの依存関係にflutter_langdetectを追加します。

dependencies:
  flutter_langdetect: ^0.0.1

その後、flutter pub getを実行してパッケージをダウンロード・インストールします。

使用方法

import 'package:flutter/widgets.dart';

// 'as langdetect'としてインポートすることをお勧めします(単純な関数名'detect'を提供しているため)
import 'package:flutter_langdetect/flutter_langdetect.dart' as langdetect;

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await langdetect.initLangDetect();  // これはアプリケーションで一度だけ必要です(ensureInitialized()の後)

  String text = 'こんにちは、世界!';
  final language = langdetect.detect(text);
  print('検出された言語: $language'); // -> "ja"

  final probs = langdetect.detectLangs(text);
  for (final p in probs) {
    print("言語: ${p.lang}");  // -> "ja"
    print("確率: ${p.prob}");  // -> 0.9999964132193504
  }
}

開発の経緯

Mimino666氏によって作成されたPythonライブラリlangdetectは与えられたテキストの言語判定を行う非常に強力なライブラリです。

さらにlangdetectは、Nakatani Shuyo氏がJavaで書いたlanguage-detectionライブラリの移植版となっています。(解説資料

これらのライブラリは、非常に軽量・高速に言語判定ができるため、スマートフォンアプリなどへの組み込みに適していると考えました。

今回、個人的に必要になりましたので、これをdart化しflutterで使えるパッケージとして公開しました。

フィードバックなどありましたら、issue・プルリクなどお気軽に。

Discussion