Model bahasa menaakul tentang teks, yang biasanya dalam bentuk rentetan, tetapi input kepada model hanya boleh menjadi nombor, jadi teks perlu ditukar kepada bentuk berangka.
Tokenisasi ialah tugas asas pemprosesan bahasa semula jadi Ia boleh membahagikan urutan teks berterusan (seperti ayat, perenggan, dll.) ke dalam urutan aksara (seperti perkataan, frasa, aksara, tanda baca, dll.) mengikut tertentu. keperluan. Antaranya Unit itu dipanggil token atau perkataan.
Mengikut proses khusus yang ditunjukkan dalam rajah di bawah, mula-mula bahagikan ayat teks kepada unit, kemudian digitalkan elemen tunggal (petakannya ke dalam vektor), kemudian masukkan vektor ini ke dalam model untuk pengekodan, dan akhirnya keluarkannya ke tugas hiliran untuk mendapatkan lagi keputusan akhir.
Mengikut butiran segmentasi teks, Tokenisasi boleh dibahagikan kepada tiga kategori: Tokenisasi berbutir perkataan, Tokenisasi berbutir aksara dan Tokenisasi berbutir subkata.
Tokenisasi kebutiran perkataan ialah kaedah pembahagian perkataan yang paling intuitif, yang bermaksud membahagikan teks mengikut perbendaharaan kata. Contohnya:
The quick brown fox jumps over the lazy dog.词粒度Tokenized结果:['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', '.']
Dalam contoh ini, teks dibahagikan kepada perkataan bebas, setiap perkataan digunakan sebagai token, dan tanda baca '.' juga dianggap sebagai token bebas.
Teks bahasa Cina biasanya dibahagikan mengikut koleksi perbendaharaan kata standard yang disertakan dalam kamus atau frasa, simpulan bahasa, kata nama khas, dsb. yang dikenali melalui algoritma segmentasi perkataan.
我喜欢吃苹果。词粒度Tokenized结果:['我', '喜欢', '吃', '苹果', '。']
Teks bahasa Cina ini terbahagi kepada lima perkataan: "Saya", "suka", "makan", "epal" dan titik ".", setiap perkataan berfungsi sebagai tanda.
Tokenisasi berbutir aksara membahagikan teks kepada unit aksara terkecil, iaitu, setiap aksara dianggap sebagai token yang berasingan. Contohnya:
Hello, world!字符粒度Tokenized结果:['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']
Tokenisasi kebutiran aksara dalam bahasa Cina adalah untuk membahagikan teks mengikut setiap aksara Cina bebas.
我喜欢吃苹果。字符粒度Tokenized结果:['我', '喜', '欢', '吃', '苹', '果', '。']
Tokenisasi berbutir subkata ialah antara kebutiran perkataan dan kebutiran aksara Ia membahagikan teks kepada subkata (subkata) antara perkataan dan aksara sebagai token. Kaedah Tokenisasi subkata biasa termasuk Pengekodan Pasangan Byte (BPE), WordPiece, dsb. Kaedah ini menjana kamus pembahagian perkataan secara automatik dengan mengira frekuensi subrentetan dalam data teks, yang boleh menangani masalah perkataan di luar perkhidmatan (OOV) dengan berkesan sambil mengekalkan integriti semantik tertentu.
helloworld
Andaikan bahawa selepas latihan dengan algoritma BPE, kamus subkata yang dijana mengandungi entri berikut:
h, e, l, o, w, r, d, hel, low, wor, orld
Kebutiran kata kunci Keputusan Tokenized:
['hel', 'low', 'orld']
HelloHello" hel", "rendah", "orld", ini semua gabungan subrentetan frekuensi tinggi yang muncul dalam kamus. Kaedah pembahagian ini bukan sahaja boleh mengendalikan perkataan yang tidak diketahui (contohnya, "helloworld" bukan perkataan Inggeris standard), tetapi juga mengekalkan maklumat semantik tertentu (gabungan sub-perkataan boleh memulihkan perkataan asal).
Dalam bahasa Cina, Tokenisasi berbutir subkata juga membahagikan teks kepada subkata antara aksara Cina dan perkataan sebagai token. Contohnya:
我喜欢吃苹果
Andaikan selepas latihan dengan algoritma BPE, kamus subkata yang dijana mengandungi entri berikut:
我, 喜, 欢, 吃, 苹, 果, 我喜欢, 吃苹果
Kebutiran kata kunci Keputusan Token:
['我', '喜欢', '吃', '苹果']
vocabulary = {'我': 0,'喜欢': 1,'吃': 2,'苹果': 3,'。': 4}
indexed_tokens = [vocabulary[token] for token in token_sequence]print(indexed_tokens)
Atas ialah kandungan terperinci Fahami Tokenisasi dalam satu artikel!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!