私は Unicode について多くのことを読んできましたが、正規化とそのさまざまな形式について非常に混乱したままです。要するに、私は PDF ファイルからテキストを抽出し、セマンティック テキスト分析を実行するプロジェクトに取り組んでいます。
簡単な python スクリプトを使用してテキストをうまく抽出できましたが、今度はすべての同等の正字法文字列が 1 つ (そして 1 つだけ) の表現を持つようにする必要があります。たとえば、'fi' 活字合字は 'f' と 'i' に分解する必要があります。
Python のunicodedata.normalize
関数には、Unicode コード ポイントを正規化するためのアルゴリズムがいくつか用意されているようです。誰かが次の違いを説明してもらえますか:
- NFC
- NFKC
- NFD
- NFKD
関連するウィキペディアの記事を読みましたが、あまりにも不透明すぎて、私の弱い脳には理解できませんでした。誰かがこれをわかりやすい英語で親切に説明してくれませんか?
また、自然言語処理プロジェクトに最適な正規化方法を推奨していただけますか?