私は非常に多くの解析ルール (つまり、文字列を別の文字列または構造化データに変換する関数) を記述する必要がある立場にあり、これには PEG を使用すると考えていましたが、例文とその正しい解析のリストを提供するだけで簡単に書くことができ、技術的には些細なことのように思えますが、混乱しています.
私は PEGjs (構文解析式文法ツール) と正規表現をいじりました。私の目的では、ニーズは本当に非常に基本的なものであり、PEG と正規表現によって提供されるすべての力よりもはるかに少ないようです。
解析したいものの例を次に示します。
"I want a red square" -> "make a red square"
"Give me a red square!" -> "make a red square"
"If you please, sir, a blue triangle." -> "make a blue triangle"
"Scratch that." -> "delete last shape"
おわかりのように、私は何百もの例文をそれぞれ正しい構文解析と組み合わせて提供し、パターンに従うすべての文章を構文解析するために必要な関数をコンピューターに記述させたいと考えています。
これを理解するのは少し難しいので、すべてのハッカーに質問します:
- 入力文のさまざまなバリエーションを提供するだけで、非常に単純なロジックのみが必要になるというのは本当ではないでしょうか (つまり、機械学習も、PEG も、正規表現もありません)。
- 機械学習機能 (ベイジアン?) でこれを簡単にできるでしょうか? (私のアプリケーションでは、文の解析に 100% の確実性は必要ありません。あいまいさは問題ありません。特に、ユーザーがそのあいまいさを解決できるように提示できる場合)
- この種の問題に適したツール (ライブラリ) やロジック (疑似コードをお願いします!)、または単にその性質を説明するものは何ですか?