Dengan senang hati akan membaca baris dari setiap iterable, termasuk generator, sehingga kita dapat menggunakan generator untuk melakukan pelolosan kutipan. Tapi kita juga perlu memberi tahu Show
Saya telah menyematkan beberapa data pengujian sebagai daftar string ke dalam kode ini, tetapi Anda dapat meneruskan file terbuka ke generator
keluaran _Kode ini tidak membuat perubahan pada baris yang tidak berisi tanda kutip ganda (seperti baris tajuk), atau sepasang tanda kutip ganda, tetapi mungkin tidak melakukan apa yang Anda inginkan jika menemukan baris yang berisi tanda kutip ganda tunggal. Memperbaiki yang tersisa sebagai latihan untuk pembaca. ;) Membaca data dari CSV (nilai yang dipisahkan koma) adalah kebutuhan mendasar dalam Ilmu Data. Seringkali, kami mendapatkan data dari berbagai sumber yang dapat diekspor ke format CSV sehingga dapat digunakan oleh sistem lain. Pustaka Panadas menyediakan fitur yang dengannya kita dapat membaca file CSV secara penuh maupun sebagian hanya untuk grup kolom dan baris yang dipilih Masukkan sebagai File CSVFile csv adalah file teks di mana nilai-nilai dalam kolom dipisahkan dengan koma. Mari pertimbangkan data berikut yang ada dalam file bernama input. csv Anda dapat membuat file ini menggunakan windows notepad dengan menyalin dan menempelkan data ini. Simpan file sebagai input. csv menggunakan save As All files(*. *) opsi di notepad id,name,salary,start_date,dept 1,Rick,623.3,2012-01-01,IT 2,Dan,515.2,2013-09-23,Operations 3,Tusar,611,2014-11-15,IT 4,Ryan,729,2014-05-11,HR 5,Gary,843.25,2015-03-27,Finance 6,Rasmi,578,2013-05-21,IT 7,Pranab,632.8,2013-07-30,Operations 8,Guru,722.5,2014-06-17,Finance Membaca File CSVFungsi read_csv dari perpustakaan panda juga dapat digunakan untuk membaca beberapa kolom tertentu dan rentang baris. Kami menggunakan metode pengindeksan multi-sumbu yang disebut. loc() untuk tujuan ini. Kami memilih untuk menampilkan kolom gaji dan nama untuk beberapa baris Artikel saya sebelumnya mengeksplorasi konsep menggores informasi tekstual dari situs web menggunakan pustaka python bernama BeautifulSoup. Kami dengan cepat dapat mengikis peringkat perusahaan karyawan dari Memang. com dan ekspor data ke file CSV lokal. Menggores data hanyalah langkah pertama dalam mengumpulkan wawasan berguna dari data teks yang baru kami peroleh. Tujuan dari artikel ini adalah untuk mengambil langkah selanjutnya dan menerapkan beberapa langkah pra-pemrosesan standar untuk menyiapkan data untuk analisis Metode pra-pemrosesan mana yang Anda pilih untuk dilakukan akan bergantung pada data Anda, hasil yang diinginkan, dan/atau cara Anda memilih untuk menganalisis data Anda. Yang mengatakan, metode pra-pemrosesan yang tercantum di bawah ini adalah beberapa metode paling umum yang biasanya digunakan
Mengimpor Perpustakaan yang Diperlukan import pandas as pdMengimpor Data kami Kami akan mengimpor peringkat tinjauan karyawan yang diperoleh di tutorial kami sebelumnya dan dengan cepat memeriksa datanya with open('indeed_scrape.csv') as f: _Kami akan memfokuskan perhatian kami pada kolom “rating” dan “rating_description” karena berisi informasi kualitatif yang paling berharga. Meskipun kami tidak akan menerapkan langkah pra-pemrosesan apa pun ke kolom "peringkat". Pertama, mari kita jatuhkan “Unnamed. 0” karena hanya menggandakan indeks df.drop('Unnamed: 0', axis=1, inplace=True) Selanjutnya, mari kita periksa apakah kita memiliki nilai yang hilang. Sepertinya "rating" dan "rating_description" tidak mengandung nilai yang hilang for col in df.columns: _rws = df.loc[:, ['rating', 'rating_description']] Pra-Pemrosesan Teks Memperluas KontraksiKontraksi adalah jalan pintas sastra kecil yang kita ambil alih-alih "Seharusnya" kita lebih suka "Seharusnya" atau di mana "Jangan" dengan cepat menjadi "Jangan". Kami akan menambahkan kolom baru ke kerangka data kami yang disebut "no_contract" dan menerapkan fungsi lambda ke bidang "rating_description" yang akan memperluas kontraksi apa pun. Waspadai fakta bahwa kontraksi yang diperluas akan secara efektif ditandai bersama. Dengan kata lain, "I've" = "I have" bukan "I", "have" rws['no_contract'] = rws['rating_description'].apply(lambda x: [contractions.fix(word) for word in x.split()]) _Kami pada akhirnya ingin kontraksi yang diperluas untuk diberi token secara terpisah menjadi "I", "have", oleh karena itu, mari kita ubah daftar di bawah kolom "no_contract" kembali menjadi string rws['rating_description_str'] = [' '.join(map(str, l)) for l in rws['no_contract']] _Deteksi Bahasa InggrisLangkah selanjutnya adalah mengidentifikasi bahasa yang digunakan untuk menulis setiap ulasan, lalu menghapus ulasan yang tidak berbahasa Inggris. Kami pertama-tama harus mengunduh model bahasa pra-terlatih untuk perpustakaan fasttext kami (semua orang harus berterima kasih kepada facebook untuk yang satu ini). TextBlob adalah perpustakaan umum yang digunakan untuk mendeteksi bahasa string tetapi itu akan dengan cepat memberi Anda kesalahan saat Anda mem-parsing teks dalam jumlah besar. Setelah kami mengunduh model, kami akan menggunakan for-loop untuk mengulangi ulasan kami. Hasilnya adalah kumpulan bahasa yang diprediksi dan probabilitas prediksi. Dalam kasus kami, kami hanya memerlukan yang pertama (mis. prediksi bahasa) bagian dari tuple. Terakhir, kami hanya memilih dua karakter terakhir pretrained_model = "lid.176.bin" Sekarang yang harus kita lakukan adalah menghapus ulasan non-bahasa Inggris TokenisasiSekarang setelah kami menghapus ulasan non-Inggris, mari terapkan tokenizer kami untuk membagi setiap kata menjadi token. Kami akan menerapkan NLTK. word_tokenize() ke kolom “rating_description_str” dan buat kolom baru bernama “tokenized” rws['tokenized'] = rws['rating_description_str'].apply(word_tokenize) Mengubah semua Karakter menjadi Huruf KecilMengubah semua kata menjadi huruf kecil juga merupakan langkah pra-pemrosesan yang sangat umum. Dalam hal ini, kami akan sekali lagi menambahkan kolom baru bernama "lebih rendah" ke kerangka data yang akan mengubah semua kata yang diberi token menjadi huruf kecil. Namun, karena kita harus mengulangi beberapa kata, kita akan menggunakan for-loop sederhana di dalam fungsi lambda untuk menerapkan fungsi "lebih rendah" ke setiap kata rws['lower'] = rws['tokenized'].apply(lambda x: [word.lower() for word in x]) Menghapus Tanda BacaTanda baca sering kali dihapus dari korpus kami karena hanya memberikan sedikit nilai setelah kami mulai menganalisis data kami. Melanjutkan pola sebelumnya, kita akan membuat kolom baru yang tanda bacanya telah dihapus. Kami akan kembali menggunakan for-loop dalam fungsi lambda untuk mengulangi token tetapi kali ini menggunakan kondisi IF untuk hanya menampilkan karakter alfa. Mungkin agak sulit untuk melihatnya tetapi "periode" yang diberi token di kolom "bawah" telah dihapus with open('indeed_scrape.csv') as f: _0Menghapus StopwordStopword biasanya adalah kata-kata yang tidak berguna dan tidak menambah banyak arti pada sebuah kalimat. Dalam bahasa Inggris stopword umum termasuk “Anda, dia, dia, di, a, memiliki, adalah, dll. ”. Pertama, kita perlu mengimpor pustaka stopwords NLTK dan menyetel stopwords kita ke "bahasa Inggris". Kami akan menambahkan kolom baru "no_stopwords" yang akan menghapus kata henti dari kolom "no_punc" karena telah diberi token, telah diubah menjadi huruf kecil dan tanda baca telah dihapus. Sekali lagi for-loop dalam fungsi lambda akan mengulangi token di "no_punc" dan hanya mengembalikan token yang tidak ada di variabel "stop_words" kami with open('indeed_scrape.csv') as f: _1Gagasan stemming adalah untuk mengurangi bentuk penggunaan kata yang berbeda menjadi kata dasarnya. Misalnya, "drive", "drive", "driving", "driven", "driver" adalah turunan dari kata "drive" dan sangat sering peneliti ingin menghapus variabilitas ini dari korpus mereka. Dibandingkan dengan lemmatisasi, stemming tentu saja merupakan metode yang tidak terlalu rumit tetapi seringkali tidak menghasilkan akar morfologi kata yang spesifik menurut kamus. Dengan kata lain, stemming kata “pai” akan sering menghasilkan akar “pi” sedangkan lemmatisasi akan menemukan akar morfologis “pai” Alih-alih mengambil jalan keluar yang mudah dengan stemming, mari kita terapkan lemmatisasi pada data kita tetapi memerlukan beberapa langkah tambahan dibandingkan dengan stemming Pertama, kita harus menerapkan part of speech tag, dengan kata lain, menentukan part of speech (mis. kata benda, kata kerja, kata keterangan, dll. ) untuk setiap kata with open('indeed_scrape.csv') as f: _2Kami akan menggunakan lemmatizer kata NLTK yang membutuhkan bagian dari tag ucapan untuk dikonversi ke format wordnet. Kami akan menulis fungsi yang membuat konversi yang tepat dan kemudian menggunakan fungsi tersebut dalam pemahaman daftar untuk menerapkan konversi. Terakhir, kami menerapkan lemmatizer kata NLTK with open('indeed_scrape.csv') as f: _3Sekarang kita dapat menerapkan lemmatizer kata NLTK dalam pemahaman daftar tepercaya kita. Perhatikan, fungsi lemmatizer membutuhkan dua parameter kata dan tagnya (dalam bentuk wordnet) with open('indeed_scrape.csv') as f: _4Terakhir, kami akan menyimpan pekerjaan ini ke dalam file csv untuk analisis data eksplorasi lebih lanjut yang dapat Anda baca di blog saya berikutnya with open('indeed_scrape.csv') as f: _5Pra-pemrosesan teks dapat dengan cepat menjadi lubang kelinci untuk pengeditan dan teknik lebih lanjut, tetapi kita harus menarik garis di suatu tempat. Saya sering akan kembali ke tahap pra-pemrosesan data saat saya melangkah lebih jauh dalam proses analisis saya karena saya telah menemukan beberapa masalah data yang perlu ditangani. Yang mengatakan, belajar menggambar garis di suatu tempat Bagaimana cara melakukan preprocessing data dari file CSV?Langkah-langkah yang terlibat dalam prapemrosesan data. . Mengimpor Perpustakaan yang diperlukan Mengimpor kumpulan data Menangani Data yang Hilang Mengkodekan Data Kategorikal Memisahkan kumpulan data menjadi kumpulan tes dan kumpulan pelatihan Penskalaan Fitur Bagaimana Anda memproses data teks dengan Python?Untuk menyiapkan data teks untuk pembuatan model, kami melakukan pemrosesan awal teks. Ini adalah langkah pertama dari proyek NLP. . Menghilangkan tanda baca seperti. ,. $( ) * % @ Menghapus URL Menghapus kata-kata Hentikan Casing bawah Tokenisasi Berasal Lemmatisasi Bagaimana cara melakukan pembersihan dan pemrosesan data dengan Python?Metode 1. Menghapus Data yang Hilang . Muat kumpulan data. Di [1]. impor panda sebagai pd impor numpy sebagai np. . Periksa tipe data untuk setiap kolom. Di [4]. df. . Menemukan nilai yang hilang di setiap kolom. Di [5]. df. . Menjatuhkan/Menghapus baris yang berisi nilai yang hilang. Di [6]. . Memeriksa untuk melihat NA setelah penghapusan baris Apa 4 langkah umum yang diambil untuk memproses data?4 Langkah dalam Pemrosesan Data . Nilai yang hilang. Berikut beberapa cara untuk mengatasi masalah ini. Abaikan tupel itu. . Data Berisik. Ini melibatkan menghilangkan kesalahan acak atau varians dalam variabel terukur. . Menghapus outlier. Teknik pengelompokan mengelompokkan titik data yang serupa |