Tokenisasi
Apa itu Tokenisasi?? Singkatnya, Ini membagi teks menjadi kata atau kalimat ...
Di sini kita akan membahas berbagai tokenizer yang dapat kita gunakan di NLP ………
- Ruang Putih
text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']
2. Pembagian Khusus
Sama seperti ruang putih tetapi di sini kami memberikan splitsplitter apa pun yang kami inginkan
text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']
3.NLTK _
NLTK adalah platform terkemuka untuk membangun program Python agar bekerja dengan data bahasa manusia. Ada banyak tokenizer yang bisa kita gunakan
l) word_toknizer: Ini memecahkan masalah dalam fungsi split:
ll) sent_tokenize: Ini menggunakan teks terpisah sebagai model yang dilatih sebelumnya.
lll) wordpunct_tokenize: Ini membagi semua kata dan tanda baca.
lV) TreebankWordTokenizer: Ini membagi teks sebagai tanda baca ini ?!.,;di sisi lain, ini adalah berbagai aturan umum untuk kata-kata bahasa Inggris.
V) TweetTokenizer: Ini membagi teks sebagai tanda baca ini ?!.,;jadi emoji
Vl) MWETokenizer: Di sini kita dapat menambahkan token sesuai keinginan karena tokenizer ini add_mwememungkinkan kita untuk membuatnya
4. TextBlob
TextBlob adalah pustaka Python (2 dan 3) untuk memproses data tekstual . Ini menyediakan API sederhana untuk mendalami tugas-tugas pemrosesan bahasa alami (NLP) umum seperti penandaan bagian dari ucapan, ekstraksi frasa kata benda, analisis sentimen, klasifikasi, terjemahan, dan banyak lagi.
from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself.
I have that right, haven't I? Leo Tolstoy """
blob_object= TextBlob(text) # Word tokenization of the text
text_words = blob_object.words # To see all tokens
print(text_words) # To count the number of tokens
print(len(text_words))
# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55
5. ruang
spaCy adalah pustaka sumber terbuka gratis untuk Pemrosesan Bahasa Alami dengan Python . Ini fitur NER, penandaan POS, penguraian ketergantungan, vektor kata dan banyak lagi.
6. Gensim
Gensim: Ini adalah perpustakaan sumber terbuka dengan python yang ditulis oleh Radim Rehurek yang digunakan dalam pemodelan topik tanpa pengawasan dan pemrosesan bahasa alami . Ini dirancang untuk mengekstrak topik semantik dari dokumen. Itu dapat menangani koleksi teks besar.
7. Keras
Keras adalah pustaka sumber terbuka adalah salah satu kerangka kerja pembelajaran mendalam yang paling andal. Untuk melakukan tokenisasi kita menggunakan metode: text_to_word_sequence dari kelas Keras.preprocessing.text. Hal hebat tentang Keras adalah mengonversi alfabet menjadi huruf kecil sebelum menandainya, yang bisa sangat menghemat waktu.
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. #Albert Einstein"
tokinzer = Tokenizer(num_words=20) # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)
# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']
8. Tokenisasi berbasis subkata
Tokenisasi populernya adalah tokenisasi berbasis subword yang merupakan solusi antara tokenisasi berbasis kata dan karakter. Ide utamanya adalah untuk memecahkan masalah yang dihadapi oleh tokenisasi berbasis kata (ukuran kosakata yang sangat besar, jumlah token OOV yang banyak, dan arti berbeda dari kata yang sangat mirip) dan tokenisasi berbasis karakter (urutan yang sangat panjang dan token individu yang kurang bermakna).
Algoritma tokenization berbasis subword menggunakan prinsip-prinsip berikut.
- Jangan membagi kata yang sering digunakan menjadi subkata yang lebih kecil.
- Pisahkan kata-kata langka menjadi subkata bermakna yang lebih kecil.
Tantangan
Mari kita bahas tantangan dan batasan tugas tokenisasi.
Secara umum, tugas ini digunakan untuk korpus teks yang ditulis dalam bahasa Inggris atau Prancis di mana bahasa ini memisahkan kata dengan menggunakan spasi putih, atau tanda baca untuk menentukan batas kalimat. Sayangnya, metode ini tidak dapat diterapkan untuk bahasa lain seperti Cina, Jepang, Korea, Thailand, Hindi, Urdu, Tamil, dan lainnya. Masalah ini menimbulkan kebutuhan untuk mengembangkan alat tokenisasi umum yang menggabungkan semua bahasa.
Keterbatasan lainnya adalah tokenisasi teks bahasa Arab karena bahasa Arab memiliki morfologi yang rumit sebagai bahasa. Misalnya, satu kata dalam bahasa Arab dapat berisi hingga enam tanda yang berbeda seperti kata “عقد” (eaqad).
Kesimpulan
Kami berbicara tentang tokenisasi dan banyak teknik yang dapat kami gunakan karena kami melihat ada banyak jenis penelitian yang dibuat di bidang ini dan terus berkembang dan ada banyak tantangan yang dihadapi NLP tetapi kami akan melihat masa depan masalah ini akan diselesaikan.
Anda dapat melihat kode di tautan ini

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































