Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1805 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  non

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

non

n°2138284
ihsene09
Posté le 22-04-2012 à 21:46:30  profilanswer
 

bonsoir tout le monde je cherche une fonction pour filtrer les mots inutiles (vides) j'ai un corpus après avoir fait la segmentation en phrase et en mot maintenant je dois enlever les mots inutiles par exemple : le la mais ....etc  mais je ne sais pas comme faire merci d'avance ^^

mood
Publicité
Posté le 22-04-2012 à 21:46:30  profilanswer
 

n°2138412
eyquem
Posté le 23-04-2012 à 10:58:12  profilanswer
 

Il faut spécifier dans une structure les mots que tu considères comme inutiles et les enlever du corpus de mots que tu as obtenus. Un programme ne peut pas savoir ce que tu veux si tu ne le lui dit pas.
 
Je ne sais pas comment tu as obtenu les mots à partir d'un texte. Dans mon code suivant, j'utilise re.split
Je fais de exclure un tuple, car un tuple est un objet qui prend moins de place en mémoire qu'une liste.
 

Code :
  1. import re
  2. ss = "Lancé officiellement au début du mois d'avril, le chipset Z77 "\
  3.      "représente une évolution originale pour Intel, ne serait-ce que "\
  4.      "dans la stratégie. D'abord il y a la question du socket et de "\
  5.      "la compatibilité avec les processeurs, toujours importante."
  6. inutiles = 'le la les une d de du dans des à au ce ne avec pour que et mais y'
  7. exclure = inutiles.split()
  8. exclure.extend(x.capitalize() for x in exclure[:])
  9. exclure.append('')
  10. exclure = tuple(exclure)
  11. mots = [ mot for mot in re.split('[- .,\'"]+',ss) if mot not in exclure ]
  12. print ss
  13. print
  14. print exclure
  15. print
  16. print mots


 
Résultat
 

Code :
  1. Lancé officiellement au début du mois d'avril, le chipset Z77 représente une évolution originale pour Intel, ne serait-ce que dans la stratégie. D'abord il y a la question du socket et de la compatibilité avec les processeurs, toujours importante.
  2. ('le', 'la', 'les', 'une', 'd', 'de', 'du', 'dans', 'des', '\xe0', 'au', 'ce', 'ne', 'avec', 'pour', 'que', 'et', 'mais', 'y', 'Le', 'La', 'Les', 'Une', 'D', 'De', 'Du', 'Dans', 'Des', '\xc0', 'Au', 'Ce', 'Ne', 'Avec', 'Pour', 'Que', 'Et', 'Mais', 'Y', '')
  3. ['Lanc\xe9', 'officiellement', 'd\xe9but', 'mois', 'avril', 'chipset', 'Z77', 'repr\xe9sente', '\xe9volution', 'originale', 'Intel', 'serait', 'strat\xe9gie', 'abord', 'il', 'a', 'question', 'socket', 'compatibilit\xe9', 'processeurs', 'toujours', 'importante']

n°2138542
ihsene09
Posté le 23-04-2012 à 18:11:36  profilanswer
 

merci beaucoup ^^ je peux vous demander autre chose j'ai besoin de classé ces mots en fonctions des phrases essayer de trouver la matrice d'occurrence terme-phrase (elle représente les mots en fonction des phrases) et cela en calculant le nombre d'occurrence d'un terme dans une phrase.
 les mettre dans une matrice booléenne et je ne sais pas comment faire

n°2138543
ihsene09
Posté le 23-04-2012 à 18:12:53  profilanswer
 

pour la segmentation des mots vous utilisez la fonction split  
code : q= ss.split(' ')


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  non

 

Sujets relatifs
Plus de sujets relatifs à : non


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR