Avatar billede rozh Nybegynder
08. april 2003 - 13:52 Der er 7 kommentarer og
1 løsning

Fritekst søgning

Hej

Jeg har brug for en algoritme, som kan sammenligne et stykke fritekst, med en database (MySQL) og udtage alle sætninger som forkommer i teksten, og som er inde i databasen. Desuden skal den også kunne identificere stavefejl og rette disse.

EX:

Fritext:
Jeg kan ikke rigetigt find ud af atlave så dan en algoritme, som ikke kører alt for langsomt.

Databasen indeholder følgende felter:
1. Jeg kan ikke;
2. rigtigt
3. finde ud af
4. at lave
5. sådan;


programmet skal så kunne finde samtlige af disse felter i friteksten.
Læg mærke til at der er flere ord i felt i adsiklte af mellemrum. Felt 2 er stavet forkert i friteksten. Felt 3 er en kombination af 1 og 2. Felt 4 er skrevet som ét ord i friteksten, og felt 5 er skrevet som to ord i friteksten.

Det burde kunne lade sig gøre, idet man har sådan noget i diverse skriveprogrammer.

mvh.
Avatar billede arne_v Ekspert
08. april 2003 - 16:44 #1
Det er ikke nogen nem opgave.

Du skal nok starte med at lave opslag med korrekt stavning.

Altså:

foreach(ord) {
  check(4 ord frem)
  check(3 ord frem)
  check(2 ord frem)
  check(1 ord frem)
}

Det er ikke så svært at lave.

Så har du et fungerende framework du kan bygge videre på.

Så kan du udbygge:

1)  Tilføj funktionalitet så den også checker kombinationer med
    mellemrum fjernet

2)  Tilføj funktionalitet det gætter på hvor man kunne sætte mellemrum
    ind og checker dem

3)  Tilføj et felt til tabellen med "udtalen" af ordene og slå
    også udtalen friteksten op (ens udtale men forskellig stavemåde
    lig med stavefejl)
Avatar billede rozh Nybegynder
09. april 2003 - 00:01 #2
Jeg havde også selv tænkt på noget i den retning. Men det der vil tage rimelig lang tid, specielt når du har en stor database, og et stort stykke tekst du skal søge i.
Der MÅ være noget andet smart man kan bruge i MySQL.
Avatar billede arne_v Ekspert
09. april 2003 - 06:57 #3
Jeg er bange for at der ikke er nogen "genveje".

Det bør også være muligt at få det til at køre rimeligt hurtigt.
Feltet / de to felter skal naturligvis være indekseret. Og selve
databasen bliver jo ikke så stor.
Avatar billede roo104 Nybegynder
09. april 2003 - 19:08 #4
Jeg sidder her med en bog om brugervenlige søgemaskiner. Den anbefaler man
-erstatter dobbeltbogstaver med det tilsvarende enkelte bogstav.
-erstatter hv med v
-fjerner afsluttende r.

Det kan også være en go ide at fjerne tegn som + & ^ * ? " ' ( )
Avatar billede arne_v Ekspert
09. april 2003 - 19:11 #5
Ja - det er en variant af mit #3.
Avatar billede arne_v Ekspert
27. april 2003 - 16:08 #6
Lukke tid ?
Avatar billede rozh Nybegynder
27. april 2003 - 21:56 #7
Jo det er vist lukke tid.

Jeg tager pointene tilbage, fordi jeg ikke fik præcis svar på de konkrete punkter jeg spurgte om.

Men tak for hjælpen aliigevel.
Avatar billede arne_v Ekspert
27. april 2003 - 21:59 #8
Du fik det korrekte svar.
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