2

私が学生だった2000年に、私はオートマトン理論のコースを受講しました。このコースの演習では、基本的にGrail(http://www.csd.uwo.ca/Research/grail/)と呼ばれるUNIXコマンドラインツールを再プログラムしました。Grailを使用すると、正規表現または決定論的/非決定論的有限状態マシンを使用してファイルを読み込み、それらに一般的な理論的操作を適用できます。FSMの最小化、空のチェック、反転、FSMの積、FSMからRegEx、RegExからFSM、文字列を入力し、マシンをシミュレートするなど。

Grailは利用できるようですが、2002年以降開発されていないようです。したがって、私の質問:まだ活発に開発されている同様のツールについて誰か知っていますか?(つまり、現代のグレイル?)今日のクラスでは何が使われていますか?

私が探しているのは、stdinからFSMまたはRegExesを読み取り、操作を適用し、その結果をUnixの方法であるstdoutに出力して、独自のパイプを作成できるコマンドラインツールです。単純なFSMと正規表現で十分なので、プッシュダウンオートマトンやブチオートマトンのようなものは実際には必要ありません。

コマンドラインツールがない場合、優れたライブラリやグラフィカルツールはありますか?

4

5 に答える 5

3

OpenFstのようなVaucansonプラットフォームは、TAFKitと呼ばれるコマンドラインツールを提供します。これは、探しているものを正確に実行します。stdinまたはすでに計算されたオブジェクトの保存ファイルからFSMまたはRegExpを読み取り、それらに対して操作を実行します(約70の関数が利用可能) 、さらに処理するために、結果をstdoutまたはファイルに出力します。パイプを使用して、シェルスクリプトを作成できます。

Vaucanson 1.4.1をダウンロードするには、次のURLにアクセスしてください。

http://www.lrde.epita.fr/cgi-bin/twiki/view/Vaucanson/Vaucanson141

かなり完全なユーザーズマニュアルがあります。

詳細については、遠慮なく私にメールしてください。

                   Jacques Sakarovitch
                   sakarovitch@enst.fr
于 2013-01-21T20:31:50.523 に答える
2

OpenFstは、有限状態トランスデューサーを操作するためのコマンドラインツールのセットです。コンパニオン文法ツールキット OpenGrmがあります。マシンはGraphVizで視覚化できます。

fomaは、正規表現をサポートするもう1つのトランスデューサツールキットです。

于 2012-09-29T06:42:48.903 に答える
1

jFlapは、Javaで記述された同様のプログラムです。最終更新は2011年5月でした

于 2012-09-29T06:47:09.207 に答える
1

http://www.stanford.edu/~laurik/fsmbook/home.htmlでtokenizeおよびlookupコマンドラインツールを見てください。これらは、テキストをトークン化(単語に分割)し、単語の形態学的な読みを検索するために設計されていますが、より一般的に適用できます。

OpenFst上に構築されたThrax言語には、次のように使用できるコマンドラインツールがあります。

猫input1babbabbab baba

cat input1 | thraxrewrite-tester --far = testrewrite.far --rule = R1 | カット-f5-d''bib bibbib biba

R1は、コンテキストb_bで「a」を「i」に置き換えます。

于 2012-12-21T08:55:35.640 に答える
0

Javaの場合、私は個人的にhttp://www.brics.dk/automaton/を使用します。これは、現在実際には開発が進んでいませんが、まだ広く使用されており、非常に安定していて、かなり高速です。正規表現をオートマトンに変換し、連結、共通部分、和集合などのさまざまな操作を適用できます。ただし、欠落しているのは、オートマトンを正規表現文字列に逆変換することだけでした。

dk.bricsの上にライブラリを実装しました。これにより、状態を削除することにより、オートマトン表現から正規表現文字列を導出できます。このライブラリを使用することで、上記で説明したコマンドラインツールを開発できるようになります。

興味がある場合は、https://github.com/julianthome/autorexをご覧ください。

よろしくお願いします、ジュリアン

于 2016-09-24T19:47:23.810 に答える