9

FST を使用して解決すべき問題があります。基本的に、形態学的パーサーを作成しますが、この時点では、大きな変換器を使用する必要があります。パフォーマンスは、ここで大きな問題です。

最近、私はパフォーマンスが重要な他のプロジェクトで C++ を使用していましたが、Java の利点と Java が改善されているため、Java を検討しています。

Java と C++ の比較をいくつか調べましたが、使用中の lib に依存するため、この特定の問題に使用する言語を決定できません。

Java のライブラリに関する情報があまり見つからないので、私の質問は次のとおりです。最速の C++ ライブラリである記事で読んだRWTH FSA ツールキットのように、パフォーマンスが良好なオープン ソースの Java ライブラリはありますか?

皆さんありがとう。

4

6 に答える 6

4

あなたの目的にとって、Javaの「利点」は何ですか? そのプラットフォームが解決する必要のある具体的な問題は何ですか? 考慮しなければならないパフォーマンス上の制約は何ですか? Javaは実際にはベンチマークが非常に難しいため、「比較」は公平でしたか。C++ もそうですが、少なくとも STL からアルゴリズムの境界保証を得ることができます。

OpenFst と AT&T の有限状態変換ツールを調べることをお勧めします。そこには他にもありますが、Java についてのあなたの心配は馬よりもカートを優先させると思います。あなたの問題をうまく解決するものに集中してください。

幸運を!

于 2011-02-01T20:53:14.310 に答える
2

私はmorfologik-stemmingライブラリの開発者の1人です。これは純粋なJavaであり、オートマトンを構築するときも使用するときも、そのパフォーマンスは非常に優れています。これをLanguageToolの形態素解析に使用します。

于 2012-06-19T08:21:40.570 に答える
2

http://jautomata.sourceforge.net/http://www.cs.duke.edu/csed/jflap/は、Java 有限状態マシン ライブラリに基づいていますが、私はそれらを使用した経験がないのでコメントできません。効率。

于 2011-08-11T05:32:47.083 に答える
0

ここでの問題は、Java でのオブジェクトの最小サイズです。C++ では、仮想メソッドと実行時の型の識別がなければ、オブジェクトはその内容を正確に重み付けします。また、オートマトンがメモリを操作するのにかかる時間は、パフォーマンスに大きな影響を与えます。

それが、Java よりも C++ を選択する主な理由だと思います。

于 2012-02-05T17:52:58.090 に答える
0

OpenFST は、非常に包括的な C++ 有限状態変換器フレームワークです。CMU の一部の人々は、自然言語処理で使用するために Java に移植しました。

それを説明するブログ投稿シリーズ。
コードはsvnにあります。

更新:ここでJavaに移植しました

于 2014-10-14T04:11:30.767 に答える