あなたがこれらをどのように達成するかを肉付けしてみましょう。
大文字化
これはNamed Entity Recognitionにかなり近く、「シーケンスのタグ付けの問題」の一例です。固有名詞は最初に大文字にする必要があり、頭字語である組織名はすべて大文字にする必要があります。次に、これらのカテゴリに該当しない他の例があります。したがって、NER よりも難しいと思われるため、単純な辞書ベースのアプローチはおそらく理想的なソリューションではありません。
隠れマルコフ モデルを使用する場合、これは HMM の「隠れた」状態を [lowerCase, initCaps, allCaps] にし、正しいと仮定するいくつかのデータでトレーニングすることになります (例: ウィキペディアですが、他にも多くのソースがあります)。それも)。次に、正しく大文字化されているかどうかわからない単語の非表示状態を推測します。HMM ライブラリはたくさんありますが、ニーズに合ったものを見つけることができると確信しています。HMM を試すことは、最初の選択としては適切だと思います。
非 ASCII 文字
ご想像のとおり、より難しい問題です。単語レベルで HMM を使用してこれを行おうとすると、アクセント付きの単語ごとに 1 つずつ、膨大な数の隠れ状態が発生し、おそらくトレーニングが不可能になります。この問題は、キャラクター レベルの方が扱いやすいですが、前のキャラクターだけを考慮すると、膨大な量のコンテキストが失われます。文字の代わりに n-gram を使い始めると、スケーリングの問題が再発します。要するに、ラベルの数が多すぎてシーケンスのラベル付けの問題と見なすことができないため、この問題は前の問題とは似ていないと思います (できるということですが、実用的ではありません)。
この分野の研究については聞いたことがありません。また、私は専門家ではありません。私の最善の推測は、興味のある言語の一般的な言語モデルを使用することです。これを使用して、その言語の文の確率を得ることができます。次に、アクセント付きの可能性のある文字を置き換えて、それらの文の確率を示し、最も可能性の高いものを取得するか、違いにしきい値を使用するか、そのようなものを使用できます。特定の言語の大規模なコーパスで、n-gram 言語モデルをかなり簡単にトレーニングできます。
精度や効率の点で、これが実際に機能するかどうかはわかりません。この特定の問題を直接経験したことはありません。
音訳
正直なところ、わかりません。独自のシステムを作成するためのデータがどこにあるのかわかりません。簡単な検索の後、Google Transliterationサービス (API 付き) を見つけました。おそらくそれはあなたが求めていることをします。他のスクリプトを使用した言語で、それが何をしているのかを本当に理解するのに十分な経験さえありません.