Aller au contenu

Traiter un texte et en retirer seulement les mots


Belisarius

Sujets conseillés

Bonjour,

J'essaye de réaliser un petit script qui me parse un texte scientifique pour en récolter seulement les mots de plus de 3 lettres en enlevants tous les sigles mathématicophysique contenus dans ces textes . J'utilise la méthode suivante :

$RegexSearch = array ('(pour|dans|avec|sont|cette|question|sous|mode|tout|elle|action|partie|note|do
ner|solution|montrer|page)', '((\s|\n).{1,3}(\s|\n))', '((\s|\n).{1,3}(\s|\n))', '(\n)', '([0-9])','([,\.:;\*\(\)\[\]\{\}])', '([\+\-=\?])', '(\')', '([\s]{1,10})', '((\s|\n).{1,3}(\s|\n))', '((\s|\n).{1,3}(\s|\n))');

$RegexReplace = array (' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ');
$out = preg_replace($RegexSearch, $RegexReplace, $text);

Le texte provient de copier coller de PDF mais dans certains cas ça ne marche vraiment pas (erreurs PHP du genre Warning: Unexpected character in input: )

Des idées pour améliorer tout ça ?

Existe-t-il des classes PHP destinée à ce genre de traitement ?

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

$input = '...ma chaine super compliquee...';
preg_match_all('/([a-zA-Z]{2})([a-zA-Z]+)([ .,])/i',$input,$matches);
echo '<pre>'; print_r($matches); echo '</pre>';

Ca devrait te donner quelques trucs... (la regex est améliorable)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...