Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python: Cari indeks permulaan dan penghujung semua perkataan dalam rentetan

Program Python: Cari indeks permulaan dan penghujung semua perkataan dalam rentetan

WBOY
WBOYke hadapan
2023-08-28 09:17:061315semak imbas

Program Python: Cari indeks permulaan dan penghujung semua perkataan dalam rentetan

Kadangkala, kita memerlukan indeks permulaan sesuatu perkataan dan indeks terakhir perkataan itu. Ayat terdiri daripada perkataan yang dipisahkan oleh ruang. Dalam artikel Python ini, dua cara berbeza untuk mencari indeks permulaan dan akhir semua perkataan dalam ayat atau rentetan yang diberikan diberikan menggunakan dua contoh berbeza. Dalam contoh pertama, ikuti proses hanya mengulangi semua aksara rentetan sambil mencari ruang yang menandakan permulaan perkataan. Dalam Contoh 2, Kit Alat Bahasa Asli digunakan untuk mencari indeks permulaan dan akhir semua perkataan dalam rentetan.

Contoh 1 - Cari indeks permulaan dan penghujung semua perkataan dalam rentetan dengan mengulanginya.

Algoritma

Langkah 1 - Mula-mula dapatkan rentetan dan namakannya sebagai Str yang diberikan.

Langkah 2 - Buat fungsi yang dipanggil StartandEndIndex yang akan mengambil Str yang diberikan ini dan lelaran di atasnya, semak ruang dan kembalikan Str dengan indeks permulaan dan akhir semua perkataan Senarai tupel .

Langkah 3 - Buat senarai perkataan menggunakan kaedah split.

Langkah 4 - Gunakan nilai dari dua senarai di atas dan cipta kamus.

Langkah 5 - Jalankan program dan semak hasilnya.

Fail Python mengandungi kandungan ini

#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))

Lihat hasil - Contoh 1

Untuk melihat hasilnya, jalankan fail Python dalam tetingkap 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)}

Rajah 1: Memaparkan keputusan dalam tetingkap arahan.

Contoh 2: Gunakan nltk (Natural Language Toolkit) untuk mencari indeks mula dan akhir semua perkataan dalam rentetan.

Algoritma

Langkah 1 - Mula-mula pasang nltk menggunakan arahan pip. Sekarang import align_tokens daripadanya.

Langkah 2 - Ambil Str yang diberikan sebagai rentetan ujian dan bahagikannya kepada perkataan menggunakan fungsi split dan panggil senarai perkataan.

Langkah 3 - Sekarang gunakan align_tokens dan listofwords sebagai token bersama Str yang diberikan.

Langkah 4 - Ia akan mengembalikan senarai indeks perkataan tetapi dengan ruang. Tolak satu daripada nilai indeks perkataan terakhir untuk mendapatkan senarai indeks perkataan tanpa ruang.

Langkah 5 - Gunakan nilai dari dua senarai di atas dan buat kamus.

Langkah 6 - Jalankan program dan semak hasilnya.

Fail Python mengandungi kandungan ini

#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))

Lihat hasil - Contoh 2

Buka tetingkap cmd dan jalankan fail python untuk melihat hasilnya.

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)}

Rajah 2: Memaparkan perkataan dan indeksnya.

Dalam artikel Python ini, menggunakan dua contoh berbeza, kaedah mencari indeks permulaan dan indeks penamat semua perkataan dalam rentetan diberikan. Dalam Contoh 1, ini dicapai dengan mengulangi semua aksara rentetan. Di sini, ruang dipilih untuk menandakan permulaan perkataan baharu. Dalam Contoh 2, perpustakaan nltk atau Natural Language Toolkit digunakan. Pertama, ia dipasang menggunakan pip. Kemudian import modul yang diperlukan bernama align_tokens. Menggunakan modul ini dan menentukan tag dalam senarai perkataan, indeks semua perkataan boleh didapati.

Atas ialah kandungan terperinci Program Python: Cari indeks permulaan dan penghujung semua perkataan dalam rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam