perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 25
Click for quality!




11.02.2012 / 08:31

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragÄhnlichkeit zwischen 2 Strings
Seitenanfang
Hallo,

wie kann ich es erreichen, dass die Ähnlichkeiten von 2 Strings am besten in Prozent ausgegeben wird?

Beispiel:
String 1: Hallo Rene
String 2: Rene

...Sollte dann eine Ähnlichkeit von etwa 50% ergeben.

Hat jemand vielleicht einen Tipp?

Gruß Rene

Datum: 02.04.2005-13:24

Beitragre: Ähnlichkeit zwischen 2 Strings
Seitenanfang
Hallo,
nun, die Verrechnungsart ist natuerlich trickreich und je nach Def immer falsch ... bla bla ... Oberlehrer ... vermute Perl ...

Vorschlag:
(a)

split /[ \t\r\n]/, ( lc $str );

von jedem der beiden $str

(b) Jedes Fizzelchen aus beiden split in ein %hash eintragen als

 %myhash = ( fizz1 => 0, fiz2 =>0 
....

(c)das Auftreten der Fizzelchen nochmal abzaehlen und als

%myhash = ( fizz1 => 3, fiz2 => 2 
....
eintragen

(d) nun wirds haaaarig, denn die Bewertung ist nun mal Geschmackssache. >>fizz1 => 3<< ist in Deinem Fall wohl falsch, da Du max
>>fizz1 => 2<< moechtest.
Vielleicht noch alle >>fiz=>0,fiz=>1<< auf 0Null trimmen und dann den Mittelwert bilden.

Ahhh ... es gibt auch noch 2byte Unicode, gemischt mit normal-8-bit. Die kreigst Du garnicht verglichen, besonders nicht auf Win98 ... naja .. viel Gemurkse und steiniger Weg. Habs selbst noch nicht geschafft!

Trotzdem viel Glueck.

Datum: 02.04.2005-21:05

Beitragre: Ähnlichkeit zwischen 2 Strings
Seitenanfang
String::Similarity könnte dir helfen, es ist allerdings kein core-modul.


use String::Similarity;
print similarity('Hallo Rene', 'Rene');
^D
0.571428571428571

Datum: 03.04.2005-14:51

-






-
-