2017-09-07 1 views
0

J'ai utilisé NLTK pour tokenise une sentance, je voudrais cependant maintenant reconstruire la phrase dans une chaîne. J'ai regardé par-dessus les docs mais ne peux pas voir un wat évident pour faire ceci. Est-ce possible?NLTK reconstruire phrase à partir de jetons

tokens = [token.lower() for token in tokensCorrect] 

Répondre

1

Le nltk ne fournit pas une telle fonction. Les espaces sont jetés lors de la création de jetons, il n'y a donc aucun moyen de récupérer exactement ce que vous avez commencé; les espaces peuvent avoir inclus des lignes de fin et des espaces multiples, et il n'y a aucun moyen de les récupérer. Le mieux que vous pouvez faire est de joindre la phrase dans une chaîne qui ressemble à une phrase normale. Un " ".join(tokens) simple, va mettre un espace avant et après la ponctuation, ce qui semble étrange:

>>> print(" ".join(tokens)) 
'This is a sentence .' 

Vous avez donc besoin de se débarrasser des espaces avant que la plupart des signes de ponctuation, sauf pour quelques privilégiés comme ( et `` qui devrait avoir l'espace après les enlevés. Même alors, c'est parfois une conjecture, puisque l'apostrophe ' est parfois utilisée entre les mots, parfois avant, et parfois après. ("Nuthin' doin', y'all!") Bonne chance avec ça.

Ma recommandation est de conserver les chaînes d'origine à partir desquelles vous avez segmenté la phrase, et de revenir à celles-ci. Vous ne montrez pas d'où viennent vos phrases, il n'y a donc rien de plus à dire.