


Bagaimana untuk menggunakan pokok kamus untuk pemadanan teks dalam Python?
1. Apakah pokok kamus?
Pokok kamus (Trie), juga dipanggil pokok awalan (Prefix Tree), ialah struktur data berbentuk pokok. Pokok kamus boleh melakukan operasi carian, sisipan dan pemadaman yang cekap pada rentetan. Idea teras ialah menggunakan awalan biasa rentetan untuk mengurangkan kerumitan masa pertanyaan.
Dalam pepohon kamus, setiap nod mewakili awalan rentetan. Laluan dari nod akar ke nod daun mewakili rentetan lengkap. Setiap nod pada laluan mempunyai bendera yang menunjukkan sama ada rentetan yang diwakili oleh nod itu wujud dalam pepohon kamus.
2. Pelaksanaan pepohon kamus
Dalam Python, anda boleh menggunakan kamus (dikt) untuk melaksanakan pepohon kamus. Dalam pepohon kamus, setiap nod ialah kamus yang digunakan untuk menyimpan aksara seterusnya dan nod yang sepadan dengannya. Apabila anda perlu melintasi pepohon kamus, anda hanya perlu mencari nod yang sepadan berdasarkan aksara semasa, dan kemudian masukkan nod yang sepadan dengan aksara seterusnya, dan seterusnya sehingga rentetan tamat atau tidak dapat dipadankan.
Berikut ialah pelaksanaan pokok kamus yang mudah:
class TrieNode: def __init__(self): self.children = {} self.is_word = False class Trie: def __init__(self): self.root = TrieNode() def insert(self, word): curr = self.root for ch in word: if ch not in curr.children: curr.children[ch] = TrieNode() curr = curr.children[ch] curr.is_word = True def search(self, word): curr = self.root for ch in word: if ch not in curr.children: return False curr = curr.children[ch] return curr.is_word def starts_with(self, prefix): curr = self.root for ch in prefix: if ch not in curr.children: return False curr = curr.children[ch] return True
3 Aplikasi pepohon kamus
Pokok kamus boleh digunakan untuk pemadanan teks, seperti semakan ejaan perkataan, perkataan. padanan, dsb. Berikut ialah contoh mudah menggunakan pokok kamus untuk melaksanakan semakan ejaan perkataan:
import re word_list = ['hello', 'world', 'python', 'teacher', 'student'] def sanitize_word(word): return re.sub(r'[^a-z]', '', word.lower()) def spell_check(word): trie = Trie() for w in word_list: trie.insert(sanitize_word(w)) if trie.search(sanitize_word(word)): print('Correct spelling!') else: print('Did you mean one of the following words?') similar_words = get_similar_words(trie, sanitize_word(word)) for w in similar_words: print(w) def get_similar_words(trie, word, distance=1): similar_words = [] for i in range(len(word)): for ch in range(ord('a'), ord('z')+1): new_word = word[:i] + chr(ch) + word[i+1:] if trie.search(new_word): similar_words.append(new_word) return similar_words spell_check('helo')
Dalam kod di atas, kita boleh menyemak sama ada perkataan wujud dalam senarai perkataan melalui pepohon kamus. Jika perkataan itu wujud, keluarkan "Ejaan yang betul!" jika tidak, keluarkan perkataan yang serupa.
4. Ringkasan
Pokok kamus ialah struktur data yang sangat praktikal yang boleh digunakan untuk pemadanan teks yang cekap. Anda boleh menggunakan kamus untuk melaksanakan pepohon kamus dalam Python, yang sangat mudah dan mudah difahami. Dalam aplikasi praktikal, ia boleh diselaraskan dan dikembangkan mengikut keperluan sebenar untuk mencapai hasil yang lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan pokok kamus untuk pemadanan teks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Buat tatasusunan pelbagai dimensi dengan numpy dapat dicapai melalui langkah-langkah berikut: 1) Gunakan fungsi numpy.array () untuk membuat array, seperti Np.Array ([[1,2,3], [4,5,6]]) untuk membuat array 2D; 2) Gunakan np.zeros (), np.ones (), np.random.random () dan fungsi lain untuk membuat array yang diisi dengan nilai tertentu; 3) Memahami sifat bentuk dan saiz array untuk memastikan bahawa panjang sub-array adalah konsisten dan mengelakkan kesilapan; 4) Gunakan fungsi np.reshape () untuk mengubah bentuk array; 5) Perhatikan penggunaan memori untuk memastikan bahawa kod itu jelas dan cekap.

Broadcastinginginnumpyisamethodtoperformoperationsonarraysofdifferentshapesbyautomaticallyaligningthem.itsImplifiescode, enhancesreadability, andboostsperformance.here'showitworks: 1) smallerarraysarepaddedwithonestomatchdimensions.2) CompatibeSt

Forpythondatastorage, chooselistsforflexabilityWithMixedDatatypes, array.arrayformemory-efficienthomogeneousnumericaldata, andnumpyarraysforadvancednumericalcomputing.listsareversatileButlessefficefientfientfientfientfientfientfientfientfientfientfientfientforydodeSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShiSforayDataSetSetShoFficeSforaydataSetShoSforayDataSetsforayDataSetsforayDataSetsforaydataSetShiSforayDodeSforayDodeSforaydataSetRaydataSetRaydataSetRaydataSet

Pythonlistsarebetterthanarraysformanagingdiversedatatypes.1) listscanholdelementsofdifferenttypes, 2) thearedynamic, membolehkanEaseasyAdditionsandremoVals, 3) theofferintuitiitiveoperationslikeslicing, tetapi4).

ToAccessElementsInapyThonArray, useIndexing: my_array [2] AccessestHeTheRdeLement, returning3.pythonuseszero-berasaskanIndexing.1) USE sitiveandnegativeindexing: my_list [0] forthefirstelement, my_list [-1] forthelast.2) menggunakanSlicingForarangange: my_list [1: 5] ekstrakSelemen

Artikel membincangkan kemustahilan pemahaman tuple di Python kerana kekaburan sintaks. Alternatif seperti menggunakan tuple () dengan ekspresi penjana dicadangkan untuk mencipta tupel dengan cekap. (159 aksara)

Artikel ini menerangkan modul dan pakej dalam Python, perbezaan, dan penggunaannya. Modul adalah fail tunggal, manakala pakej adalah direktori dengan fail __init__.py, menganjurkan modul yang berkaitan secara hierarki.

Artikel membincangkan docstrings dalam python, penggunaan, dan faedah mereka. Isu Utama: Kepentingan Docstrings untuk Dokumentasi Kod dan Kebolehcapaian.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular
