[php] strings vergelijken op gelijkenissen .

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Alnitak
  • Registratie: September 2001
  • Laatst online: 20-12-2021
Ik ben bezig met een script om 2 name aan elkaar te matchen.
Één zit reeds in de database en één word opgegeven door de gebruiker.
Alle namen in de database zijn automatisch ingevoerd voor de gebruikers, maar ik wil graag tijdens de registratie verifiëren of het om de correcte persoon gaat.

Nu is de kans groot dat beide namen niet exact overeen komen, door invoer fouten bijvoorbeeld en om de gebruiker niet lastig te vallen met uitvinden hoe hij z’n eigen naam moet schrijven probeer ik een oplossing te vinden voor dit probleem.

Ik filter alle exotische klinkers er al uit zoals èéêë worden allemaal gewoon e, wat vergelijken al een stuk eenvoudiger maakt maar het enige probleem waar ik tegen aanloop is het verschuiven van letters. Een y of een ij verandert de string niet alleen in letters maar ook in lengte en alle posities na de y zullen 1 opschuiven.
Wat ik zelf al heb geprobeerd is het verschil tussen de elke character in ascii waarde op te slaan.

a [97] < 11 > l [108]
l [108] < 2 > n [110]
n[110] < 5 > i [105]

dit doe je voor beide strings en je vergelijkt de arrays maar dit geeft een wonderbaarlijk slecht resultaat, aangezien de letters allemaal redelijk dicht bij elkaar zitten, een ‘a’ en een ‘l’ zitten net zo ver van elkaar als ‘e’ en ‘p’ bijvoorbeeld.

Ik heb er een tijdje over nagedacht en heb een oplossing bedacht maar ik heb geen flauw idee hoe ik dit moet gaan aanpakken ( zonder de cpu op te blazen :P )
Ik wil script schrijven die van string ‘a’ in zo min mogelijk stappen string ‘b’ maakt.
letters verwijderen, veranderen etc… hoe minder stappen hoe meer het overeen komt lijkt me.
heeft iemand een idee hoe ik dit kan aanpakken?

Ik hoef geen lange scripts ideeën zouden me al verder kunnen helpen ( het mag natuurlijk wel )

Little known fact about Middle Earth: The Hobbits had a very sophisticated computer network! It was a Tolkien Ring...


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 20-09 21:46

Koetjeboe

Boe, zegt de koe

Je zou eens kunnen kijken naar deze functie:

http://php.net/manual/en/function.levenshtein.php

Houd je ook rekening met mensen die dezelfde naam hebben though? Of maakt dat in jouw geval niet uit?

Acties:
  • 0 Henk 'm!

  • donquix
  • Registratie: Augustus 2009
  • Laatst online: 17:29
Je hebt de levenshtein functie en de similar_text functie daarvoor. De levenshtein functie geeft het aantal tekens dat veranderd moet worden om de strings hetzelfde te krijgen. similar_text geeft in procenten aan hoe gelijk ze zijn.

Acties:
  • 0 Henk 'm!

  • Alnitak
  • Registratie: September 2001
  • Laatst online: 20-12-2021
Bedankt :)
Je wil niet weten wat google allemaal eruit gooit als je niet precies weet waar je op moet zoeken
Koetjeboe schreef op dinsdag 09 februari 2010 @ 11:27:
Houd je ook rekening met mensen die dezelfde naam hebben though? Of maakt dat in jouw geval niet uit?
Is geen enkel probleem mensen hebben allemaal een nummer die ze weten.
Het enige probleem is dat als je alleen op nummer checked de beveiliging wel heeeeel lek is

[ Voor 63% gewijzigd door Alnitak op 09-02-2010 11:36 ]

Little known fact about Middle Earth: The Hobbits had a very sophisticated computer network! It was a Tolkien Ring...


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Alnitak schreef op dinsdag 09 februari 2010 @ 11:31:
Bedankt :)
Je wil niet weten wat google allemaal eruit gooit als je niet precies weet waar je op moet zoeken
Gelijk / ongeveer gelijk is 'similar' in het engels, combineer dat met 'text' en 'php', en je krijgt http://google.com/search?q=php+similar+text.
Pagina: 1