Bonjour, j'espère que vous avez passé un bon week-end.
Voilà je me demandais si quelqu'un ici avait déjà eu à coder une méthode permettant de comparer deux textes en PHP mot à mot. Et ceci sans prendre compte de l'ordre des similarités. C'est assez difficile à expliquer.
Voici un exemple :
Phrase 1 : Il est beau le soleil à la page.
Phrase 2 : Ici, on dit qu'il est beau le soleil.
En gros je voudrais quelque chose qui remarque ce genre de concordance. Du moment ou minimum un couple de mots est en commun dans les 2 textes quoi...
J'ai bien une idée d'algo :
j'ai déjà essayé les fonctions de type levenshtein et similar_text. Elles compare caractère par caractère. Je voudrais comparer du mot à mot.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // On découpe les textes en mots $parsedfirstText = splitStringBySpaces($firstText); $parsedSecondText = splitStringBySpaces($secondText); // On compare mot à mot les textes foreach ($parsedfirstText as $wordOfFirstText) { foreach ($parsedSecondText as $wordOfSecondText) { // Ici ça se complique... // On peut à la limite les comparer if($wordOfFirstText == $wordOfSecondText) { // Ensuite il faudrait une boucle je pense, un while, tant qu'ils sont égaux, on continue à avancer dans les deux textes et à comparer mot à mot // Mais c'est après que je sèche... } } }
Je donne à nouveau des exemples :
Le soleil brille de mille feux ce soir. Je pense que je vais sortir en bateau de croisière pour en profiter.
Le bateau de croisière sort ce soir sous ce soleil qui brille de mille feux.
En gros, je voudrais identifier tous les groupes de mots de plus de deux mots de longueur présent dans les deux textes. Voilà je crois que bien résumé, en une phrase c'est ça l'idée, si je dis pas de bêtises xD Peu importe l'ordre d'apparition dans les texte de ces "groupes".
Merci, d'avance !
Partager