Um W maiúsculo também não ocorre no final de uma palavra, mas pode ocorrer em uma abreviação de todos os maiúsculas. Então, eu substituo W
quando é imediatamente após uma letra minúscula, ou quando segue uma letra maiúscula e precede uma letra minúscula (aWre).
sed -e 's/\([[:lower:]]\)W/fi/g' -e 's/\([[:alpha:]]\)W\([[:lower:]]\)/fi/g'
Isso não cobre fifi
(que minha maior lista de palavras só encontra em "fifing"). Mais importante, isso não cobre W
no início de uma palavra; você pode capturar alguns casos observando a segunda letra, mas isso ainda vai perder muitas palavras que começam com fi
. Em inglês, muitas letras nunca aparecem depois de um W:
… -e 's/\([^[:alnum:]]\)W\([b-dfgj-npqstv-xz]\)/fi/g' \
-e 's/^W\([b-dfgj-npqstv-xz]\)/fi/'
Para obter resultados mais precisos e lidar com outras linguagens, você pode alternar para uma abordagem mais complexa baseada em dicionário (que os sofisticados sistemas de OCR usam com frequência, evidentemente que o seu não é sofisticado o suficiente).