Rumah > Artikel > pembangunan bahagian belakang > 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.
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.
#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))
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.
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.
#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))
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!