Finns det nått bra sätt och jämföra två strängar och få veta hur många % de stämmer överens? Lite information om strängarna? Vill jämföra filnamn från en tjänst på nätet med loka filer, är de rätt lika så betyder det med rätt stor sannolikhet att jag hittat en match.. Där bör du väl först kolla filändelsen. Om det är två från samma "familj" så får de hög matchning, är de från olika så får de låg.Jämföra två strängar och få veta hur många % de stämmer
Man skulle ju bara kunna jämföra hur många bokstäver som är lika i varje sträng, men det skulle ju ge ganska hög % även för strängar som inte stämmer så myclet överens. Finns det nån bättre algoritm?Sv: Jämföra två strängar och få veta hur många % de stämmer
Är det generella texter, eller är det något slags punktlista etc.?
I en del fall kan man göra betydliga framsteg genom att specialicera funktionen. (T.ex. köra rad för rad)Sv:Jämföra två strängar och få veta hur många % de stämmer
Sv: Jämföra två strängar och få veta hur många % de stämmer
Med tanke på hur det låter är det väl nästan så att du sen ska dela upp filnamnen utan ändelse i ord, kolla hur många ord som stämmer överens, och nästan överens. Där skulle jag använda Levenstein ovan. Varje ord får en viss poäng, sen lägger du ihop orden på något smart sätt.
Jag skulle göra så här: Ta fram alla dina filnamn utan ändelse. Dela upp dem i ord. Lägg till orden i en databas, och sen filnamnen, och sen en koppling mellan dem.
Sen tar du varje fil från tjänsten, delar upp namnet i ord. Kör med en editing distance för varje ord mot databasen för att se vilka ord det sannolikt kan vara. När du har gått igenom alla orden i filnamnet så får du en fin lista över hur mycket av vissa ord du har. Sen gör du en skalärprodukt mot varje fil i databasen. Ta en titt på "vector space model".
Om det inte var så att du ville ha en ganska enkel lösning vill säga... =)