Maison  >  Article  >  développement back-end  >  Programme Python : recherchez l'index de début et de fin de tous les mots d'une chaîne

Programme Python : recherchez l'index de début et de fin de tous les mots d'une chaîne

WBOY
WBOYavant
2023-08-28 09:17:061315parcourir

Programme Python : recherchez lindex de début et de fin de tous les mots dune chaîne

Parfois, nous avons besoin de l'index de départ d'un mot et du dernier index de ce mot. Les phrases sont constituées de mots séparés par des espaces. Dans cet article Python, deux manières différentes de trouver les indices de début et de fin de tous les mots d'une phrase ou d'une chaîne donnée sont présentées à l'aide de deux exemples différents. Dans le premier exemple, suivez le processus consistant simplement à parcourir tous les caractères de la chaîne tout en recherchant les espaces qui marquent le début d'un mot. Dans l'exemple 2, le Natural Language Toolkit est utilisé pour rechercher les indices de début et de fin de tous les mots d'une chaîne.

Exemple 1 - Recherchez l'index de début et de fin de tous les mots d'une chaîne en itérant dessus.

Algorithme

Étape 1 - Obtenez d’abord une chaîne et nommez-la comme étant donné Str.

Étape 2 - Créez une fonction appelée StartandEndIndex qui prendra cette Str donnée et la parcourira, vérifiera les espaces et renverra une liste de tuples avec les indices de début et de fin de tous les mots.

Étape 3 - Créez une liste de mots en utilisant la méthode split.

Étape 4 - Prenez les valeurs des deux listes ci-dessus et créez un dictionnaire.

Étape 5 - Exécutez le programme et vérifiez les résultats.

Le fichier Python contient ceci

#function for given word indices
def StartandEndIndex(givenStr):
   indexList = []
   startNum = 0
   lengthOfSentence=len(givenStr)
   #iterate though the given string
   for indexitem in range(0,lengthOfSentence):
      #check if there is a separate word
      if givenStr[indexitem] == " ":
         indexList.append((startNum, indexitem - 1))
         indexitem += 1
         startNum = indexitem
             
   if startNum != len(givenStr):
      indexList.append((startNum, len(givenStr) - 1))
   return indexList
 

givenStr = 'Keep your face always toward the sunshine and shadows will fall behind you'
#call the function StartandEndIndex(givenStr) 
#and get the list having starting and ending indices of all words
indexListt = StartandEndIndex(givenStr)

# make a list of words separately
listofwords= givenStr.split()
print("\nThe given String or Sentence is ")
print(givenStr)
print("\nThe list of words is ")
print(listofwords)

#make a dictionary using words and their indices
resDict = {listofwords[indx]: indexListt[indx] for indx in range(len(listofwords))}
print("\nWords and their indices : " + str(resDict))

Afficher les résultats - Exemple 1

Pour voir les résultats, exécutez le fichier Python dans une fenêtre cmd.

The given String or Sentence is
Keep your face always toward the sunshine and shadows will fall behind you

The list of words is
['Keep', 'your', 'face', 'always', 'toward', 'the', 'sunshine', 'and', 'shadows', 'will', 'fall', 'behind', 'you']

Words and their indices : {'Keep': (0, 3), 'your': (5, 8), 'face': (10, 13), 'always': (15, 20), 'toward': (22, 27), 'the': (29, 31), 'sunshine': (33, 40), 'and': (42, 44), 'shadows': (46, 52), 'will': (54, 57), 'fall': (59, 62), 'behind': (64, 69), 'you': (71, 73)}

Figure 1 : Résultats affichés dans la fenêtre de commande.

Exemple 2 : utilisez nltk (Natural Language Toolkit) pour trouver l'index de début et de fin de tous les mots d'une chaîne.

Algorithme

Étape 1 - Installez d'abord nltk à l'aide de la commande pip. Importez maintenant align_tokens à partir de celui-ci.

Étape 2 - Prenez la Str donnée comme chaîne de test et divisez-la en mots à l'aide de la fonction split et appelez-la liste de mots.

Étape 3 - Utilisez maintenant align_tokens et listofwords comme jetons avec le Str donné.

Étape 4 - Il renverra la liste d'index de mots mais avec des espaces. Soustrayez-en un de la dernière valeur d'index de mot pour obtenir une liste d'index de mots sans espaces.

Étape 5 - Prenez les valeurs des deux listes ci-dessus et créez un dictionnaire.

Étape 6 - Exécutez le programme et vérifiez les résultats.

Le fichier Python contient ceci

#Use pip install nltk to install this library

#import align tokens
from nltk.tokenize.util import align_tokens

#specify a string for testing
givenStr = 'Keep your face always toward the sunshine and shadows will fall behind you'

#make a list of words
listofwords= givenStr.split()

print("\nThe given String or Sentence is ")
print(givenStr)
print("\nThe list of words is ")
print(listofwords)

#this will include blank spaces with words while giving indices
indices_includingspace= align_tokens(listofwords, givenStr)
indices_withoutspace=[]

#reduce the last index number of the word indices
for item in indices_includingspace:
   #convert tuple to list
   lst = list(item)
   lst[1]=lst[1] - 1
   #convert list to tuple again
   tup = tuple(lst)
   indices_withoutspace.append(tup)
print(indices_withoutspace)

#make the dictionary of all words in a string with their indices
resDict = {listofwords[indx]: indices_withoutspace[indx] for indx in range(len(listofwords))}
print("\nWords and their indices : " + str(resDict))

Afficher les résultats - Exemple 2

Ouvrez la fenêtre cmd et exécutez le fichier python pour voir les résultats.

The given String or Sentence is
Keep your face always toward the sunshine and shadows will fall behind you

The list of words is
['Keep', 'your', 'face', 'always', 'toward', 'the', 'sunshine', 'and', 'shadows', 'will', 'fall', 'behind', 'you']
[(0, 3), (5, 8), (10, 13), (15, 20), (22, 27), (29, 31), (33, 40), (42, 44), (46, 52), (54, 57), (59, 62), (64, 69), (71, 73)]

Words and their indices : {'Keep': (0, 3), 'your': (5, 8), 'face': (10, 13), 'always': (15, 20), 'toward': (22, 27), 'the': (29, 31), 'sunshine': (33, 40), 'and': (42, 44), 'shadows': (46, 52), 'will': (54, 57), 'fall': (59, 62), 'behind': (64, 69), 'you': (71, 73)}

Figure 2 : Affichage des mots et de leurs index.

Dans cet article Python, une méthode pour trouver l'index de début et de fin de tous les mots d'une chaîne est donnée à l'aide de deux exemples différents. Dans l'exemple 1, cela est accompli en itérant sur tous les caractères de la chaîne. Ici, des espaces sont choisis pour marquer le début de nouveaux mots. Dans l'exemple 2, la bibliothèque nltk ou Natural Language Toolkit est utilisée. Tout d’abord, il est installé à l’aide de pip. Importez ensuite le module requis nommé align_tokens. En utilisant ce module et en spécifiant les balises dans la liste de mots, l'index de tous les mots peut être trouvé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer