Tokenisasi

Jan 10 2023
Apa itu Tokenisasi?? Singkatnya, Ini membagi teks menjadi kata-kata atau kalimat… Di sini kita akan mengambil tentang berbagai tokenizer yang dapat kita gunakan di NLP ……… 2. Pembagian Spesifik Sama seperti spasi putih tetapi di sini kita memberikan splitter apa pun yang kita inginkan 3.

Apa itu Tokenisasi?? Singkatnya, Ini membagi teks menjadi kata atau kalimat ...

Tokenisasi

Di sini kita akan membahas berbagai tokenizer yang dapat kita gunakan di NLP ………

  1. 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:

word_toknizer: lihat tanda Kuning di atas

ll) sent_tokenize: Ini menggunakan teks terpisah sebagai model yang dilatih sebelumnya.

sent_tokenize: ini adalah kutipan saya yang membaginya menjadi kutipan dan nama saya

lll) wordpunct_tokenize: Ini membagi semua kata dan tanda baca.

wordpunct_tokenize: itu memberi kita token memiliki 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.

TreebankWordTokenizer: lihat tanda kuning di atas Anda akan tahu itu adalah nama saya sehingga terlihat sebagai token

V) TweetTokenizer: Ini membagi teks sebagai tanda baca ini ?!.,;jadi emoji

Tweet Tokenizer

Vl) MWETokenizer: Di sini kita dapat menambahkan token sesuai keinginan karena tokenizer ini add_mwememungkinkan kita untuk membuatnya

MWETokenizer: kami menambahkan token seperti yang kami lihat di hasil Anda akan melihat token itu

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.

Itu memberi kita token dan indeksnya semua kata dan tanda baca dan emoji

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.

di sini menghapus semua tanda baca dan emoji

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.

  1. Jangan membagi kata yang sering digunakan menjadi subkata yang lebih kecil.
  2. 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).

karakter yang sama tetapi memiliki arti yang berbeda

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