一部のスキャンをプレーンテキストに変換するためにOCRを使用していますが、残念ながら、一部のフォントのプレーン文字「fi」は大文字Wで読み取られます。これで、すべてのWを「fi」に置き換える必要があり、これらのWは実際の英語では単語の真ん中に大文字のWが現れないという事実と簡単に区別できます。したがって、すべての単語の真ん中にある大文字Wを文字fiに置き換えるsed一行ステートメントが必要です。
ベストアンサー1
大文字 W は単語の末尾には表示されませんが、すべて大文字の略語には現れます。そのためW
、小文字の直後に来るか、大文字の次と小文字(aWre)の前に来ると交換します。
sed -e 's/\([[:lower:]]\)W/\1fi/g' -e 's/\([[:alpha:]]\)W\([[:lower:]]\)/\1fi\2/g'
これは含まれていませんfifi
(私の最大の単語のリストは「fifing」でのみ見つけることができます)。さらに、これにはW
単語の先頭は含まれません。 2番目の文字を見ると、いくつかのケースがわかりますが、それでも始まる多くの単語がありませんfi
。英語では、Wの後に多くの文字が表示されません。
… -e 's/\([^[:alnum:]]\)W\([b-dfgj-npqstv-xz]\)/\1fi\2/g' \
-e 's/^W\([b-dfgj-npqstv-xz]\)/fi\2/'
より正確な結果を得て他の言語を処理するには、より洗練された辞書ベースのアプローチに切り替えることができます(高度なOCRシステムはしばしばこのアプローチを使用しますが、明らかにシステムは十分に進歩していません)。