Buku "Analisis Data Teks Terapan dengan Python"

gambar Teknologi analisis teks berubah dengan cepat di bawah pengaruh pembelajaran mesin. Jaringan saraf dari penelitian ilmiah teoritis telah masuk ke kehidupan nyata, dan analisis teks secara aktif diintegrasikan ke dalam solusi perangkat lunak. Neural networks mampu menyelesaikan tugas-tugas paling kompleks dari pemrosesan bahasa alami, tidak ada yang terkejut dengan terjemahan mesin, “percakapan” dengan robot di toko online, mengulangi, menjawab pertanyaan dan memelihara dialog. Lalu, mengapa Siri, Alexa, dan Alice tidak ingin memahami kami, Google tidak menemukan apa yang kami cari, dan penerjemah mesin menghibur kami dengan contoh-contoh "kesulitan terjemahan" dari Bahasa Mandarin ke Bahasa Albania? Jawabannya terletak pada detail - dalam algoritma yang bekerja dengan benar dalam teori, tetapi sulit untuk diimplementasikan dalam praktik. Pelajari cara menggunakan teknik pembelajaran mesin untuk menganalisis teks dalam tugas kehidupan nyata menggunakan kemampuan dan perpustakaan Python. Dari pencarian model dan pemrosesan data, Anda akan beralih ke metode pengelompokan dan pengelompokan teks, kemudian melanjutkan ke interpretasi visual, analisis grafik, dan setelah membiasakan diri dengan teknik penskalaan, pelajari cara menggunakan pembelajaran mendalam untuk menganalisis teks.


Apa yang dijelaskan dalam buku ini?


Buku ini berbicara tentang menggunakan metode pembelajaran mesin untuk menganalisis teks menggunakan pustaka Python yang baru saja tercantum. Sifat terapan dari buku ini menunjukkan bahwa kita tidak berfokus pada linguistik akademik atau model statistik, tetapi pada penyebaran efektif model-model yang terlatih dalam teks dalam aplikasi.

Model analisis teks kami secara langsung terkait dengan proses pembelajaran mesin - pencarian model yang terdiri dari atribut, algoritma, dan hyperparameter yang akan memberikan hasil terbaik pada data pelatihan untuk mengevaluasi data yang tidak diketahui. Proses ini dimulai dengan pembuatan kumpulan data pelatihan, yang dalam bidang analisis teks disebut corpus. Kemudian kami memeriksa metode untuk mengekstraksi atribut dan preprocessing untuk mewakili teks dalam bentuk data numerik yang dapat dimengerti oleh metode pembelajaran mesin. Selanjutnya, setelah berkenalan dengan beberapa dasar-dasar, kita akan beralih ke mempelajari metode klasifikasi dan pengelompokan teks, kisah yang melengkapi bab-bab pertama buku ini.

Dalam bab-bab berikutnya, fokusnya adalah memperluas model dengan set atribut yang lebih kaya dan membuat aplikasi analisis teks. Pertama, kita akan melihat bagaimana kita dapat menyajikan dan menerapkan konteks dalam bentuk tanda-tanda, kemudian kita akan beralih ke interpretasi visual untuk mengontrol proses pemilihan model. Kemudian kita akan melihat bagaimana menganalisis hubungan kompleks yang diekstraksi dari teks menggunakan teknik analisis grafik. Setelah itu, kami mengalihkan perhatian kami ke agen interaktif dan memperdalam pemahaman kami tentang analisis sintaksis dan semantik teks. Sebagai kesimpulan, buku ini akan menyajikan diskusi praktis tentang teknik penskalaan untuk analisis teks dalam sistem multiprosesor menggunakan Spark, dan akhirnya, kami akan mempertimbangkan tahap berikutnya dari analisis teks: pembelajaran mendalam.

Untuk siapa buku ini?


Buku ini ditulis untuk programmer Python yang tertarik menggunakan pemrosesan bahasa alami dan teknik pembelajaran mesin dalam produk perangkat lunak mereka. Kami tidak berasumsi bahwa pembaca kami memiliki pengetahuan akademis atau matematika khusus, dan sebaliknya fokus pada alat dan teknik, daripada penjelasan panjang lebar. Pertama-tama, buku ini membahas analisis teks dalam bahasa Inggris, sehingga pembaca akan membutuhkan setidaknya pengetahuan dasar tentang entitas tata bahasa seperti kata benda, kata kerja, kata kerja dan kata sifat, dan bagaimana mereka terkait. Pembaca yang tidak memiliki pengalaman dalam pembelajaran mesin dan linguistik, tetapi dengan keterampilan pemrograman dengan Python, tidak akan merasa kehilangan dalam mempelajari konsep-konsep yang akan kami perkenalkan.

Kutipan. Ekstrak grafik dari teks


Mengekstrak grafik dari teks adalah tugas yang sulit. Solusinya biasanya tergantung pada area subjek, dan, secara umum, pencarian elemen terstruktur dalam data tidak terstruktur atau semi-terstruktur ditentukan oleh pertanyaan analitis yang peka konteks.

Kami mengusulkan untuk memecah tugas ini menjadi langkah-langkah kecil dengan mengatur proses analisis grafik sederhana, seperti yang ditunjukkan pada Gambar. 9.3.

gambar

Dalam proses ini, pertama-tama kita menentukan entitas dan hubungan di antara mereka, berdasarkan pada deskripsi tugas. Selanjutnya, berdasarkan skema ini, kami menentukan metodologi untuk memilih grafik dari corpus menggunakan metadata, dokumen dalam corpus, dan frasa atau token dalam dokumen untuk mengekstrak data dan hubungan di antara mereka. Teknik memilih grafik adalah proses siklik yang dapat diterapkan ke tubuh, menghasilkan grafik dan menyimpan grafik ini ke disk atau memori untuk diproses analitis lebih lanjut.

Pada tahap analisis, perhitungan dilakukan pada grafik yang diekstraksi, misalnya pengelompokan, analisis struktural, penyaringan atau evaluasi, dan grafik baru dibuat, yang digunakan dalam aplikasi. Berdasarkan hasil tahap analisis, kita dapat kembali ke awal siklus, memperjelas metodologi dan skema, mengekstrak atau meruntuhkan kelompok node atau tepi untuk mencoba mencapai hasil yang lebih akurat.

Membuat grafik sosial


Pertimbangkan tubuh artikel berita kita dan tugas memodelkan hubungan antara entitas yang berbeda dalam teks. Jika kami mempertimbangkan masalah perbedaan liputan antara berbagai kantor berita, Anda dapat membuat grafik dari elemen-elemen yang mewakili nama publikasi, nama penulis, dan sumber informasi. Dan jika tujuannya adalah untuk menggabungkan referensi ke satu entitas dalam banyak artikel, selain detail demografis, jaringan kami dapat memperbaiki bentuk banding (hormat dan lainnya). Entitas yang menarik bagi kita dapat dalam struktur dokumen itu sendiri atau terkandung langsung dalam teks.

Katakanlah tujuan kita adalah mencari tahu orang, tempat, dan hal lain yang terkait satu sama lain dalam dokumen kita. Dengan kata lain, kita perlu membangun jejaring sosial dengan melakukan serangkaian transformasi, seperti yang ditunjukkan pada Gambar. 9.4. Kami memulai konstruksi grafik menggunakan kelas EntityExtractor yang dibuat di Bab 7. Kemudian kami menambahkan transformer, salah satunya mencari pasangan entitas terkait, dan yang kedua mengubah pasangan ini menjadi grafik.

gambar

Cari pasangan entitas

Langkah selanjutnya adalah membuat kelas EntityPairs, yang menerima dokumen dalam bentuk daftar entitas (dibuat oleh kelas EntityExtractor dari Bab 7). Kelas ini harus bertindak sebagai konverter dalam pipa Pipeline dari Scikit-Learn, dan oleh karena itu mewarisi kelas BaseEstimator dan TransformerMixin, seperti yang dijelaskan pada Bab 4. Diasumsikan bahwa entitas dalam dokumen yang sama saling terkait tanpa syarat, jadi kami menambahkan metode pasangan menggunakan fungsi itertools .permutasi untuk membuat semua pasangan entitas dalam satu dokumen. Metode transformasi kami akan memanggil pasangan untuk setiap dokumen dalam tubuh:

import itertools from sklearn.base import BaseEstimator, TransformerMixin class EntityPairs(BaseEstimator, TransformerMixin): def __init__(self): super(EntityPairs, self).__init__() def pairs(self, document): return list(itertools.permutations(set(document), 2)) def fit(self, documents, labels = None): return self def transform(self, documents): return [self.pairs(document) for document in documents] 

Sekarang Anda dapat mengekstrak entitas secara berurutan dari dokumen dan berpasangan. Tetapi kita belum dapat membedakan pasangan entitas yang sering terjadi dari pasangan yang hanya terjadi sekali. Kita harus entah bagaimana menyandikan bobot hubungan antara entitas dalam setiap pasangan, yang akan kita bahas di bagian selanjutnya.

Grafik Properti


Model matematika dari grafik hanya mendefinisikan set node dan edge dan dapat direpresentasikan sebagai matriks adjacency, yang dapat digunakan dalam berbagai perhitungan. Tapi itu tidak mendukung mekanisme untuk memodelkan kekuatan atau jenis hubungan. Apakah dua entitas hanya muncul dalam satu dokumen atau banyak? Apakah mereka bertemu bersama dalam artikel dari genre tertentu? Untuk mendukung alasan seperti itu, kita perlu beberapa cara untuk menyimpan properti yang bermakna di node dan tepi grafik.

Model grafik properti memungkinkan Anda untuk menanamkan lebih banyak informasi dalam grafik, sehingga memperluas kemampuan kami. Dalam grafik properti, node adalah objek dengan tepi masuk dan keluar dan, sebagai aturan, berisi bidang tipe, menyerupai tabel dalam database relasional. Iga adalah objek yang menentukan titik awal dan akhir; objek-objek ini biasanya berisi bidang label yang mengidentifikasi jenis koneksi, dan bidang berat yang menentukan kekuatan koneksi. Menggunakan grafik untuk analisis teks, kita sering menggunakan kata benda sebagai node, dan kata kerja sebagai edge. Setelah beralih ke langkah pemodelan, ini akan memungkinkan kami untuk menggambarkan jenis node, label tautan, dan struktur grafik yang diusulkan.

Tentang Penulis


Benjamin Bengfort adalah spesialis ilmu data yang berbasis di Washington, DC, yang sepenuhnya mengabaikan politik (hal yang umum untuk District of Columbia) dan lebih suka teknologi. Dia saat ini sedang mengerjakan disertasi doktoralnya di University of Maryland, di mana dia mempelajari pembelajaran mesin dan komputasi terdistribusi. Ada robot di laboratoriumnya (meskipun ini bukan area favoritnya), dan banyak yang kecewa, asistennya terus-menerus melengkapi robot ini dengan pisau dan peralatan, mungkin dengan tujuan memenangkan kompetisi kuliner. Menonton robot yang mencoba memotong tomat, Benjamin lebih memilih untuk menjadi tuan rumah dapur sendiri, di mana ia memasak hidangan Prancis dan Hawaii, serta barbekyu dan barbekyu dalam segala jenis. Seorang programmer pendidikan profesional, peneliti data panggilan, Benjamin sering menulis artikel yang mencakup berbagai topik, dari pemrosesan bahasa alami hingga analisis data dengan Python dan penggunaan Hadoop dan Spark dalam analitik.

Rebecca Bilbro - spesialis ilmu data, programmer Python, guru, dosen, dan penulis artikel; tinggal di Washington, DC. Ini mengkhususkan diri dalam penilaian visual hasil pembelajaran mesin: dari analisis fitur hingga pemilihan model dan pengaturan parameter hiper. Dia melakukan penelitian di bidang pemrosesan bahasa alami, membangun jaringan semantik, menyelesaikan entitas dan memproses informasi dengan sejumlah besar dimensi. Sebagai peserta aktif dalam komunitas pengguna dan pengembang perangkat lunak open source, Rebecca senang bekerja dengan pengembang lain pada proyek-proyek seperti Yellowbrick (paket Python yang bertujuan untuk memprediksi pemodelan kotak hitam). Di waktu senggangnya, ia sering mengendarai sepeda bersama keluarganya atau berlatih bermain ukulele. Dia menerima gelar doktor dari University of Illinois, di Urbana-Champaign, di mana dia belajar komunikasi praktis dan teknik visualisasi.

»Informasi lebih lanjut tentang buku ini dapat ditemukan di situs web penerbit
» Isi
» Kutipan

Kupon diskon 20% untuk penjaja - Python

Setelah pembayaran versi kertas buku, versi elektronik buku dikirim melalui email.

PS: 7% dari biaya buku akan masuk ke terjemahan buku komputer baru, daftar buku yang diserahkan ke percetakan ada di sini .

Source: https://habr.com/ru/post/id444384/


All Articles