non

non - Python - Programmation

Marsh Posté le 22-04-2012 à 21:46:30    

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 ^^

Reply

Marsh Posté le 22-04-2012 à 21:46:30   

Reply

Marsh Posté le 23-04-2012 à 10:58:12    

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']

Reply

Marsh Posté le 23-04-2012 à 18:11:36    

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

Reply

Marsh Posté le 23-04-2012 à 18:12:53    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed