All Projects → deezaster → germanphonetic

deezaster / germanphonetic

Licence: other
Phonetischer Algorithmus nach dem Kölner Verfahren für PHP, PL/SQL und Kotlin

Programming Languages

dart
5743 projects
kotlin
9241 projects
PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to germanphonetic

Wortuhr
Software für eine ESP8266 basierte Wortuhr mit verschiedenen Layouts
Stars: ✭ 30 (-9.09%)
Mutual labels:  german
wink-tokenizer
Multilingual tokenizer that automatically tags each token with its type
Stars: ✭ 51 (+54.55%)
Mutual labels:  german
10kGNAD
Ten Thousand German News Articles Dataset for Topic Classification
Stars: ✭ 63 (+90.91%)
Mutual labels:  german
GKey
German Keyboard Layout for TempleOS
Stars: ✭ 20 (-39.39%)
Mutual labels:  german
deep-learning-german-tts
Thorsten-Voice: A free to use, offline working, high quality german TTS voice should be available for every project without any license struggling.
Stars: ✭ 268 (+712.12%)
Mutual labels:  german
jiten
jiten - japanese android/cli/web dictionary based on jmdict/kanjidic — 日本語 辞典 和英辞典 漢英字典 和独辞典 和蘭辞典
Stars: ✭ 64 (+93.94%)
Mutual labels:  german
language-detector
Detect the language of text
Stars: ✭ 28 (-15.15%)
Mutual labels:  german
TheoLog
Vorlesungsunterlagen "Theoretische Informatik und Logik", Fakultät Informatik, TU Dresden
Stars: ✭ 20 (-39.39%)
Mutual labels:  german
SoMeWeTa
A part-of-speech tagger with support for domain adaptation and external resources.
Stars: ✭ 20 (-39.39%)
Mutual labels:  german
NumberRush
A number based React game to help you learn German numbers! 🇩🇪
Stars: ✭ 20 (-39.39%)
Mutual labels:  german
PhantomBotDE
PhantomBotDE ist ein aktiv Entwickelter interaktiver Open Source Twitch Bot mit einer lebendigen Community welche Unterhaltung und Moderation für deinen Kanal bietet, dieser erlaubt dir dich auf das was wirklich zählt zu Konzentrieren - dein Spiel und deine Zuschauer.
Stars: ✭ 24 (-27.27%)
Mutual labels:  german
phonetic-algorithms
Phonetic-Algorithms for fuzzy searching | PHP
Stars: ✭ 14 (-57.58%)
Mutual labels:  phonetic
CoinTaxman
Calculate your taxes from cryptocurrency gains
Stars: ✭ 110 (+233.33%)
Mutual labels:  german
HistoryOfMe
Your own personal diary.
Stars: ✭ 50 (+51.52%)
Mutual labels:  german
l2kurz
German short introduction to LaTeX
Stars: ✭ 19 (-42.42%)
Mutual labels:  german
awesome-made-by-germans
🇩🇪 The best open source projects that were made and mainly contributed by German developers
Stars: ✭ 170 (+415.15%)
Mutual labels:  german
openredact-app
This is a prototype of a semi-automatic data anonymization app for German documents.
Stars: ✭ 14 (-57.58%)
Mutual labels:  german
destatiscleanr
Imports and cleans data from official German statistical offices to jump-start the data analysis
Stars: ✭ 47 (+42.42%)
Mutual labels:  german
Legal-Entity-Recognition
A Dataset of German Legal Documents for Named Entity Recognition
Stars: ✭ 98 (+196.97%)
Mutual labels:  german
FormaleSysteme
Unterlagen zur Vorlesung "Formale Systeme", Fakultät Informatik, TU Dresden
Stars: ✭ 31 (-6.06%)
Mutual labels:  german

Phonetischer Algorithmus nach dem Kölner Verfahren

Implementationen

  • Oracle PL/SQL: x3m_soundex_ger.sql

  • PHP: x3m_soundex_ger.php

  • Kotlin: PhoneticConverter.kt (Von Steffen Halstrick [email protected])

  • Dart: german_phonetics.kt (Von Steffen Halstrick <[email protected]>)

Einleitung

Die Kölner Phonetik (auch Kölner Verfahren) ist ein phonetischer Algorithmus, der Wörtern nach ihrem Sprachklang eine Zeichenfolge zuordnet, den phonetischen Code. Ziel dieses Verfahrens ist es, gleich klingenden Wörtern den selben Code zuzuordnen, um bei Suchfunktionen eine Ähnlichkeitssuche zu implementieren. Damit ist es beispielsweise möglich, in einer Namensliste Einträge wie "Meier" auch unter anderen Schreibweisen, wie "Maier", "Mayer" oder "Mayr", zu finden.

Die Kölner Phonetik ist, im Vergleich zum bekannteren Russell-Soundex-Verfahren, besser auf die deutsche Sprache abgestimmt. Sie wurde 1969 von Postel veröffentlicht.

Algorithmus

Die Kölner Phonetik bildet jeden Buchstaben eines Wortes auf eine Ziffer zwischen "0" und "8" ab, wobei für die Auswahl der jeweiligen Ziffer maximal ein benachbarter Buchstabe als Kontext benutzt wird. Einige Regeln gelten speziell für den Wortanfang (Anlaut). Auf diese Weise wird ähnlichen Lauten derselbe Code zugeordnet. Die beiden Buchstaben "W" und "V" beispielsweise werden mit der Ziffer "3" codiert. Der phonetische Code für "Wikipedia" lautet "3412". Im Gegensatz zum Soundex-Code ist die Länge des phonetischen Codes nach der Kölner Phonetik nicht beschränkt.

Buchstabe Kontext Code
A, E, I, J, O, U, Y 0
H -
B 1
P nicht vor H 1
D, T nicht vor C, S, Z 2
F, V, W 3
P vor H 3
G, K, Q 4
C im Anlaut vor A, H, K, L, O, Q, R, U, X 4
C vor A, H, K, O, Q, U, X außer nach S, Z 4
X nicht nach C, K, Q 48
L 5
M, N 6
R 7
S, Z 8
C nach S, Z 8
C im Anlaut außer vor A, H, K, L, O, Q, R, U, X 8
C nicht vor A, H, K, O, Q, U, X 8
D, T vor C, S, Z 8
X nach C, K, Q 8

Dass für den Buchstaben "C" die Regel "SC" Vorrang vor der Regel "CH" hat, wurde durch den Zusatz "außer nach S, Z" in Zeile 10 der Tabelle berücksichtigt. Dies wird in der Originalveröffentlichung zwar nicht explizit erwähnt, kann aber aus den dort angeführten Beispielen geschlossen werden (z. B. für "Breschnew" wird als Code "17863" angegeben).

Die Umwandlung eines Wortes erfolgt in 3 Schritten:

  1. Buchstabenweise Kodierung von links nach rechts entsprechend der Umwandlungstabelle.
  2. Entfernen aller mehrfachen Codes.
  3. Entfernen aller Codes "0" außer am Anfang.

Beispiel

Der Name "Müller-Lüdenscheidt" wird folgendermaßen kodiert:

  1. Buchstabenweise Kodierung: 60550750206880022
  2. Entfernen aller mehrfachen Codes: 6050750206802
  3. Entfernen aller Codes "0": 65752682

Code Beispiele

PHP

require_once 'x3m_soundex_ger.php';
$phoneticcode = soundex_ger("Meier");

Oracle PL/SQL

Funktion: SOUNDEX_GER()
Select SOUNDEX_GER('Meier'), SOUNDEX_GER('Meyer') from Dual
Funktion: SOUNDEX_GER_MW()

Die Funktion SOUNDEX_GER_MW() dient als Multi-Word-Wrapper von SOUNDEX_GER(). d.h. Die Funktion bricht den Eingabe-String in einzelne Worte auf und codiert jedes einzelne Wort mit SOUNDEX_GER().

Select SOUNDEX_GER_MW('Mueller Luedenscheidt') from Dual

Die Multi-Word-Funktion ist deshalb wichtig, weil auch schon das im Netz üblicherweise dokumentierte Beispiel Müller-Lüdenscheidt eigentlich falsch gewählt ist. Müller-Lüdenscheidt sind 2 Wörter und damit gibt es 2 Anlaute und 2 Auslaute. Bei diesem Beispiel tritt das nicht zu Tage, aber z.B. bei Heinz Classen (im Unterschied zu HeinzClassen, was nämlich normalerweise kodiert würde). Wird "Heinz Classen" mit der üblichen Implementierung kodiert und dabei ignoriert, dass es sich um 2 Wörter handelt, dann entsteht 068586, wobei Z zu 8 und C ebenfalls zu 8 wird und die zweite 8 entfällt. Wird es als zwei Wörter behandelt, dann wird C zu 4 und bleibt erhalten, also 068 4586.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].