2

私は点字翻訳ライブラリに取り組んでおり、テキストの文字列を点字に翻訳する必要があります。これを複数のパスで行う予定ですが、文字列のどの部分が翻訳され、どの部分が翻訳されていないかを追跡する方法が必要なので、それらを再翻訳しません。

処理された文字列内の位置の範囲を追跡するクラスをいつでも作成でき、その後のパスでそれらを無視するように検索/置換アルゴリズムを設計できますが、よりエレガントな方法がないかどうか疑問に思っています同じことを達成するために。

マルチパス文字列変換はそれほど珍しいことではないと思いますが、それを行うためのオプションが何であるかはわかりません。

4

2 に答える 2

4

より一般的なアプローチは、入力をトークン化してから、トークンで作業することです。たとえば、文字列を各文字のトークンにトークン化することから始めます。次に、最初のパスで、単純な点字マッピングをトークンごとに生成します。後続のパスでは、より多くのトークンを置き換えることができます。たとえば、入力トークンのシーケンスを単一の出力トークンに置き換えることによってです。

トークンは単純な文字ではなくオブジェクトまたは構造体であるため、現在のトークンを翻訳した (または音訳した) ソース トークンなどの追加情報をそれぞれに添付できます。

于 2009-10-13T16:11:46.557 に答える
0

いくつかの基本的なコンパイラ理論をチェックしてください..

于 2010-01-05T17:44:24.830 に答える