Avatar billede qualon1 Nybegynder
27. oktober 2006 - 22:20 Der er 8 kommentarer og
1 løsning

mente du funktion

Hej Eksperter

Jeg er virkelig kommet i et hovedbrud
Jeg ønsker at lave en søgefunktion som indeholder en "mente du..." funktion ligesom google indeholder.
Jeg har tænkt på at ligge alle søgeord i en database, hvis det søgeord giver et resultat.
Men problemet ligger i at sammenligne søgeordene med dem i databasen og finde dem der ligner, selvom der måske er en stavefejl.
Håber nogen kan hjælpe mig med det, da den er lidt svær synes jeg
Avatar billede jakoba Nybegynder
28. oktober 2006 - 00:28 #1
Den er ikke bare lidt svær, den er meget svær. Det kaldes mønstergenkendelse, og det er noget vi mennesker gør uden overhovedet at tænke, mens computere er er gevaldigt dårlige til det.

Det bedste resultat fås som regel ved at anvende flere forskellige teknikker på een gang, men selv det bedste er ikke for godt, du har utvivlsomt bemærket de besynderlige ord stavehontrollen forslår når du skrive i en tekst editor med stavekontrol.
Avatar billede qualon1 Nybegynder
28. oktober 2006 - 10:24 #2
Ja, det er nemlig det jeg også har tænkt over...
Men har du nogle ideer til hvordan manfår den til at lave mønstergenkendelse?
Avatar billede jakoba Nybegynder
28. oktober 2006 - 11:34 #3
du kan lave forskellige signaturer der gør det lidt nemmere at sannenligne ord.

alfabetisk:
et bitset med 28(29) bit, hvis ordet indeholder 'a' eller 'A' sættes bit 0, hvis ordet indeholder 'b' eller 'B' sættes bit 1, osv. du kan så måle forskellige ords 'nærhed' til hinanden ved at tælle hvormange bit i deres signatur de har fælles:
'hus' ->  00000001000000000010100000
'hund' -> 00010001000001000000100000
ved at ANDe de signatur bitsettet for hus og hund sammen får du
          00000001000000000000100000
2 bit sat så de to ord har da lidt tilfælles.

men hviket af de to ord har mest tilfælles med 'sund' ?
'sund' -> 00010000000001000010100000
(hund,sund) giver 3
(hus,sund) giver 2  (men 'hus' er jo også et bogstav kortere)

Det giver en en vis mulighed for at genkende nære ord, men den er meget grov og ofte helt i shoven
(meny,hymen) giver 4 :-(

Du kan lave en lignende signatur med bogstavpar det giver langt bedre resultater, men dit bitset skal så være 29*29 bit langt. (bit 0 er 'aa', bit 1 er 'ab', ..., bit 29 er 'ba', ...) og så lange bitset er svære at regne med i de fleste sprog.

Hvis det kun er noggle få søgeord der skal genkendes kan det muligvis være en hjælp til i det mindste at begrænse din "mente du xxx?" liste til ikke alt for mange ord.
Avatar billede qualon1 Nybegynder
28. oktober 2006 - 11:53 #4
jamen jeg tror jeg vil ligge alle søgeord i en database, men kun de søgeord hvor der var noget resultat. så det er egentlig de ord den skal søge i
Avatar billede jakoba Nybegynder
28. oktober 2006 - 11:54 #5
En nogenlunde nem tilføjelse til ovenstående er også at teste på positionen af de fælles bogstaver. ovenfor fandt vi 4 fælles bogstaver i 'meny' og 'hymen'
'm' er fælles og:
bogstav 1 af 4 i 'meny'
  i et 64-bit bitset kan vi repræsentere det med de 16 første bit sat
bogstav 3 af 5 i 'hymen'
  i et 64-bit bitset kan vi repræsentere det med de 13 midterste bit sat
igen kan vi ANDe de to bitset sammen og se om 'm' har nogenlunde samme position (bit til fælles)

Ved at gøre det for alle de fælles bogstaver finder vi så ud af at ordene 'meny' og 'hymen' slet ikke ligner hinanden. og ligervis at 'sund' og 'hund' ligner hinanden langt mere end 'sund' og 'hus'.

mvh JakobA
Avatar billede coderdk Praktikant
28. oktober 2006 - 12:07 #6
Den er godt nok tilpasset engelsk, men prøv om du kan bruge soundex til noget ;)
http://dk.php.net/soundex
Avatar billede coderdk Praktikant
28. oktober 2006 - 12:09 #7
Avatar billede qualon1 Nybegynder
28. oktober 2006 - 15:13 #8
smilar_text() kunne bruges... Jeg arbejder lidt videre med det tak for hjælpen
Avatar billede coderdk Praktikant
28. oktober 2006 - 15:17 #9
Cool :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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