Tokenisasi dalam Pemrosesan Bahasa Alami
Diterbitkan: 2020-12-01Saat berhadapan dengan data tekstual, langkah paling dasar adalah melakukan tokenize teks. 'Token' dapat dianggap sebagai kata, kalimat, atau unit minimum apa pun. Oleh karena itu, memecah kalimat menjadi unit yang terpisah tidak lain adalah Tokenisasi.
Pada akhir tutorial ini, Anda akan memiliki pengetahuan tentang hal-hal berikut:
- Apa itu Tokenisasi?
- Berbagai jenis Tokenisasi
- Berbagai cara untuk Tokenize
Tokenisasi adalah langkah paling mendasar dalam pipa NLP.
Tapi kenapa begitu?
Kata-kata atau token ini kemudian diubah menjadi nilai numerik sehingga komputer dapat memahami dan memahaminya. Token ini dibersihkan, diproses sebelumnya dan kemudian diubah menjadi nilai numerik dengan metode "Vektorisasi". Vektor-vektor ini kemudian dapat diumpankan ke algoritme Pembelajaran Mesin dan jaringan saraf.
Tokenisasi tidak hanya level kata, tetapi juga level kalimat. Artinya, teks dapat berupa tokenized dengan kata-kata sebagai token atau kalimat sebagai token. Mari kita bahas beberapa cara untuk melakukan tokenization.

Daftar isi
Pemisahan Python()
Fungsi split() dari Python mengembalikan daftar token yang dipisahkan oleh karakter yang disebutkan. Secara default, ini membagi kata-kata dengan spasi.
Tokenisasi Kata
Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = Mystr.split() |
#Keluaran: >> [ 'Ini' , 'adalah' , 'a' , 'tokenisasi' , 'tutorial.' , 'Kami' , 'adalah' , 'belajar' , 'berbeda' , 'tokenisasi' , 'metode,' , 'dan' , 'cara?' , 'Tokenization' , 'is' , 'essential' , 'in' , 'NLP' , 'tasks.' ] |
Tokenisasi Kalimat
Teks yang sama dapat dipecah menjadi kalimat dengan melewatkan pemisah sebagai ".".
Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = Mystr.split( “.” ) |
#Keluaran: >> [ 'Ini adalah tutorial tokenisasi' , ' Kami mempelajari berbagai metode tokenisasi, dan caranya? Tokenisasi sangat penting dalam tugas NLP' , ” ] |
Meskipun ini tampak mudah dan sederhana, ia memiliki banyak kekurangan. Dan jika Anda perhatikan, itu terbelah setelah "." terakhir. demikian juga. Dan itu tidak mempertimbangkan "?" sebagai indikator kalimat berikutnya karena hanya membutuhkan satu karakter, yaitu “.”.
Data teks dalam skenario kehidupan nyata sangat kotor dan tidak dimasukkan dengan baik ke dalam kata-kata dan kalimat. Banyak teks sampah mungkin ada yang akan mempersulit Anda untuk melakukan tokenize dengan cara ini. Oleh karena itu, mari beralih ke cara tokenisasi yang lebih baik dan lebih optimal.
Harus Dibaca: Top 10 Teknik Deep Learning yang Harus Anda Ketahui
Ekspresi Reguler
Regular Expression (RegEx) adalah urutan karakter yang digunakan untuk mencocokkan dengan pola karakter. Kami menggunakan RegEx untuk menemukan pola, kata, atau karakter tertentu untuk menggantikannya atau melakukan operasi lain pada pola, kata, atau karakter tersebut. Python memiliki modul re yang digunakan untuk bekerja dengan RegEx. Mari kita lihat bagaimana kita dapat menandai teks menggunakan re .
Tokenisasi Kata
Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = re.findall( “[\w']+” , Mystr) |
#Keluaran: >> [ 'Ini' , 'adalah' , 'a' , 'tokenisasi' , 'tutorial' , 'Kami' , 'adalah' , 'belajar' , 'berbeda' , 'tokenisasi' , 'metode' , 'dan' , 'cara' , 'Tokenisasi' , 'adalah' , 'penting' , 'dalam' , 'NLP' , 'tugas' ] |
Jadi, apa yang terjadi di sini?
Fungsi re.findall() cocok dengan semua urutan yang cocok dengannya dan menyimpannya dalam daftar. Ungkapan “[\w]+” berarti bahwa setiap karakter – baik itu huruf atau angka atau Garis Bawah (“_”). Simbol "+" berarti semua kemunculan pola. Jadi pada dasarnya itu akan memindai semua karakter dan memasukkannya ke dalam daftar sebagai satu token ketika menyentuh spasi putih atau karakter khusus lainnya selain dari garis bawah.
Harap perhatikan bahwa kata "NLP's" adalah satu kata tetapi ekspresi regex kami memecahnya menjadi "NLP" dan "s" karena apostrof.
Tokenisasi Kalimat
Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = re.compile( '[.!?] ' ).split(Mystr) |
#Keluaran: >> [ 'Ini adalah tutorial tokenisasi' , 'Kami mempelajari berbagai metode dan cara tokenisasi' , 'Tokenisasi sangat penting dalam tugas NLP.' ] |
Sekarang, di sini kita menggabungkan beberapa karakter pemisah menjadi satu kondisi dan memanggil fungsi re.split. Oleh karena itu, ketika mengenai salah satu dari 3 karakter ini, ia akan memperlakukannya sebagai kalimat terpisah. Ini adalah keuntungan dari RegEx dibandingkan fungsi split python di mana Anda tidak dapat melewatkan banyak karakter untuk dipisah.
Baca Juga : Aplikasi Natural Language Processing
Tokenizer NLTK
Natural Language Toolkit (NLTK) adalah pustaka Python khusus untuk menangani tugas-tugas NLP. NLTK terdiri dari fungsi dan modul built-in yang dibuat untuk beberapa proses spesifik dari pipa NLP lengkap. Mari kita lihat bagaimana NLTK menangani tokenization.
Tokenisasi Kata
NLTK memiliki modul terpisah, NLTK.tokenize, untuk menangani tugas tokenisasi. Untuk tokenisasi kata, salah satu metodenya adalah word_tokenize.
dari nltk.tokenize impor word_tokenize Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” word_tokenize(Mystr) |
#Keluaran: >>[ 'Ini' , 'adalah' , 'a' , 'tokenisasi' , 'tutorial' , '.' , 'Kami' , 'adalah' , 'belajar' , 'berbeda' , 'tokenisasi' , 'metode' , ',' , 'dan' , 'cara' , '?' , 'Tokenization' , 'is' , 'essential' , 'in' , 'NLP' , 'tasks' , '.' ] |
Harap perhatikan bahwa word_tokenize menganggap tanda baca sebagai token terpisah. Untuk mencegah hal ini terjadi, kita perlu menghapus semua tanda baca dan karakter khusus sebelum langkah ini sendiri.

Tokenisasi Kalimat
dari nltk.tokenize impor sent_tokenize Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” dikirim_tokenize(Mystr) |
#Keluaran: >> [ 'Ini adalah tutorial tokenisasi.' , 'Kami mempelajari berbagai metode dan cara tokenisasi?' , 'Tokenisasi sangat penting dalam tugas NLP.' ] |
Tokenizer SpaCy
SpaCy mungkin adalah salah satu perpustakaan paling canggih untuk tugas-tugas NLP. Ini terdiri dari dukungan untuk hampir 50 bahasa. Oleh karena itu langkah pertama adalah mengunduh inti untuk bahasa Inggris. Selanjutnya, kita perlu mengimpor modul bahasa Inggris yang memuat vektor tokenizer, tagger, parser, NER dan kata.
Tokenisasi Kata
dari spacy.lang.en impor bahasa Inggris nlp = bahasa Inggris() Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” my_doc = nlp(Mystr) Token = [] untuk token di my_doc: Token.append(token.teks) Token |
#Keluaran: >> [ 'Ini' , 'adalah' , 'a' , 'tokenisasi' , 'tutorial' , '.' , 'Kami' , 'adalah' , 'belajar' , 'berbeda' , 'tokenisasi' , 'metode' , ',' , 'dan' , 'cara' , '?' , 'Tokenization' , 'is' , 'essential' , 'in' , 'NLP' , “'s” , 'tasks' , '.' ] |
Di sini, ketika kita memanggil fungsi nlp dengan melewati MyStr, itu membuat kata token untuknya. Kemudian kami mengindeksnya dan menyimpannya dalam daftar terpisah.
Tokenisasi Kalimat
dari spacy.lang.en impor bahasa Inggris nlp = bahasa Inggris() sent_tokenizer = nlp.create_pipe( 'sentencizer' ) nlp.add_pipe(sent_tokenizer) Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” my_doc = nlp(Mystr) Terkirim = [] untuk dikirim di doc.sents: Terkirim.tambahkan(terkirim.teks) Kirim |
#Keluaran: >> [ 'Ini adalah tutorial tokenisasi.' , 'Kami mempelajari berbagai metode dan cara tokenisasi?' , “Tokenisasi sangat penting dalam tugas NLP.” ] |
Untuk tokenisasi kalimat, panggil metode creat_pipe untuk membuat komponen sentencizer yang membuat token kalimat. Kami kemudian menambahkan pipa ke objek nlp. Saat kita meneruskan string teks ke objek nlp, kali ini ia membuat token kalimat. Sekarang mereka dapat ditambahkan ke daftar dengan cara yang sama seperti pada contoh sebelumnya.
Tokenisasi Keras
Keras adalah salah satu framework deep learning yang paling disukai saat ini. Keras juga menawarkan kelas khusus untuk tugas pemrosesan teks – keras.preprocessing.text. Kelas ini memiliki fungsi text_to_word_sequence yang membuat token level kata dari teks. Mari kita lihat sekilas.
dari keras.preprocessing.text import text_to_word_sequence Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = text_to_word_sequence(Mystr) Token |
#Keluaran: >> [ 'this' , 'is' , 'a' , 'tokenization' , 'tutorial' , 'we' , 'are' , 'learning' , 'different' , 'tokenization' , 'methods' , 'and' , 'cara' , 'tokenisasi' , 'adalah' , 'penting' , 'dalam' , “nlp's” , 'tugas' ] |
Harap perhatikan bahwa itu memperlakukan kata "NLP" sebagai token tunggal. Plus, tokenizer keras ini menurunkan semua token yang merupakan bonus tambahan.
Tokenizer Gensim
Gensim adalah perpustakaan populer lainnya untuk menangani tugas berbasis NLP dan pemodelan topik. Kelas gensim.utils menawarkan metode tokenize, yang dapat digunakan untuk tugas tokenisasi kami.

Tokenisasi Kata
dari gensim.utils impor tokenize Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” daftar(tokenize(Mystr)) |
#Keluaran: >> [ 'Ini' , 'adalah' , 'a' , 'tokenisasi' , 'tutorial' , 'Kami' , 'adalah' , 'belajar' , 'berbeda' , 'tokenisasi' , 'metode' , 'dan' , 'cara' , 'Tokenisasi' , 'adalah' , 'penting' , 'dalam' , 'NLP' , 's' , 'tugas' ] |
Tokenisasi Kalimat
Untuk tokenization kalimat, kami menggunakan metode split_sentences dari kelas gensim.summarization.textcleaner .
dari gensim.summarization.textcleaner impor split_sentences Mystr = “Ini adalah tutorial tokenisasi. Kami sedang mempelajari berbagai metode tokenisasi, dan cara? Tokenisasi sangat penting dalam tugas NLP.” Token = split_sentences( Mystr ) Token |
#Keluaran: >> [ 'Ini adalah tutorial tokenisasi.' , 'Kami mempelajari berbagai metode dan cara tokenisasi?' , “Tokenisasi sangat penting dalam tugas NLP.” ] |
Sebelum kamu pergi
Dalam tutorial ini kami membahas berbagai cara untuk menandai data teks Anda berdasarkan aplikasi. Ini adalah langkah penting dari pipeline NLP, tetapi data perlu dibersihkan sebelum melanjutkan ke tokenisasi.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang pembelajaran mesin & AI, lihat PG Diploma IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, Status Alumni IIIT-B, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.