Python-Programm: Finden Sie den Anfangs- und Endindex aller Wörter in einer Zeichenfolge

WBOY
Freigeben: 2023-08-28 09:17:06
nach vorne
1288 Leute haben es durchsucht

Python-Programm: Finden Sie den Anfangs- und Endindex aller Wörter in einer Zeichenfolge

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.

Beispiel 1 – Finden Sie den Start- und Endindex aller Wörter in einer Zeichenfolge, indem Sie darüber iterieren.

Algorithmus

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.

Python-Datei enthält dies

#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))
Nach dem Login kopieren

Ergebnisse anzeigen – Beispiel 1

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)}
Nach dem Login kopieren

Abbildung 1: Im Befehlsfenster angezeigte Ergebnisse.

Beispiel 2: Verwenden Sie nltk (Natural Language Toolkit), um den Start- und Endindex aller Wörter in einer Zeichenfolge zu finden.

Algorithmus

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.

Python-Datei enthält dies

#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))
Nach dem Login kopieren

Ergebnisse anzeigen – Beispiel 2

Ö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)}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!