Bonjour,
Voici une petite fonction pour supprimer les stop words (petits mots comme le, la, les etc.) d'une chaine de caractère:
/**
* @param string $content original text, with stop words
* @param string $stopwords path to stop words file
**/
function clearString($content, $stopwords)
{
$clearData = '';
$stopwordsContent = file($stopwords);
$total = count($stopwordsContent);
for ($i = 0; $i < $total; $i++) {
$stopwordsContent[$i] = trim(strtolower($stopwordsContent[$i]));
}
//make array of search terms
$wordsList = preg_split("/[\s,\'\.\"\t\n\f\r]+/", $content);
foreach ($wordsList as $line) {
if (strlen($line) > 1) {
if (in_array(strtolower(trim($line)), $stopwordsContent)) {
$removeKey = array_search($line, $stopwordsContent);
unset($wordsList[$removeKey]);
} else {
$clearData .= ' '.$line;
}
}
}
return $clearData;
}
Et voici une liste de stop words
alors
au
aucuns
aussi
autre
avant
avec
avoir
bon
car
ce
cela
ces
ceux
chaque
ci
comme
comment
dans
des
du
dedans
dehors
depuis
deux
devrait
doit
donc
dos
droite
début
elle
elles
en
encore
essai
est
et
eu
fait
faites
fois
font
force
haut
hors
ici
il
ils
je juste
la
le
les
leur
là
ma
maintenant
mais
mes
mine
moins
mon
mot
même
ni
nommés
notre
nous
nouveaux
ou
où
par
parce
parole
pas
personnes
peut
peu
pièce
plupart
pour
pourquoi
quand
que
quel
quelle
quelles
quels
qui
sa
sans
ses
seulement
si
sien
son
sont
sous
soyez
sujet
sur
ta
tandis
tellement
tels
tes
ton
tous
tout
trop
très
tu
valeur
voie
voient
vont
votre
vous
vu
ça
étaient
état
étions
été
être
un
une
etre
de
je
à
ne
plus
es
se
Vous pouvez faire évoluer votre fichier de stop words selon vos besoins, et conserver d'un texte que les mots clés importants.
En espérant que cela vous sera utile.
Ajouter un commentaire