OCR出力で動作する英語以外の言語のスペル訂正システムを開発中です。私は非常に大規模な辞書を使用してスペルミスをチェックし、提案をします。PHPで類似した書式の文字セットに基づく訂正改善
ほとんどのスペルミスは、類似した形の文字が原因です。例えばـجـ
、ـچـ
、ـحـ
、ـخـ
またはغ
、ع
となどが挙げられる。これらの文字は例I
、l
とu
、v
、y
のために、あまりにも英語で存在します。
スペルチェックシステムでは、確認したい単語をいくつか提案します。例えば、我々は、入力voga
それはこれらの単語を示唆うとします。
volga
boga
yoga
toga
voga
の長さは、我々はよ、4であるので、 4文字の提案だけを残してください。現在、OCRエンジンはv
をy
として検出できるため、voga
の推奨候補としてyoga
をOCR出力として選択します。
私たちの言葉では、この種の選択は非常に効果的です。例えば、我々は入力مدپر
、これらの言葉が示唆されている場合:私たちのセットに基づいて
مدارا
مدار
مدیر
مراد
(この例では:ـبـ
、ـپـ
、ـیـ
およびز
,ر
,012 ,د
,مـ
,فـ
,قـ
)と語の長さمدیر
は、مدپر
に最適なオプションです。私は通常、PHPスクリプト言語でこの機能を実装
方法はその後、提案されているのと同じ長さの単語が(すべてのセットを置き換えることにより、同様مدپر
、فدپر
、قدپر
、その後مذپر
を誤って綴られた単語のすべての可能な組み合わせを作成しておくことです、 فذپر
、قذپر
など)、その後、候補リスト内の同じ単語を検索します。しかし、この実装方法は実際には(特に大きな文脈では)遅く、ほとんど無意味になります。
この種の機能をPHPで実装するには、どのような方法やアルゴリズムが最適ですか?
更新:
提案リストを生成エンジンが最適化され、通常は候補リストで正しい単語が含まれています。問題は、私のシステムが、人工知能のない正しい単語として提案の1つを選択しなければならないことです。だから私は、この方法は文字が似た形をしている多くのセットがあり、OCRエンジンが通常誤って単語を検出するため、私の言語では良いと思います。しかし、より良い方法があれば、それらを提案することを歓迎します。
私を容赦してください、しかし、あなたは本当ですか?これはあまりにも広い質問です。ソリューションは存在しますが、重要なトピックであるため、多くの科学者は何年もそれを費やしました。そして、あなたは間違いなくこのトピックに関する数百のページを見つけることができます。だから、自分の研究をしてからもう一度やり直して、あなたの努力を示して、あなたが試したこと、そしてあなたの次のステップで解決すべき問題を示してください。 –
@AlKepp私が提案を得るために使用するエンジンは、最適化されており、正しい言葉を彼らの提案の1つとして与えています。問題は、私のシステムが提案の1つを自動的に選択し、この方法を使って1つを選択することが本当に効果的であるということです。私はそのようなことをやっていると考えられる最高のものをどのように選ぶべきかわからない。 –
@AlKepp私はまた私の質問を更新しました。 –