Et bien tu te débrouilles pas mal d'après ce que je vois avec ton code.
La discussion suivante devrait t'être pas mal utile
http://www.developpez.net/forums/d73...vancer-chaine/
Bon, il semble que tu veuille faire une analyse de texte "naturel", et non pas une analyse syntaxique informatique.
Je n'aime pas trop les trucs liés au langage naturel, sauf quand c'est bien délimité, parce que c'est un champ aux frontières floues. Un langage inforamtique est quelque chose de fortement structuré et bien défini, une analyse syntaxique on voit comment la mener. Mais les questions de linguistiques, ça peut dériver à l'infini, il est susceptible de survenir des cas particuliers n'ayant pas été envisagé à n'importe quel moment. Un programme qui s'occupe d'une telle analyse est une marmite sur le feu, il faut toujours le surveiller.
C'est l'idée que j'ai de ces choses, mais je ne suis pas un spécialiste.
Sinon, à la place de
while not S[i].isalpha():
tu pourrais peut être utiliser à la place
while S[i} not in [' ','"',',','-'...]
etc et tout autre caractère que tu ne souhaites pas être considéré comme étant un caractère constituant des mots. Ce serait plus extensif à volonté. À toi de voir.
Je pense aussi que tu ferais sans doute bien de te mettre à l'étude des expressions régulières car, s'il est vrai qu'il ne faut pas en devenir un maniaque et les utiliser à tout bout de champ même quand elles sont le moins justifiées, c'est un outil très utile, et dans certains cas incontournable, à mon avis.
Partager