Avatar billede dalbjerg Nybegynder
21. juli 2004 - 11:49 Der er 3 kommentarer og
1 løsning

Søg efter ligende ord

Hej

Jeg skal have lavet en sql streng, som finder et ord der ligner. Jeg bruger ASP op i mod en mySQL, og sad og tænke på om der var noget i mySQL, som kunne finde ligende ord.

Jeg har en lang ordliste. i en database som ligger således

ID    Navn
1    Hans
2    Peter
3    Vindue
4    Frugt
osv

Så var det at hvis der stod "frukt", så ligner det ord jo rimligt meget Frugt. Faktisk omkring de 80%. Så skulle det ord komme frem.

Kan man lave noget ala det? i mySQL. (Hvis man kan i en anden database så skriv det også lige, men det er ikke spørgsmålet).
Avatar billede yellow Nybegynder
21. juli 2004 - 12:10 #1
Du kan sammenligne på "ord-lyden", men det er ikke helt det, du spørger efter.

SELECT Navn FROM <tabel> WHERE Navn SOUNDS LIKE 'Frukt'
Den konstruktion er kun MySQL 4.1 eller nyere.
Hvis du har en ældre version, kan du opnå samme resultat med funktionen SOUNDEX()
Avatar billede majkat Nybegynder
21. juli 2004 - 14:28 #2
Mere præcist: SOUNDS LIKE er implementeres som SOUNDEX(streng1) = SOUNDEX(streng2), så du kan opnå nøjagtigt det samme -- SOUNDS LIKE er bare syntaktisk sukker.

SOUNDEX(streng1) = SOUNDEX(streng2) kan bruges i alle MySQL versioner.

Hvis du har adgang til selv at comile m.v., kunne du også overveje at tilføje Levenshtein-algoritmen til dine MySQL UDF'er -- men så begynder tingene at blive en anelse kompliceret :-) se f.eks. http://empyrean.lib.ndsu.nodak.edu/~nem/mysql/udf/

Levenshtein-algoritmen er bedst til at fange deciderede slå-fejl (hvor man f.eks. skriver "s" isf "a") og ikke så meget stavefejl baseret på manglende viden om hvordan ordet staves (som i dit eksempel, hvor man bruger "k" isf "g") -- her kommer du nok længst med SOUNDEX.
Avatar billede majkat Nybegynder
15. oktober 2004 - 13:36 #3
Kan vi lukke?
Avatar billede dalbjerg Nybegynder
15. oktober 2004 - 13:52 #4
Jeg har endnu ikke haft mulighed for at afprøve jeres kommentar endnu. Derfor er spørgsmålet ikke blevet lukket. Stavekontrolen er blevet udsat.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester