<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">normalization</rt></rubyb></dfn>、<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準化<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonicalization</rt></rubyb></dfn>は、
表記揺れを統一する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">演算</anchor>です。</p><section><h1>いろいろな正規化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト構文解析器</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URLの正準化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグの正規化</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML正準化</anchor></li><li><code class="HTML" xml:lang="en">rel=canonical</code></li></ul></figure></p><section><h1>文字列正規化</h1><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">case folding</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode正規化形</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicodeクメール文字正規化</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode IDNA互換性処理</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRECIS</anchor>
も広義の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>と言えますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>に加えて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字と小文字</anchor>の変換や禁止文字などその他の処理も組み合わさっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> による制約を満たす<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>も広義の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化形</anchor>と言えますが、やはり他の制約が組み合わさっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化形</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>レベルの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文脈</anchor>上の制約を組み合わせた概念もあります。<figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">完全正規化</anchor></li></ul></figure></p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語処理</anchor>その他のための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicodeクメール文字</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicodeアラビア文字</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字幅</anchor></li></ul></figure></section></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較</anchor>の基礎となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">演算</anchor>でもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子署名</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規形</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">演算</anchor>するのが一般的です。
本質的でない表現のバリエーションによる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証</anchor>の失敗を防ぐためです。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列の比較</anchor></p></section><section><h1>メモ</h1></section></body></html>