Manchmal benötigen wir den Anfangsindex eines Wortes und den letzten Index dieses Wortes. Sätze bestehen aus durch Leerzeichen getrennten Wörtern. In diesem Python-Artikel werden anhand von zwei verschiedenen Beispielen zwei verschiedene Möglichkeiten zum Ermitteln der Anfangs- und Endindizes aller Wörter in einem Satz oder einer bestimmten Zeichenfolge beschrieben. Folgen Sie im ersten Beispiel dem Prozess, einfach alle Zeichen der Zeichenfolge zu durchlaufen und dabei nach Leerzeichen zu suchen, die den Anfang eines Wortes markieren. In Beispiel 2 wird das Natural Language Toolkit verwendet, um die Start- und Endindizes aller Wörter in einer Zeichenfolge zu finden.
Schritt 1 - Besorgen Sie sich zunächst eine Zeichenfolge und benennen Sie sie wie angegeben Str.
Schritt 2 – Erstellen Sie eine Funktion namens StartandEndIndex, die diesen gegebenen Str übernimmt und darüber iteriert, auf Leerzeichen prüft und eine Liste von Tupeln mit den Start- und Endindizes aller Wörter zurückgibt.
Schritt 3 – Erstellen Sie eine Wortliste mit der Split-Methode.
Schritt 4 – Nehmen Sie die Werte aus den beiden obigen Listen und erstellen Sie ein Wörterbuch.
Schritt 5 – Führen Sie das Programm aus und überprüfen Sie die Ergebnisse.
#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))
Um die Ergebnisse anzuzeigen, führen Sie die Python-Datei in einem cmd-Fenster aus.
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)}
Abbildung 1: Im Befehlsfenster angezeigte Ergebnisse.
Schritt 1 – Installieren Sie zunächst nltk mit dem Befehl pip. Importieren Sie nun align_tokens daraus.
Schritt 2 – Nehmen Sie den angegebenen Str als Testzeichenfolge, teilen Sie ihn mithilfe der Split-Funktion in Wörter auf und nennen Sie ihn „listofwords“.
Schritt 3 – Verwenden Sie nun align_tokens und listofwords als Token zusammen mit dem angegebenen Str.
Schritt 4 – Es wird die Wortindexliste zurückgegeben, jedoch mit Leerzeichen. Subtrahieren Sie eins vom letzten Wortindexwert, um eine Wortindexliste ohne Leerzeichen zu erhalten.
Schritt 5 – Nehmen Sie die Werte aus den beiden obigen Listen und erstellen Sie ein Wörterbuch.
Schritt 6 – Führen Sie das Programm aus und überprüfen Sie die Ergebnisse.
#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))
Öffnen Sie das cmd-Fenster und führen Sie die Python-Datei aus, um die Ergebnisse anzuzeigen.
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)}
Abbildung 2: Wörter und ihre Indizes anzeigen.
In diesem Python-Artikel wird anhand von zwei verschiedenen Beispielen eine Methode zum Ermitteln des Start- und Endindex aller Wörter in einer Zeichenfolge beschrieben. In Beispiel 1 wird dies durch die Iteration über alle Zeichen der Zeichenfolge erreicht. Hier werden Leerzeichen gewählt, um den Anfang neuer Wörter zu markieren. In Beispiel 2 wird die NLTK-Bibliothek oder das Natural Language Toolkit verwendet. Zuerst wird es mit pip installiert. Importieren Sie dann das erforderliche Modul mit dem Namen align_tokens. Mit diesem Modul und der Angabe der Tags in der Wortliste kann der Index aller Wörter ermittelt werden.
Das obige ist der detaillierte Inhalt vonPython-Programm: Finden Sie den Anfangs- und Endindex aller Wörter in einer Zeichenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!