Rumah  >  Artikel  >  Peranti teknologi  >  Algoritma penemuan perkataan baharu berdasarkan CNN

Algoritma penemuan perkataan baharu berdasarkan CNN

WBOY
WBOYke hadapan
2023-04-11 23:01:011597semak imbas

​Pengarang |. mczhao, pengurus kanan R&D Ctrip, menumpukan pada bidang teknologi pemprosesan bahasa semula jadi.

Ikhtisar

Dengan kemunculan berterusan hotspot pengguna dan meme selebriti Internet baharu, tugas NLP pada platform e-dagang sering muncul Beberapa perkataan I belum nampak sebelum ini. Perkataan ini tiada dalam perbendaharaan kata sedia ada sistem dan dipanggil "perkataan tidak berdaftar".

Dalam satu pihak, kekurangan perkataan dalam leksikon mempengaruhi kualiti pembahagian perkataan sesetengah penyegmen perkataan berdasarkan leksikon, yang secara tidak langsung mempengaruhi kualiti ingatan teks dan gesaan sorotan, iaitu, teks pengguna Ketepatan carian dan kebolehtafsiran hasil carian.

Sebaliknya, dalam algoritma pembelajaran mendalam NLP BERT/Transformer, dsb., vektor perkataan sering digunakan dan bukannya vektor perkataan semasa memproses bahasa Cina. Secara teorinya, kesan penggunaan vektor perkataan sepatutnya lebih baik, tetapi disebabkan perkataan yang tidak didaftarkan, kesan penggunaan vektor perkataan dalam amalan adalah lebih baik. Sekiranya perbendaharaan kata lebih lengkap, kesan penggunaan vektor perkataan akan lebih baik daripada menggunakan vektor perkataan.

Ringkasnya, penemuan perkataan baharu ialah masalah yang perlu kita selesaikan pada masa ini.

1. Kaedah tradisional tanpa pengawasan

Sudah ada penyelesaian yang agak matang untuk masalah penemuan perkataan baharu Cina ini dalam industri. Input adalah beberapa korpus, dan selepas membahagikan teks ini ke NGram, segmen calon dijana. Kira beberapa ciri statistik serpihan ini, dan kemudian tentukan sama ada serpihan ini ialah perkataan berdasarkan ciri ini.

Pendekatan arus perdana dalam industri ialah mengira dan memerhati tiga petunjuk ini: populariti, perpaduan dan kekayaan watak bersebelahan kiri dan kanan. Terdapat banyak artikel yang menerangkan ketiga-tiga penunjuk ini di Internet. Berikut adalah pengenalan ringkas Untuk butiran, anda boleh merujuk kepada dua artikel penemuan perkataan Hello NLP dan Smooth NLP.

1.1 Populariti

Gunakan kekerapan perkataan untuk menyatakan populariti. Kira masa kejadian semua serpihan dalam semua korpus, dan serpihan frekuensi tinggi itu selalunya satu perkataan.

1.2 Kesepaduan

Gunakan maklumat bersama titik untuk mengukur kesepaduan:

Algoritma penemuan perkataan baharu berdasarkan CNN

Sebagai contoh, kami menentukan sama ada Han Ting ialah perkataan, log(P("Han Ting")/P("Han")P("Ting")). Kebarangkalian Hanting menjadi perkataan adalah berkadar terus dengan populariti "Hanting" dan berkadar songsang dengan populariti perkataan "Han" dan "ting". Ini mudah difahami Sebagai contoh, aksara "的" yang paling biasa dalam aksara Cina Kebarangkalian untuk memadankan mana-mana aksara Cina dengan "的" adalah sangat tinggi, tetapi ini tidak bermakna "x daripada" atau "的x". adalah perkataan yang sama di sini Populariti perkataan "的" memainkan peranan menekan.

1.3 Kekayaan watak jiran kiri dan kanan

Entropi jiran kiri dan kanan mewakili kekayaan aksara kiri dan kanan. Entropi bersebelahan kiri dan kanan ialah rawak taburan perkataan yang terdapat di kiri atau kanan serpihan kata calon. Anda boleh memisahkan entropi di sebelah kiri dan entropi di sebelah kanan, atau anda boleh menggabungkan dua entropi menjadi satu penunjuk.

Algoritma penemuan perkataan baharu berdasarkan CNN

Sebagai contoh, segmen "Shangri-La" mempunyai populariti dan perpaduan yang sangat tinggi, sepadan dengan sub-segmennya "香香gri-la" Populariti dan perpaduan "Gri" juga sangat tinggi, tetapi kerana perkataan "La" muncul selepas "Shangri" dalam kebanyakan kes, entropi bersebelahan kanannya sangat rendah, yang menghalang pembentukan perkataannya. Ia boleh dinilai bahawa "Shangri" tidak boleh menjadi perkataan yang berasingan.

2. Had kaedah klasik

Masalah kaedah klasik ialah ia memerlukan penetapan parameter ambang secara manual. Selepas pakar NLP memahami taburan kebarangkalian serpihan dalam korpus semasa, dia menggabungkan penunjuk ini melalui formula atau menggunakannya secara bebas, dan kemudian menetapkan ambang sebagai standard penghakiman Keputusan penghakiman menggunakan piawaian ini juga boleh mencapai ketepatan yang tinggi.

Walau bagaimanapun, taburan kebarangkalian atau kekerapan perkataan tidak statik Apabila korpus menjadi semakin banyak, atau populariti wajaran korpus (biasanya populariti produk yang sepadan) berubah-ubah, pakar. set Parameter dan ambang dalam formula juga perlu sentiasa dilaraskan. Ini membazirkan banyak tenaga manusia dan menjadikan jurutera kecerdasan buatan menjadi pengubahsuai semata-mata.

3. Penemuan perkataan baharu berdasarkan pembelajaran mendalam

3.1 Peta taburan kebarangkalian kekerapan perkataan

Tiga penunjuk algoritma yang disebutkan di atas dalam industri hanya mempunyai satu ciri sumber asas, iaitu kekerapan perkataan. Dalam kaedah statistik, beberapa statistik mudah dan utama biasanya dipaparkan dalam bentuk gambar, seperti histogram, plot kotak, dsb. Walaupun tiada campur tangan model, orang masih boleh membuat keputusan yang betul sepintas lalu. Anda boleh memotong semua serpihan dengan panjang terhad daripada korpus, menormalkan kekerapan perkataan serpihan kepada 0-255, dan memetakannya ke dalam matriks dua dimensi Baris mewakili aksara permulaan dan lajur mewakili aksara berakhir piksel ialah serpihan, dan piksel Kecerahan titik ialah populariti serpihan perkataan calon.

Algoritma penemuan perkataan baharu berdasarkan CNN

Gambar di atas ialah gambar rajah taburan kebarangkalian kekerapan bagi ayat pendek "Pudong Airport Ramada Hotel Kami terkejut apabila mendapatinya dengan mata kasar kami". , kira-kira Anda boleh memisahkan beberapa blok segi tiga bersudut tegak sama kaki yang lebih terang, seperti: "Pudong", "Lapangan Terbang Pudong", "Lapangan Terbang", "Hotel Ramada", dsb. Blok ini boleh menentukan bahawa serpihan yang sepadan ialah perkataan yang kita perlukan.

3.2 Algoritma pembahagian imej klasik

Dengan memerhati peta taburan kebarangkalian kekerapan perkataan, kita boleh mengubah masalah pembahagian ayat pendek kepada pembahagian imej masalah . Algoritma pembahagian imej awal adalah serupa dengan algoritma penemuan perkataan baharu yang disebutkan di atas Ia juga merupakan algoritma berasaskan ambang untuk mengesan perubahan skala kelabu tepi Dengan perkembangan teknologi, algoritma pembelajaran mendalam kini digunakan secara amnya, dan yang lebih terkenal ialah Algoritma pembahagian imej U-Net .

Algoritma penemuan perkataan baharu berdasarkan CNN

Separuh pertama U-Net menggunakan pensampelan bawah konvolusi untuk mengekstrak ciri berbilang lapisan butiran yang berbeza Upsampling, ciri-ciri ini digabungkan pada resolusi yang sama, dan akhirnya keputusan klasifikasi tahap piksel diperoleh melalui lapisan bersambung sepenuhnya + Softmax.

3.3 Algoritma penemuan perkataan baharu berdasarkan rangkaian konvolusi

Pengsegmenan peta taburan kebarangkalian kekerapan perkataan adalah serupa dengan pembahagian graf . Oleh itu, untuk membahagikan ayat pendek, anda juga boleh merujuk kepada algoritma pembahagian imej dan menggunakan rangkaian konvolusi sepenuhnya. Alasan untuk menggunakan lilitan adalah sama ada kita memotong ayat atau imej pendek, kita memberi lebih perhatian kepada maklumat tempatan, iaitu, piksel-piksel yang dekat dengan canggih. Sebab untuk menggunakan rangkaian berbilang lapisan ialah pengumpulan berbilang lapisan boleh menunjukkan pertimbangan ambang ciri lapisan yang berbeza Contohnya, apabila kita memotong rupa bumi peta, kita mesti mempertimbangkan bukan sahaja cerun (terbitan/perbezaan pertama) tetapi juga. perubahan cerun (tertib kedua).

Untuk senario penemuan perkataan baharu, kami mereka bentuk algoritma berikut:

  • Isi dahulu peta taburan kekerapan perkataan bagi pendek ayat dengan 0 hingga 24x24;
  • Pertama mempunyai dua lapisan lilitan 3x3 dan keluarkan 4 saluran; 🎜>Fungsi kehilangan menggunakan logistic=T, jadi lapisan terakhir boleh digunakan untuk pengelasan tanpa output softmax;

Algoritma penemuan perkataan baharu berdasarkan CNN

Berbanding dengan U-Net, terdapat perbezaan berikut:

1) Pensampelan bawah dan pensampelan terbengkalai,

Sebabnya ayat pendek yang biasanya digunakan untuk segmentasi adalah agak pendek, dan resolusi peta taburan kekerapan perkataan tidak tinggi, jadi model juga dipermudahkan.

2) U-Net ialah tiga kategori (blok 1, blok 2, di tepi), Algoritma ini hanya memerlukan dua kategori (sama ada piksel ialah perkataan). Jadi hasil keluaran akhir juga berbeza U-Net mengeluarkan beberapa blok berterusan dan garis pembahagi, dan kita hanya memerlukan sama ada titik tertentu adalah positif.

Gambar di bawah adalah keputusan yang diramalkan oleh model selepas melatih model tersebut. Kita dapat melihat bahawa dalam hasil output, piksel yang sepadan dengan tiga perkataan "Shanghai" (baris atas, lajur laut), "Hongqiao" dan "Daerah Perniagaan" telah dikenal pasti.

Algoritma penemuan perkataan baharu berdasarkan CNNGunakan model terlatih dan masukkan nama mercu tanda dalam pustaka mercu tanda Ctrip, anda boleh membahagikan secara automatik dan menemui beberapa perkataan Baharu , seperti yang ditunjukkan di bawah, walaupun terdapat beberapa kes buruk, ketepatan keseluruhan adalah baik.

Algoritma penemuan perkataan baharu berdasarkan CNNSelepas mengimport perkataan ini ke dalam leksikon, ketepatan pembahagian perkataan carian meningkat dan kadar liputan leksikon perkataan keputusan segmentasi meningkat. Oleh kerana pembahagian perkataan carian secara amnya cenderung untuk mengingat semula secara berlebihan dan menghapuskan ingatan yang tidak dijawab, industri mempunyai pendekatan yang lebih radikal untuk mengingat semula melalui pembahagian perkataan, dan ketepatan biasanya diselesaikan melalui pengisihan berikutnya. Oleh itu, ketepatan pembahagian perkataan telah bertambah baik, tetapi pada pandangan pengguna, ketepatan hasil carian tidak bertambah baik dengan ketara. Walau bagaimanapun, ia boleh menyelesaikan beberapa masalah penyerlahan yang salah yang disebabkan oleh ralat pembahagian perkataan.

4. Analisis Dalaman Model

Jika anda ingin meneroka cara model berfungsi, anda boleh melihat kernel lilitan lapisan tengah. Kami mula-mula memudahkan bilangan kernel lilitan dalam lapisan lilitan model daripada 4 kepada 1. Selepas latihan, lihat lapisan tengah melalui API TensorFlow: model.get_layer('Conv2').__dict__. Kami mendapati bahawa kernel lilitan lapisan Conv2 adalah seperti berikut:

Algoritma penemuan perkataan baharu berdasarkan CNN

Anda boleh melihat baris pertama dan kedua model Kesannya adalah sebaliknya Garis sebelumnya yang sepadan dengan piksel tolak perbezaan (dengan berat) garisan semasa Jika perbezaan skala kelabu lebih besar, rentetan yang diwakili oleh piksel ini lebih berkemungkinan menjadi perkataan.

Anda juga boleh melihat bahawa nilai mutlak 0.04505884 dalam baris pertama dan lajur kedua adalah agak kecil. Ini mungkin kerana parameter hadapan baris pertama tolak baris kedua dan lajur ketiga tolak kedua Parameter negatif lajur membatalkan satu sama lain.

5 Ruang Pengoptimuman

Artikel ini menerangkan model rangkaian konvolusi sepenuhnya dengan struktur yang sangat mudah, dan masih terdapat banyak ruang. untuk penambahbaikan.

Mula-mula, kembangkan julat pemilihan ciri. Sebagai contoh, ciri input dalam artikel ini hanya mempunyai kekerapan perkataan Jika entropi bersebelahan kiri dan kanan turut disertakan dalam ciri input, kesan pembahagian akan menjadi lebih tepat.

Yang kedua ialah meningkatkan kedalaman rangkaian. Melalui analisis model, didapati bahawa lapisan pertama lilitan adalah terutamanya untuk menangani kes yang disebabkan oleh piksel yang diisi dengan 0. Terdapat hanya satu lapisan lilitan yang benar-benar memfokuskan kepada haba sebenar Jika ia adalah 3x3 kernel lilitan, ia hanya boleh dilihat Untuk hasil perbezaan tertib pertama, baris dan lajur kedua sebelum dan selepas piksel semasa tidak diambil kira. Anda boleh mengembangkan saiz kernel lilitan dengan sewajarnya atau mendalamkan rangkaian untuk menjadikan medan pandangan model lebih besar. Tetapi memperdalam rangkaian juga akan membawa masalah overfitting.

Akhir sekali, model ini bukan sahaja boleh digunakan untuk menambah perbendaharaan kata untuk menambah baik kesan segmentasi perkataan, tetapi juga boleh digunakan secara langsung sebagai rujukan untuk segmentasi kata dalam ingatan kata calon dan pemarkahan laluan segmentasi perkataan dalam proses segmentasi perkataan Keputusan ramalan model ini boleh digunakan dalam kedua-dua langkah.

Atas ialah kandungan terperinci Algoritma penemuan perkataan baharu berdasarkan CNN. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam