A few weeks ago, I started to port a context-sensitive phonetic string conversion algorithm to c#. It is called phonet4n and is hosted at sourceforge.net. Using its class Phonetizer one can easily transform different spellings of German words to a common representation that aims to reflect their phonetics:
var p = new Phonetizer();
var m1 = p.Phonetize("Meier"); // "MEIA"
var m2 = p.Phonetize("Mayer"); // "MEIA"
The given implementation is taking its cue from phonet4j which is on its part a port of a C implementation described in the c’t article “Doppelgänger gesucht” from 1999. Since both phonet4j and phonet4n stay close to the original implementation their structure will not completely deliver the taste of modern object oriented paradigms. Nevertheless, the library is extensible (due to an externalized rule set), reliable (proofed by unit tests) and mature (I have used its transformation rules for the last few years in a commercial system).
Yesterday, I did some final work on this project to provide a version of the .net assembly that can be downloaded as well as a ZIP that contains the sources.
I used SharpDevelop to do the code editing and testing round trip based on nunit. In order to reformat the c# code according to common style guides narrange does a great job. While nant offers a common and well documented approach toward automated builds it does not work with the given solution file (read: beyond the outdated format of MS Visual Studio 2003). Therefore, I had to use msbuild instead and apart from the inconvenience caused by the delete task (does not support wildcards) that can be overcome with CreateItem it works as a charm. Together with the MSBuild Comminity Tasks Project I am now able to rebuild, test und zip the whole project in just one step. The wiki at sourceforge.net offers the needed help to upload the created zip files using winscp on my windows box.
Now, I proudly introduce to you the green download button of version 0.1 at the project page of phonet4n.