<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[2 String zeichenweise vergleichen (nach Wahrscheinlichkeit)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe Ihr könnt' mir weiterhelfen, ich stehe gerade voll auf dem Schlauch und weiß nicht mehr weiter...</p>
<p>Ich habe hier 2 Strings, es sind eigentlich Straßennamen aus einem Straßenverzeichnis. Nun haben Straßenverzeichnisse so die Angewohnheit, dass die Straßen teilweise nicht eindeutig da drin stehen und ich nach einer bestimmten Wahrscheinlichkeit filtern will.</p>
<p>Sprich:<br />
Wenn String 1 zu 95% mit String 2 übereinstimmt dann Erfolg, wenn nicht dann Fehler.</p>
<p>Also habe ich nun meine 2 Strings:</p>
<p>string 1=&quot;Musterstraße&quot;<br />
string 2=&quot;Musterstrasse&quot;</p>
<p>Hat jemand von euch eine Idee, wie man so einen Algorithmus entwickeln kann. Ich war schon soweit und habe eine Schleife geschrieben welche mir zeichenweise den String vergleicht. Diese Schleife geht auch so lange gut, bis er an die fehlerhafte Stelle kommt. Mir fehlt da irgendwie der grundsätzliche Durchbruch des ganzen:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

double string_vergleich(string string1, string string2)
{
     int i=0;  
     double wahrscheinlichkeit=0;
     double stimmt=0;
     double zeichen=0;

     if (string1.size()&lt;string2.size())
     {
         for(i=0;i&lt;string1.size();i++)
         {
              if (string1[i]==string2[i]) stimmt++;
              zeichen++;
         }
     }

     else
     {
         for(i=0;i&lt;string2.size();i++)
         {
              if (string2[i]==string1[i]) stimmt++;
              zeichen++;
         }
     }

     wahrscheinlichkeit=stimmt/zeichen*100;

     return wahrscheinlichkeit;
}

int main(int argc, char *argv[])
{
    string test1=&quot;ADOLFHOYERSTRAßE&quot;;
    string test2=&quot;ADOLFHOYERSTRAßE&quot;;
    double wahrscheinlichkeit=90;
    double ergebnis=0;

    ergebnis=string_vergleich(test1,test2);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Das Programm läuft bei 100%tiger Übereinstimmung durch, sollten die strings nicht übereinstimmen, dann hängt die Wahrscheinlichkeit von der fehlerhaften Stelle ab, je weiter vorne das passiert, umso geringer ist die Wahrschienlichkeit.</p>
<p>Kann mir da vielleicht jemand einen Tip geben, wie man 2 Strings zeichenweise vergleicht?</p>
<p>Ich danke euch...</p>
<p>cya<br />
Der Marco <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179206/2-string-zeichenweise-vergleichen-nach-wahrscheinlichkeit</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 04:59:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179206.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Apr 2007 12:40:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Thu, 19 Apr 2007 12:40:19 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe Ihr könnt' mir weiterhelfen, ich stehe gerade voll auf dem Schlauch und weiß nicht mehr weiter...</p>
<p>Ich habe hier 2 Strings, es sind eigentlich Straßennamen aus einem Straßenverzeichnis. Nun haben Straßenverzeichnisse so die Angewohnheit, dass die Straßen teilweise nicht eindeutig da drin stehen und ich nach einer bestimmten Wahrscheinlichkeit filtern will.</p>
<p>Sprich:<br />
Wenn String 1 zu 95% mit String 2 übereinstimmt dann Erfolg, wenn nicht dann Fehler.</p>
<p>Also habe ich nun meine 2 Strings:</p>
<p>string 1=&quot;Musterstraße&quot;<br />
string 2=&quot;Musterstrasse&quot;</p>
<p>Hat jemand von euch eine Idee, wie man so einen Algorithmus entwickeln kann. Ich war schon soweit und habe eine Schleife geschrieben welche mir zeichenweise den String vergleicht. Diese Schleife geht auch so lange gut, bis er an die fehlerhafte Stelle kommt. Mir fehlt da irgendwie der grundsätzliche Durchbruch des ganzen:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

double string_vergleich(string string1, string string2)
{
     int i=0;  
     double wahrscheinlichkeit=0;
     double stimmt=0;
     double zeichen=0;

     if (string1.size()&lt;string2.size())
     {
         for(i=0;i&lt;string1.size();i++)
         {
              if (string1[i]==string2[i]) stimmt++;
              zeichen++;
         }
     }

     else
     {
         for(i=0;i&lt;string2.size();i++)
         {
              if (string2[i]==string1[i]) stimmt++;
              zeichen++;
         }
     }

     wahrscheinlichkeit=stimmt/zeichen*100;

     return wahrscheinlichkeit;
}

int main(int argc, char *argv[])
{
    string test1=&quot;ADOLFHOYERSTRAßE&quot;;
    string test2=&quot;ADOLFHOYERSTRAßE&quot;;
    double wahrscheinlichkeit=90;
    double ergebnis=0;

    ergebnis=string_vergleich(test1,test2);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Das Programm läuft bei 100%tiger Übereinstimmung durch, sollten die strings nicht übereinstimmen, dann hängt die Wahrscheinlichkeit von der fehlerhaften Stelle ab, je weiter vorne das passiert, umso geringer ist die Wahrschienlichkeit.</p>
<p>Kann mir da vielleicht jemand einen Tip geben, wie man 2 Strings zeichenweise vergleicht?</p>
<p>Ich danke euch...</p>
<p>cya<br />
Der Marco <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269240</guid><dc:creator><![CDATA[Der Marco]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:40:19 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Thu, 19 Apr 2007 12:43:49 GMT]]></title><description><![CDATA[<p>Der Marco schrieb:</p>
<blockquote>
<p>[...]Kann mir da vielleicht jemand einen Tip geben, wie man 2 Strings zeichenweise vergleicht?[...]</p>
</blockquote>
<p>Benutze operator[] und dann die char-Vergleichsoperatoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269246</guid><dc:creator><![CDATA[AGS&#x27;ler]]></dc:creator><pubDate>Thu, 19 Apr 2007 12:43:49 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Thu, 19 Apr 2007 13:28:09 GMT]]></title><description><![CDATA[<p>guck dir mal Game Programming Gems 6 an ... da steht genau darüber ein wunderschöner Artikel ... kannst sogar den Grad der Ähnlichkeit, nach dem gesucht werden soll, angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269279</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 19 Apr 2007 13:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Thu, 19 Apr 2007 17:06:47 GMT]]></title><description><![CDATA[<p>ich danke euch 2 erstmal für eure Antworten, ich werde mir das alles mal anschauen...</p>
<p>cya<br />
der Marco <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269451</guid><dc:creator><![CDATA[Der Marco]]></dc:creator><pubDate>Thu, 19 Apr 2007 17:06:47 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Thu, 19 Apr 2007 17:33:26 GMT]]></title><description><![CDATA[<p>na die Geschichten wie ß=ss, ä=ae, ö=oe etc. kannste ja ohne wahrscheinlichkeit durchprüfen wenn so ein Zeichen/Kombination in der Liste/Eingabe vorkommt. Und wenn dann immer noch nix gefunden wird noch wegen möglichen Tippfehlern deine Prozentuale Gleichheit benutzen.</p>
<p>Bindestriche zum Beispiel in der Eingabe und beim Vergleichen mit der Liste gleichma durch &quot;&quot; ersetzen. Da kannste noch mit recht genauen Mitteln die Trefferquote erhöhen.</p>
<p>Str. str. Strasse, Straße vielleicht auch ganz aus dem Vergleich nehmen.</p>
<p>Dann vergleichst nur noch Haupt[str.] mit Haupt[straße] ohne dass die Schreibweise ne Rolle spielt , you know what i mean?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269460</guid><dc:creator><![CDATA[GreyHound]]></dc:creator><pubDate>Thu, 19 Apr 2007 17:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Fri, 20 Apr 2007 10:48:08 GMT]]></title><description><![CDATA[<p>Wenn du es (professionell) angehen willst, solltest du dir mal Edit-Distanzen anschauen (ich habe z.B. auf dessen Grundlage meine Diplomarbeit zum Thema Pattern-Matching in Gen-Sequenzen geschrieben).</p>
<p><a href="http://de.wikipedia.org/wiki/Levenshtein-Distanz" rel="nofollow">http://de.wikipedia.org/wiki/Levenshtein-Distanz</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269891</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 20 Apr 2007 10:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Sat, 21 Apr 2007 12:27:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>also das mit der Großschreibung und der Bereinigung des Straßennamens und aller Sonderzeichen habe ich bereits gemacht.</p>
<p>Die 2 Strings in dem Quelltext sind bereits bereinigt, da ist der ganze Schrott schon rausgeflogen.</p>
<p>Ich habe mir testweise einen Algorithmus geschrieben, welcher auf 100%tige Übereinstimmung prüft und die Fehler dann ausgibt. Unter Berücksichtung dass ich alle Straßennamen bereinigt habe konnte ich von 14700 Straßennamen 13700 Straßennamen zuordnen und finden.</p>
<p>Bleiben also noch 1000 übrig, die entweder jemand manuell durchschauen müsste oder die ich noch mit einem Algorithmus filtern könnte...</p>
<p>Aber ich denke die wird jemand manuell durchschauen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Ich danke euch für eure Hilfe...</p>
<p>cya<br />
Der Marco <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270552</guid><dc:creator><![CDATA[Der Marco]]></dc:creator><pubDate>Sat, 21 Apr 2007 12:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to 2 String zeichenweise vergleichen (nach Wahrscheinlichkeit) on Sat, 21 Apr 2007 12:29:55 GMT]]></title><description><![CDATA[<p>Wobei die Levenshtein-Distanz ist ja eigentlich genau das was ich suche. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>cya</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1270554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1270554</guid><dc:creator><![CDATA[Der Marco]]></dc:creator><pubDate>Sat, 21 Apr 2007 12:29:55 GMT</pubDate></item></channel></rss>