ケルン式音声コード
Müller、Mueller、Mullerはすべて657、SchmidtとSchmiedは862になり、同じドイツ語の名前の綴り違いが1つにまとまります。名簿や顧客リスト、家系図での重複候補探しに役立ち、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Müller
- コード
- 657
- 長さ
- 3
- 正規化値
- MULLER
- 文字数
- 6
ケルン式音声コード(ドイツ語で Kölner Phonetik)は、姓・名を短い数字列に写像し、似た発音の綴り揺れが同じキーを共有するようにします。戸籍系の一覧、CRMの重複排除、系譜ツールでは、完全な音声モデルなしに Müller と Mueller、Schneider と Schnyder をまとめる場面で使われます。大文字化とウムラウトの折りたたみ、隣接文字を踏まえた各文字の写像、連続する同一数字の畳み込み、内部ゼロの除去です。
ケルン式音声コードが符号化するものと名前が衝突する理由
ケルン式音声コードは、綴りの揺れが多いドイツ語の人名一覧向けに設計されています。ウムラウトの二重字表記、黙字の H、軟音 C と硬音 C、2桁になる X などです。アルゴリズムは IPA の精度を主張せず、人が似たように発音する名前を束ねるコンパクトで決定的なキーを目指します。
A・E・I・J・O・U・Y はゼロに写像され、コード先頭を開く場合を除き後で消えます。H は完全に無視されます。子音は文脈規則で1から8に写像されます。
たとえば H の前の P は F と同様に3、C・S・Z の前の D または T は S と同様に8、X は C・K・Q の直後でなければ48です。文字処理の後、連続する同一数字が畳み込まれ、Schmidt と Schmied はいずれも八・六・二になり、先頭以外のゼロは除去されます。
そのため Müller・Mueller・Muller はいずれも六・五・七、Mayer・Meier・Maier・Mayr は六・七を共有します。系譜やマスタデータでは同一コードを候補照合として扱い、身元の証明とはみなしません。ミドルネーム、婚姻姓、転記誤りは人または二次チェックが必要です。
入力できる内容と結果の見方
非文字は normalized に出ません。句読点・空白・数字は符号化前に除去されます。文字が1つも残らない場合(例: text が 12345 のみ、または記号のみ)は、空または非アルファベット入力として失敗し、少なくとも1文字を求めます。
これらの失敗は課金されません。復号方向はありません。 ケルンコードは多対一で不可逆なので、逆引きにはご自身で管理する外部の人名辞書が必要です。照合スコアを組み立てる際は code の一致に独自の閾値(同一郵便地域、近い生年など)を組み合わせてください。
例: text Müller は code 657 と normalized MULLER、text Schmidt は 862、text Fischer は 387 です。
ケルン式音声コードが役立つ場面
顧客データ基盤はオンボーディングの merge-and-purge でケルン式を使い、ウムラウトの有無でドイツ姓の重複アカウントを作りにくくします。公的機関の移行スクリプトは、複数ソースの市民抽出を比較する際に soundex や metaphone 列の隣へ cologne コード列を付けます。
名前照合を教える教材には、空貼り付けを拒否する決定的オラクルが必要で、空文字成功を match-all と誤判定する採点器を避けられます。
コーパスがドイツ語または中欧向けなら本エンコーダを優先し、英語のみの無線綴りには NATO アルファベット系ツールを、英語寄りのファジー照合には soundex や metaphone のランディングを比較し、アングロ系名に無理にケルンを当てないでください。
活用例
CRM と顧客の重複排除
ドイツ姓ごとにケルンコードを付与し、人による重複アカウント確認の前に Müller と Mueller をまとめます。
系譜・戸籍一覧の索引付け
歴史的な人物行を Kölner Phonetik で索引し、Schneider 検索で近い綴り揺れも全文モデルなしに出せます。
ドイツ語抽出向け ETL 照合キー
移行ジョブで他の音声キーの隣に決定的な cologne 列を追加し、複数ソースの市民・従業員ファイルに使います。
よくある質問
ケルン式音声コード(Kölner Phonetik)とは何ですか?
固定の文字規則と C・D・T・P・X の文脈により語を短い数字列へ写像し、連続する同一数字と内部ゼロを畳み込む、ドイツ語の人名照合アルゴリズムです。
なぜ Müller と Mueller は同じコードになるのですか?
ウムラウトが基底母音へ折りたたまれ(Ü→U)、母音はゼロに写像されて先頭ゼロ以外は除去され、残る子音コードが一致するため、どちらも MULLER 方向に正規化され code 657 になります。
空入力や数字だけの入力ではどうなりますか?
ドイツ語ウムラウトや ß を含むアルファベット文字が少なくとも1つ必要で、空・空白のみ・非アルファベットは拒否され課金されません。
ケルンコードから名前へ復号できますか?
できません。 写像は不可逆で多対一です。本エンコーダは数字コードのみを生成し、逆引きにはご自身の人名辞書が必要です。
同じコードなら同じ人物だと判断できますか?
できません。同じコードは一致の候補を示すだけです。ミドルネームや結婚後の姓、書き写しの誤りもあるため、人による確認や、同じ地域、近い生まれ年などの別の条件と組み合わせてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/cologne-phonetic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Müller"}'const res = await fetch("https://api.kit.forhosting.com/enc/cologne-phonetic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Müller"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cologne-phonetic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Müller"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cologne-phonetic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Müller"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Müller"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cologne-phonetic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Müller"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cologne_phonetic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本エンコーダは純粋な Worker 上で古典的な Postel 規則を適用します。安定した code フィールドと正規化後の文字列が返り、2件が衝突した理由を監査できます。空文字や数字だけの貼り付けは hollow な成功ではなく invalid_input になります。無料のブラウザ経路と API は同一モジュールを共有し、成功リクエストは $0.002 でフィクスチャと本番が一致します。
ケルン式音声コードが符号化するものと名前が衝突する理由
返却された normalized フィールドで、符号化前に空白・ハイフン・数字を除いた後に残った文字を確認できます。
入力契約、応答フィールド、invalid_input の扱い
必須文字列 text(別名 input・value・name・s)を含む JSON オブジェクトを POST してください。前後空白は除去され、空白のみや欠落フィールドは問題を示す invalid_input になります。公開された文字数上限を超える極端に長い貼り付けも失敗し、エッジ Worker の予測可能性を保ちます。成功時は text をエコーし、code を数字列、length を桁数、normalized をウムラウト折りたたみ後の大文字 A–Z 列(Ä Ö Ü は A O U、ß は SS)、letter_count をその長さとして返します。本エンドポイントは音声キーのみを計算します。
ケルン式音声コード API が役立つ場面
リクエストは単一名や短いトークンに保ち、元の綴りの横に code を保存し、Dr や Frau などの称号を除いたキーが必要なら自前パイプラインで称号除去後に再符号化してください。
技術的な質問
ケルン式音声コード変換の料金はいくらですか?
ブラウザツールは無料です。API リクエストは前払い KIT 残高で成功1回あたり $0.002、無効入力は課金されません。