Python: Trouver une liste de mots dans un texte et retourne son index
J'ai à traiter un document en texte brut, la recherche d'une liste de mots et de retourner une fenêtre de texte autour de chaque mot trouvé. Je suis en utilisant NLTK.
J'ai trouvé des posts sur un Débordement de Pile où ils utilisent des expressions régulières pour la recherche de mots, mais sans l'obtention de leur index, il vous suffit de les imprimer. Je ne pense pas que l'utilisation de RÉ est à droite, la cause je dois trouver des mots spécifiques.
- Vous devriez utiliser des expressions régulières..
- > je ne pense pas que l'utilisation de RÉ est à droite, la cause je dois trouver des mots spécifiques. Vous n'avez pas à trouver des mots à l'aide d'expressions régulières.... et, habituellement, vous pouvez trouver tout ce que vous cherchez en utilisant des expressions régulières lors de l'analyse de texte. Vous devez simplement s'en tenir à l'aide d'expressions régulières. Et aussi, s'il vous plaît poster un exemple de code que vous essayez de faire, ou le genre de chose que vous voulez être en mesure de trouver dans le texte que vous soyez à la recherche. Et qu'avez-vous essayé?
- Quelle est la question?
- docs.python.org/2/library/re.html#re.MatchObject.start
- Désolé ce n'était pas clair, c'est mon premier message. J'ai trouvé un mot avec str.trouver, puis de la fenêtre facilement. Mais j'ai beaucoup de mots, qui peut être répété. Donc, une fois que je trouve la première occurrence d'un mot, comment je peux trouver le deuxième, sans modifier le texte?
- Ainsi vous pouvez capturer en tant que groupe et de définir une variable pour qu', puis recherchez
Vous devez vous connecter pour publier un commentaire.
C'est ce que vous cherchez:
Contenu du fichier:
--Edit--
Ok, si vous avez des mêmes mots dans de multiples indices essayez d'utiliser un générateur,
Si je comprends bien, la construction d'un index de position est ce que vous voulez
Maintenant, vous avez un indice pour chaque mot, ses positions. Juste l'interroger en terme..
essayer cela, où
log
est le txt etword_search
est le terme que vous essayez d'index danslog
Je sais que sa fait un moment depuis que vous avez posé la question, mais puisque vous êtes déjà à l'aide de nltk je vous suggérons d'utiliser son outil de word_tokenize:
Le résultat serait:
0 Lorem
1 ipsum
2 dolor
3 sit
4 amet
5 ,
6 consectetur
7 adipiscing
8 elit
9 .
Espère que cela aide 🙂