frequence mot occurence php

Calculer la fréquence des mots d'un texte

Une fonction qui permet de calculer le nombre d’occurrence des mots dans un texte

calcul occurence d un mot, frequence mots dans un texte

Date de publication : 2011-07-27 16:05:17

Voici un bout de code php qui permet d'obtenir un tableau indexé par mot dont les valeurs correspondent aux nombres d’occurrences du mot.

Pour obtenir un résultat intéressant j'utilise la fonction de normalisation de texte clean.

Calcul de la fréquence des mots


<?php
function getWordsCount($txt)
{
$txt = clean($txt);
$words = array();
if(preg_match_all('~\p{L}+~',$txt,$matches) > 0)
{
foreach ($matches[0] as $w)
{
$words[$w] = isset($words[$w]) === false ? 1 : $words[$w] + 1;
}
}
return $words;
}
?>

Pour vous montrer le résultat de cette fonction je vais utiliser un Lorem ipsum :


Lorem ipsum dolor sit amet. Maecenas imperdiet imperdiet facilisis. Lorem ipsum bibendum eu tempus eget. Donec lorem risus, fermentum in suscipit sed.

Et maintenant le vecteur contenant tous les mots de mon texte et la fréquence d'apparition de ces derniers :


array(18) {
["lorem"]=>
int(3)
["ipsum"]=>
int(2)
["dolor"]=>
int(1)
["sit"]=>
int(1)
["amet"]=>
int(1)
["maecenas"]=>
int(1)
["imperdiet"]=>
int(2)
["facilisis"]=>
int(1)
["bibendum"]=>
int(1)
["eu"]=>
int(1)
["tempus"]=>
int(1)
["eget"]=>
int(1)
["donec"]=>
int(1)
["risus"]=>
int(1)
["fermentum"]=>
int(1)
["in"]=>
int(1)
["suscipit"]=>
int(1)
["sed"]=>
int(1)
}

C'est bien beau tout ça mais à quoi ça sert ? A calculer la similarité entre deux textes par exemple ;)
Image : Hilary Bacon

 
 

b1n@sp1n