Avatar billede daniel_d Nybegynder
21. marts 2007 - 01:50 Der er 2 kommentarer

Fjerne (for mange) af samme ord fra streng

Hej

Jeg vil spørge om hjælp til denne problemstilling.
I en streng på f.eks. 500 ord ønsker jeg at et bestemt ord ikke udgør mere end max 5% af det samlede antal ord.

Hvis mit ord overskrider denne grænse skal ordet fjernes fra teksten indtil grænsen på 5% nåes.

Jeg er usikker på om dette er et regex eller php spørgsmål, men nu prøver jeg om der er et klogt hoved der læser med her :)
Avatar billede daniel_d Nybegynder
21. marts 2007 - 02:29 #1
densiteten af ordet i teksten kan udregnes ved:
round((count(explode("$ord", $tekst)) / count(explode(" ", $tekst)) * 100) ,2)
Avatar billede nielle Nybegynder
11. november 2007 - 18:14 #2
Jeg ved ikke om det stadig er relevant for dig, men here re et muligt bud:

function densitet($tekst, $ord) {
    return round((count(split("\b$ord\b", $tekst)) / count(explode(" ", $tekst)) * 100), 2);
}

function trimOrd($tekst, $ord) {
    while (densitet($tekst, $ord) > 5) {
        $tekst = preg_replace("\b$ord\b", "", $text, 1);
    }

    return $tekst;
}
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
Kurser inden for grundlæggende programmering

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