2

南アジア言語の最終年度のプロジェクトで (Unicode) スペル チェッカーを開発することにしました。プラグインやWebサービスとして開発したい。しかし、それに適した開発プラットフォームを決定する必要があります。(これは辞書ファイルをチェックするだけでなく、形態素解析/生成モジュール (ステマー) も使用されます)。

Java スクリプトは、公平な応答時間でそのような処理を処理できますか?

クライアント側で大きな辞書を処理できますか?

あなたができるより良い提案はありますか?

4

1 に答える 1

1

Javascript は、少なくともそれだけでは十分ではありません。その Unicode サポートは原始的すぎて、多くの部分で実際に欠けています。たとえば、Javascript は Unicode 書記素クラスターをサポートしていません。

Java を使用する場合は、ICU ライブラリを使用して、テキストの分割に必要なすべての優れた Unicode プロパティを取得できるようにしてください。Java のネイティブ Unicode 処理が機能しない場所は正規表現ライブラリにあります。これが、Android JNI が ICU C/C++ 正規表現ライブラリに移行する理由です。Java 用に作成された NLP ツールは多数あり、そのうちのいくつかは便利なものです。私が知っているこれらのほとんどは、英語または少なくとも西洋言語用です。

クライアント側のアクションだけでなく、CGI を介してサーバー側で計算の一部を実行したい場合は、もはや言語の選択に縛られる必要はありません。たとえば、クライアント上の Javascript をサーバー上の Perl と組み合わせることができます。Perl の Unicode サポートは Java よりも優れています。それがどのように融合するか、どのようにパフォーマンスと動作を実現するかは、実際に何をしたいかによって異なります。

Perl には、広く利用可能な業界標準の NLP モジュールが多数あります。Java と同様に、Perl は内部で Unicode を使用しているため、そのほとんどは既に Unicode の使用を知っています。

特定の種類の形態素解析、つまりステミングとラムマタイゼーションのために Perl で NLP ツールを使用する方法に関する簡単なスライド プレゼンテーションは、こちらから入手できます。このプレゼンテーションは、Safari、Firefox、または Chrome で動作することが知られていますが、Opera や Microsoft の Internet Explorer ではうまく機能しません。

Perl は CPAN のUnicode::LineBreakモジュールを介して UAX#11 (East Asian Width) と UAX#14 (Unicode Linebreaking) をサポートしており、Perl には完全に対応する照合モジュール (UTS#10、Unicocde 照合アルゴリズムを実装) を標準のUnicode:: Collat​​e モジュール経由で使用し、多くのアジアのロケールがサポートされている標準の Unicode::Collat​​e ::Localeモジュールからロケール サポートを利用できます。CJK 言語を使用している場合は、CPAN のUnicode::Unihanモジュールを介して利用可能な Unihan データベースにアクセスしたい場合があります。さらに根本的に、Perl は Unicode 拡張書記素クラスタをネイティブでサポートしています。\XJava も Javascript も提供しない組み込み正規表現エンジンのメタ文字。

これらはすべて、Javascript に必要であり、ひどく不足していると思われる種類のものです。

于 2012-06-22T11:17:46.807 に答える