Bagaimana Anda menghapus tanda baca dari file teks dan string dengan python?

Anda harus membersihkan teks terlebih dahulu, yang berarti memisahkannya menjadi kata-kata dan menangani tanda baca dan huruf besar-kecil

Bahkan, ada seluruh rangkaian metode persiapan teks yang mungkin perlu Anda gunakan, dan pilihan metode sangat bergantung pada tugas pemrosesan bahasa alami Anda.

Dalam tutorial ini, Anda akan menemukan cara membersihkan dan menyiapkan teks agar siap untuk dimodelkan dengan pembelajaran mesin

Setelah menyelesaikan tutorial ini, Anda akan tahu

  • Cara memulai dengan mengembangkan alat pembersih teks Anda sendiri yang sangat sederhana
  • Cara meningkatkan dan menggunakan metode yang lebih canggih di perpustakaan NLTK
  • Cara menyiapkan teks saat menggunakan metode representasi teks modern seperti penyisipan kata

Mulai proyek Anda dengan buku baru saya Deep Learning for Natural Language Processing, termasuk tutorial langkah demi langkah dan file kode sumber Python untuk semua contoh

Mari kita mulai

  • Perbarui November/2017. Kesalahan ketik kode di bagian 'dibagi menjadi beberapa kata' telah diperbaiki, terima kasih David Comfort

Bagaimana Anda menghapus tanda baca dari file teks dan string dengan python?

Bagaimana Mengembangkan Model Perceptron Multilayer untuk Time Series Forecasting
Foto oleh Biro Pengelolaan Lahan, beberapa hak dilindungi undang-undang

Sekilas Tutorial

Tutorial ini dibagi menjadi 6 bagian;

  1. Metamorfosis oleh Franz Kafka
  2. Pembersihan Teks Khusus untuk Tugas
  3. Tokenisasi Manual
  4. Tokenisasi dan Pembersihan dengan NLTK
  5. Pertimbangan Pembersihan Teks Tambahan
  6. Tips Membersihkan Teks untuk Penyematan Kata

Butuh bantuan dengan Pembelajaran Mendalam untuk Data Teks?

Ikuti kursus kilat email 7 hari gratis saya sekarang (dengan kode)

Klik untuk mendaftar dan juga dapatkan kursus versi Ebook PDF gratis

Mulai Kursus Crash GRATIS Anda Sekarang

Metamorfosis oleh Franz Kafka

Mari kita mulai dengan memilih kumpulan data

Dalam tutorial ini, kita akan menggunakan teks dari buku Metamorphosis oleh Franz Kafka. Tidak ada alasan khusus, selain pendek, saya menyukainya, dan Anda mungkin menyukainya juga. Saya berharap itu salah satu buku klasik yang harus dibaca sebagian besar siswa di sekolah

Teks lengkap untuk Metamorfosis tersedia secara gratis dari Project Gutenberg

  • Metamorfosis oleh Franz Kafka di Proyek Gutenberg

Anda dapat mengunduh versi teks ASCII dari teks di sini

  • Metamorfosis oleh Franz Kafka Plain Text UTF-8 (mungkin perlu memuat halaman dua kali)

Unduh file dan letakkan di direktori kerja Anda saat ini dengan nama file “metamorphosis. txt"

File tersebut berisi informasi header dan footer yang tidak kami minati, khususnya informasi hak cipta dan lisensi. Buka file dan hapus informasi header dan footer dan simpan file sebagai “metamorphosis_clean. txt"

Awal dari file bersih akan terlihat seperti

Suatu pagi, ketika Gregor Samsa terbangun dari mimpi buruknya, dia mendapati dirinya berubah di tempat tidurnya menjadi hama yang mengerikan

File harus diakhiri dengan

Dan, seolah menegaskan mimpi baru dan niat baik mereka, begitu mereka mencapai tujuan, Grete adalah orang pertama yang bangun dan meregangkan tubuh mudanya.

Gregor yang malang…

Pembersihan Teks Khusus Untuk Tugas

Setelah benar-benar menguasai data teks Anda, langkah pertama dalam membersihkan data teks adalah memiliki gagasan yang kuat tentang apa yang ingin Anda capai, dan dalam konteks itu, tinjau teks Anda untuk melihat apa sebenarnya yang dapat membantu

Luangkan waktu sejenak untuk melihat teks. Apa yang Anda perhatikan?

Inilah yang saya lihat

  • Ini teks biasa jadi tidak ada markup untuk diuraikan (yay. )
  • Terjemahan dari bahasa Jerman asli menggunakan bahasa Inggris UK (mis. g. "bepergian")
  • Garis secara artifisial dibungkus dengan garis baru sekitar 70 karakter (meh)
  • Tidak ada kesalahan ketik atau ejaan yang jelas
  • Ada tanda baca seperti koma, apostrof, kutipan, tanda tanya, dan lainnya
  • Ada deskripsi dengan tanda penghubung seperti "mirip baju besi"
  • Ada banyak penggunaan em dash ("-") untuk melanjutkan kalimat (mungkin ganti dengan koma?)
  • Ada nama (mis. g. "Tn. Samsa“)
  • Tampaknya tidak ada angka yang memerlukan penanganan (mis. g. 1999)
  • Ada penanda bagian (mis. g. "II" dan "III"), dan kami telah menghapus "I" pertama

Saya yakin ada lebih banyak hal yang terjadi pada mata yang terlatih

Kita akan melihat langkah-langkah pembersihan teks umum dalam tutorial ini

Namun demikian, pertimbangkan beberapa kemungkinan tujuan yang mungkin kita miliki saat bekerja dengan dokumen teks ini

Sebagai contoh

  • Jika kami tertarik untuk mengembangkan model bahasa Kafkaesque, kami mungkin ingin menyimpan semua kasus, kutipan, dan tanda baca lainnya di tempatnya.
  • Jika kami tertarik untuk mengklasifikasikan dokumen sebagai "Kafka" dan "Bukan Kafka", mungkin kami ingin menghapus kasus, tanda baca, dan bahkan memangkas kata kembali ke asalnya.

Gunakan tugas Anda sebagai lensa untuk memilih cara menyiapkan data teks Anda

Tokenisasi Manual

Pembersihan teks itu sulit, tetapi teks yang telah kita pilih untuk dikerjakan sudah cukup bersih

Kami hanya bisa menulis beberapa kode Python untuk membersihkannya secara manual, dan ini adalah latihan yang bagus untuk masalah sederhana yang Anda temui. Alat seperti ekspresi reguler dan pemisahan string dapat membantu Anda jauh

1. Muat Data

Mari memuat data teks sehingga kita dapat bekerja dengannya

Teksnya kecil dan akan dimuat dengan cepat dan mudah dimasukkan ke dalam memori. Ini tidak akan selalu terjadi dan Anda mungkin perlu menulis kode ke memori yang memetakan file tersebut. Alat seperti NLTK (dibahas di bagian selanjutnya) akan membuat bekerja dengan file besar menjadi lebih mudah

Kita dapat memuat seluruh “metamorphosis_clean. txt” ke dalam memori sebagai berikut

1

2

3

4

5

# memuat teks

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

Menjalankan contoh memuat seluruh file ke dalam memori yang siap digunakan

2. Dipisahkan oleh Spasi Putih

Teks bersih sering kali berarti daftar kata atau token yang dapat kami kerjakan dalam model pembelajaran mesin kami

Ini berarti mengubah teks mentah menjadi daftar kata dan menyimpannya lagi

Cara yang sangat sederhana untuk melakukannya adalah dengan membagi dokumen dengan spasi putih, termasuk " ", baris baru, tab, dan lainnya. Kita bisa melakukan ini dengan Python dengan fungsi split() pada string yang dimuat

1

2

3

4

5

6

7

8

# memuat teks

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dipecah menjadi kata-kata dengan spasi putih

kata = teks. pisah()

cetak(kata[. 100])

Menjalankan contoh membagi dokumen menjadi daftar kata yang panjang dan mencetak 100 kata pertama untuk kita tinjau

Kita dapat melihat bahwa tanda baca dipertahankan (mis. g. "tidak" dan "seperti baju besi"), itu bagus. Kita juga dapat melihat bahwa tanda baca akhir kalimat disimpan dengan kata terakhir (mis. g. "pikiran. ”), yang tidak bagus

1

['Satu', 'pagi', 'kapan', 'Gregor', 'Samsa', 'terbangun', 'dari', 'bermasalah', 'mimpi', 'dia', 'menemukan', 'dirinya sendiri' . ', 'Dia', 'berbaring', 'pada', 'miliknya', 'seperti baju besi', 'kembali,', 'dan', 'jika', 'dia', 'mengangkat', 'miliknya', ' . ', 'The', 'bedding', 'was', 'hampir', 'mampu', 'untuk', 'menutupi', 'itu', 'dan', 'tampaknya', 'siap', 'untuk', . ', 'Nya', 'banyak', 'kaki', 'menyedihkan', 'tipis', 'dibandingkan', 'dengan', 'itu', 'ukuran', 'dari', 'yang', 'sisanya' . ', '"Apa', 'terjadi', 'pada', 'aku?"', 'dia', 'pikir. ', 'Itu', 'bukan', 'sebuah', 'mimpi. ', 'Nya', 'kamar', 'a', 'pantas', 'manusia']

3. Pilih Kata

Pendekatan lain mungkin menggunakan model regex (re) dan membagi dokumen menjadi kata-kata dengan memilih string karakter alfanumerik (a-z, A-Z, 0-9 dan '_')

Sebagai contoh

1

2

3

4

5

6

7

8

9

# memuat teks

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dipisah berdasarkan kata saja

impor re

kata = re. pisah(r'\W+', text)

cetak(kata[. 100])

Sekali lagi, menjalankan contoh kita dapat melihat bahwa kita mendapatkan daftar kata-kata kita. Kali ini, kita dapat melihat bahwa "seperti baju besi" sekarang menjadi dua kata "baju besi" dan "seperti" (baik) tetapi kontraksi seperti "Apa" juga dua kata "Apa" dan "s" (tidak bagus)

1

['Satu', 'pagi', 'kapan', 'Gregor', 'Samsa', 'terbangun', 'dari', 'bermasalah', 'mimpi', 'dia', 'menemukan', 'dirinya', '

3. Pisahkan dengan Spasi Putih dan Hapus Tanda Baca

Catatan. Contoh ini ditulis untuk Python 3

Kita mungkin menginginkan kata-kata, tetapi tanpa tanda baca seperti koma dan tanda kutip. Kami juga ingin menjaga kontraksi bersama

Salah satu caranya adalah membagi dokumen menjadi kata-kata dengan spasi putih (seperti pada “2. Pisahkan dengan Spasi Putih“), lalu gunakan terjemahan string untuk mengganti semua tanda baca dengan kosong (mis. g. Singkirkan)

Python menyediakan string yang disebut konstan. tanda baca yang menyediakan daftar karakter tanda baca yang bagus. Sebagai contoh

1

cetak(string. tanda baca)

Hasil dalam

1

!"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~

Python menawarkan fungsi yang disebut yang akan memetakan satu set karakter ke yang lain

Kita dapat menggunakan fungsi tersebut untuk membuat tabel pemetaan. Kita dapat membuat tabel pemetaan kosong, tetapi argumen ketiga dari fungsi ini memungkinkan kita untuk mencantumkan semua karakter yang akan dihapus selama proses penerjemahan. Sebagai contoh

1

tabel = str. maketrans('', . , string.tanda baca)

Kita dapat menyatukan semua ini, memuat file teks, membaginya menjadi kata-kata dengan spasi putih, lalu menerjemahkan setiap kata untuk menghapus tanda baca

1

2

3

4

5

6

7

8

9

10

11

12

# memuat teks

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dipecah menjadi kata-kata dengan spasi putih

kata = teks. pisah()

# hapus tanda baca dari setiap kata

impor string

tabel = str. maketrans('', . , string.tanda baca)

dilucuti = [w. terjemahkan(tabel) untuk w in words]

cetak(dilucuti[. 100])

Kita dapat melihat bahwa ini memiliki efek yang diinginkan, sebagian besar

Kontraksi seperti "What's" telah menjadi "Whats" tetapi "armour-like" telah menjadi "armourlike"

1

['Satu', 'pagi', 'kapan', 'Gregor', 'Samsa', 'terbangun', 'dari', 'bermasalah', 'mimpi', 'dia', 'menemukan', 'dirinya', '

Jika Anda tahu sesuatu tentang regex, maka Anda tahu hal-hal bisa menjadi rumit dari sini

4. Kasus Normalisasi

Adalah umum untuk mengonversi semua kata menjadi satu kasus

Ini berarti bahwa kosakata akan menyusut ukurannya, tetapi beberapa perbedaan hilang (mis. g. "Apple" perusahaan vs "apel" buah adalah contoh yang umum digunakan)

Kita dapat mengonversi semua kata menjadi huruf kecil dengan memanggil fungsi lower() pada setiap kata

Sebagai contoh

1

2

3

4

5

6

7

8

9

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dipecah menjadi kata-kata dengan spasi putih

kata = teks. pisah()

# konversi ke huruf kecil

kata = [kata. turunkan() untuk kata in words]

cetak(kata[. 100])

Menjalankan contoh, kita dapat melihat bahwa semua kata sekarang menjadi huruf kecil

1

['satu', 'pagi', 'kapan', 'gregor', 'samsa', 'terbangun', 'dari', 'galau', 'mimpi', 'dia', 'menemukan', 'dirinya' . ', 'dia', 'berbaring', 'pada', 'miliknya', 'seperti baju besi', 'kembali,', 'dan', 'jika', 'dia', 'mengangkat', 'miliknya', ' . ',', . ', 'dia', 'banyak', 'kaki', 'menyedihkan', 'kurus', 'dibandingkan', 'dengan', 'itu', 'ukuran', 'dari', 'yang', 'sisanya' . ', '"apa', 'terjadi', 'pada', 'aku?"', 'dia', 'pikir. ', 'itu', "bukan", 'sebuah', 'mimpi. ', 'miliknya', 'kamarnya,', 'a', 'pantas', 'manusia']

Catatan

Membersihkan teks sangat sulit, khusus masalah, dan penuh pengorbanan

Ingat, sederhana lebih baik

Data teks lebih sederhana, model lebih sederhana, kosakata lebih kecil. Anda selalu dapat membuat sesuatu menjadi lebih kompleks nanti untuk melihat apakah itu menghasilkan keterampilan model yang lebih baik

Selanjutnya, kita akan melihat beberapa alat di perpustakaan NLTK yang menawarkan lebih dari sekadar pemisahan string

Tokenisasi dan Pembersihan dengan NLTK

Natural Language Toolkit, atau singkatnya NLTK, adalah pustaka Python yang ditulis untuk bekerja dan memodelkan teks

Ini menyediakan alat yang bagus untuk memuat dan membersihkan teks yang dapat kita gunakan untuk menyiapkan data kita untuk bekerja dengan pembelajaran mesin dan algoritme pembelajaran mendalam

1. Instal NLTK

Anda dapat menginstal NLTK menggunakan pengelola paket favorit Anda, seperti pip

1

sudo pip install -U nltk

Setelah penginstalan, Anda perlu menginstal data yang digunakan dengan pustaka, termasuk kumpulan dokumen yang bagus yang dapat Anda gunakan nanti untuk menguji alat lain di NLTK

Ada beberapa cara untuk melakukan ini, seperti dari dalam skrip

1

2

impor nltk

nltk. unduh()

Atau dari baris perintah

1

python -m nltk. pengunduh semua

Untuk bantuan lebih lanjut dalam menginstal dan menyiapkan NLTK, lihat

  • Menginstal NLTK
  • Menginstal Data NLTK

2. Dibagi menjadi Kalimat

Langkah pertama yang baik dan bermanfaat adalah membagi teks menjadi kalimat

Beberapa tugas pemodelan lebih memilih input dalam bentuk paragraf atau kalimat, seperti word2vec. Pertama-tama Anda dapat membagi teks menjadi kalimat, membagi setiap kalimat menjadi kata-kata, lalu menyimpan setiap kalimat ke file, satu kalimat per baris

NLTK menyediakan fungsi sent_tokenize() untuk membagi teks menjadi kalimat

Contoh di bawah ini memuat file “metamorphosis_clean. txt” ke dalam memori, membaginya menjadi kalimat, dan mencetak kalimat pertama

1

2

3

4

5

6

7

8

9

# memuat data

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dipecah menjadi kalimat

dari nltk impor sent_tokenize

kalimat = sent_tokenize(teks)

cetak(kalimat[0])

Menjalankan contoh, kita dapat melihat bahwa meskipun dokumen dipecah menjadi kalimat, setiap kalimat masih mempertahankan baris baru dari bungkus buatan baris di dokumen asli.

Suatu pagi, ketika Gregor Samsa terbangun dari mimpi buruknya, dia menemukan
dirinya berubah di tempat tidurnya menjadi hama yang mengerikan

3. Dibagi menjadi Kata-kata

NLTK menyediakan fungsi yang disebut word_tokenize() untuk memisahkan string menjadi token (nominal kata-kata)

Itu membagi token berdasarkan ruang putih dan tanda baca. Misalnya, koma dan titik diambil sebagai token terpisah. Kontraksi dipisahkan (mis. g. "Apa" menjadi "Apa" "'s"). Kutipan disimpan, dan seterusnya

Sebagai contoh

1

2

3

4

5

6

7

8

9

# memuat data

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dibagi menjadi kata-kata

dari nltk. tokenize import word_tokenize

token = word_tokenize(teks)

cetak(token[. 100])

Menjalankan kode, kita dapat melihat bahwa tanda baca sekarang adalah token yang kemudian dapat kita putuskan untuk difilter secara khusus

1

['Satu', 'pagi', ',', 'ketika', 'Gregor', 'Samsa', 'bangun', 'dari', 'bermasalah', 'mimpi', ',', 'dia', ' . ', 'Dia', 'berbaring', 'pada', 'miliknya', 'seperti baju besi', 'kembali', ',', 'dan', 'jika', 'dia', 'mengangkat', 'miliknya . ', 'The', 'bedding', 'was', 'hampir', 'mampu', 'untuk', 'menutupi', 'itu', 'dan', 'tampaknya', 'siap', 'untuk', . ', 'Nya', 'banyak', 'kaki', ',', 'menyedihkan', 'kurus', 'dibandingkan', 'dengan', 'itu', 'ukuran', 'dari', 'itu', . ', '``', 'Apa', "'s", 'terjadi', 'untuk']

4. Saring Tanda Baca

Kami dapat memfilter semua token yang tidak kami minati, seperti semua tanda baca mandiri

Ini dapat dilakukan dengan mengulangi semua token dan hanya menyimpan token yang semuanya alfabet. Python memiliki fungsi yang dapat digunakan. Sebagai contoh

1

2

3

4

5

6

7

8

9

10

11

# memuat data

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dibagi menjadi kata-kata

dari nltk. tokenize import word_tokenize

token = word_tokenize(teks)

# hapus semua token yang bukan abjad

kata = [kata untuk word in tokens if word.isalpha()]

cetak(kata[. 100])

Menjalankan contoh, Anda dapat melihat bahwa tidak hanya tanda baca, tetapi contoh seperti "mirip baju besi" dan "'s" juga difilter

1

['Satu', 'pagi', 'kapan', 'Gregor', 'Samsa', 'terbangun', 'dari', 'bermasalah', 'mimpi', 'dia', 'menemukan', 'dirinya', '

5. Saring Stop Words (dan Pipeline)

Kata-kata berhenti adalah kata-kata yang tidak berkontribusi pada makna frasa yang lebih dalam

Mereka adalah kata-kata yang paling umum seperti. “itu”, “a”, dan “adalah”

Untuk beberapa aplikasi seperti klasifikasi dokumentasi, mungkin masuk akal untuk menghapus kata-kata berhenti

NLTK menyediakan daftar kata-kata berhenti yang disepakati bersama untuk berbagai bahasa, seperti bahasa Inggris. Mereka dapat dimuat sebagai berikut

1

2

3

dari nltk. corpus impor stopwords

stop_words = stopwords. kata-kata('bahasa inggris')

cetak(stop_words)

Anda dapat melihat daftar lengkapnya sebagai berikut

1

['aku', 'aku', 'milikku', 'diriku', 'kita', 'milik kita', 'milik kita', 'kamu', 'kamu', 'milikmu', 'dirimu', '

Anda dapat melihat bahwa semuanya menggunakan huruf kecil dan tanda baca telah dihapus

Anda dapat membandingkan token Anda dengan kata berhenti dan memfilternya, tetapi Anda harus memastikan bahwa teks Anda disiapkan dengan cara yang sama

Mari kita tunjukkan ini dengan saluran kecil persiapan teks termasuk

  1. Muat teks mentah
  2. Dibagi menjadi token
  3. Ubah ke huruf kecil
  4. Hapus tanda baca dari setiap token
  5. Saring sisa token yang bukan abjad
  6. Saring token yang merupakan kata berhenti

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# memuat data

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dibagi menjadi kata-kata

dari nltk. tokenize import word_tokenize

token = word_tokenize(teks)

# konversi ke huruf kecil

token = [w. lebih rendah() untuk w in tokens]

# hapus tanda baca dari setiap kata

impor string

tabel = str. maketrans('', . , string.tanda baca)

dilucuti = [w. terjemahkan(tabel) untuk w in tokens]

# hapus sisa token yang bukan abjad

kata = [kata untuk word in stripped if word.isalpha()]

# menyaring kata berhenti

dari nltk. corpus impor stopwords

stop_words = set(stopwords.kata-kata('bahasa inggris'))

kata = [w untuk w in words if not w in stop_words]

cetak(kata[. 100])

Menjalankan contoh ini, kita dapat melihat bahwa selain semua transformasi lainnya, hentikan kata-kata seperti "a" dan "to" telah dihapus

Saya perhatikan bahwa kita masih memiliki token seperti "nt". Lubang kelinci itu dalam;

1

['satu', 'pagi', 'gregor', 'samsa', 'terbangun', 'bermasalah', 'mimpi', 'ditemukan', 'berubah', 'tempat tidur', 'mengerikan', 'hama', '

6. Kata Batang

Stemming mengacu pada proses mengurangi setiap kata ke akar atau basisnya

Misalnya "fishing", "fished", "fisher" semuanya direduksi menjadi "fish". ”

Beberapa aplikasi, seperti klasifikasi dokumen, mungkin mendapat manfaat dari stemming untuk mengurangi kosa kata dan untuk fokus pada pengertian atau sentimen dokumen daripada makna yang lebih dalam.

Ada banyak algoritma stemming, meskipun metode yang populer dan sudah lama ada adalah algoritma Porter Stemming. Metode ini tersedia di NLTK melalui kelas PorterStemmer

Sebagai contoh

1

2

3

4

5

6

7

8

9

10

11

12

13

# memuat data

namafile = 'metamorphosis_clean. txt'

berkas = buka(namaberkas, 'rt')

teks = file. baca()

berkas. tutup()

# dibagi menjadi kata-kata

dari nltk. tokenize import word_tokenize

token = word_tokenize(teks)

# stemming kata

dari nltk. batang. porter impor PorterStemmer

porter = PorterStemmer()

stemmed = [porter. batang(kata) untuk word in tokens]

cetak(stemmed[. 100])

Menjalankan contoh, Anda dapat melihat bahwa kata-kata telah direduksi menjadi akarnya, seperti "masalah" telah menjadi "masalah". Anda juga dapat melihat bahwa penerapan stemming juga telah mengurangi token menjadi huruf kecil, kemungkinan untuk pencarian internal di tabel kata

Anda juga dapat melihat bahwa penerapan stemming juga telah mengurangi token menjadi huruf kecil, kemungkinan untuk pencarian internal di tabel kata

1

['satu', 'pagi', ',', 'ketika', 'gregor', 'samsa', 'terbangun', 'dari', 'galau', 'mimpi', ',', 'dia', ' . ', 'He', 'lay', 'on', 'hai', 'armour-lik', 'back', ',', 'and', 'if', 'he', 'lift', 'hai . ', 'the', 'bed', 'was', 'hampir', 'mampu', 'to', 'cover', 'it', 'and', 'tampaknya', 'ready', 'to', . ', 'hai', 'mani', 'kaki', ',', 'piti', 'tipis', 'dibandingkan', 'dengan', 'itu', 'ukuran', 'dari', 'itu', . ', '``', 'apa', "'s", 'terjadi', 'untuk'

Ada rangkaian algoritma stemming dan lemmatisasi yang bagus untuk dipilih di NLTK, jika mereduksi kata ke akarnya adalah sesuatu yang Anda perlukan untuk proyek Anda

Pertimbangan Pembersihan Teks Tambahan

Kami baru memulai

Karena teks sumber untuk tutorial ini pada awalnya cukup bersih, kami melewatkan banyak masalah pembersihan teks yang mungkin perlu Anda tangani dalam proyek Anda sendiri

Berikut adalah daftar singkat pertimbangan tambahan saat membersihkan teks

  • Menangani dokumen berukuran besar dan kumpulan besar dokumen teks yang tidak sesuai dengan memori
  • Mengekstrak teks dari markup seperti HTML, PDF, atau format dokumen terstruktur lainnya
  • Transliterasi karakter dari bahasa lain ke bahasa Inggris
  • Mendekode karakter Unicode ke dalam bentuk normal, seperti UTF8
  • Penanganan kata, frasa, dan akronim khusus domain
  • Menangani atau menghapus nomor, seperti tanggal dan jumlah
  • Menemukan dan mengoreksi kesalahan ketik umum dan salah eja

Daftarnya bisa terus berlanjut

Mudah-mudahan, Anda dapat melihat bahwa tidak mungkin mendapatkan teks yang benar-benar bersih, bahwa kami benar-benar melakukan yang terbaik berdasarkan waktu, sumber daya, dan pengetahuan yang kami miliki

Gagasan "bersih" benar-benar ditentukan oleh tugas atau perhatian khusus dari proyek Anda

Tip pro adalah untuk terus meninjau token Anda setelah setiap transformasi. Saya telah mencoba menunjukkannya dalam tutorial ini dan saya harap Anda mengingatnya

Idealnya, Anda menyimpan file baru setelah setiap transformasi sehingga Anda dapat menghabiskan waktu dengan semua data dalam formulir baru. Hal-hal selalu muncul saat Anda meluangkan waktu untuk meninjau data Anda

Pernahkah Anda melakukan pembersihan teks sebelumnya?
Beri tahu saya di komentar di bawah

Tips Membersihkan Teks untuk Penyematan Kata

Baru-baru ini, bidang pemrosesan bahasa alami telah beralih dari model bag-of-word dan pengkodean kata menuju penyisipan kata.

Manfaat dari penyematan kata adalah mereka menyandikan setiap kata menjadi vektor padat yang menangkap sesuatu tentang makna relatifnya di dalam teks pelatihan

Artinya, variasi kata seperti huruf besar/kecil, ejaan, tanda baca, dan lain-lain akan dipelajari secara otomatis agar mirip di ruang penyematan. Pada gilirannya, ini dapat berarti bahwa jumlah pembersihan yang diperlukan dari teks Anda mungkin lebih sedikit dan mungkin sangat berbeda dengan pembersihan teks klasik

Misalnya, mungkin tidak masuk akal lagi untuk membendung kata-kata atau menghapus tanda baca untuk kontraksi

Tomas Mikolov adalah salah satu pengembang word2vec, metode penyisipan kata yang populer. Dia menyarankan hanya pembersihan teks yang sangat minim diperlukan saat mempelajari model penyisipan kata

Di bawah ini adalah tanggapannya saat ditekan dengan pertanyaan tentang cara terbaik menyiapkan data teks untuk word2vec

Tidak ada jawaban universal. Itu semua tergantung pada apa yang Anda rencanakan untuk menggunakan vektor. Dalam pengalaman saya, biasanya baik untuk memutuskan (atau menghapus) tanda baca dari kata-kata, dan terkadang juga mengonversi semua karakter menjadi huruf kecil. Seseorang juga dapat mengganti semua angka (mungkin lebih besar dari beberapa konstanta) dengan beberapa token tunggal seperti

Semua langkah pra-pemrosesan ini bertujuan untuk mengurangi ukuran kosakata tanpa menghapus konten penting apa pun (yang dalam beberapa kasus mungkin tidak benar saat Anda menggunakan huruf kecil pada kata-kata tertentu, yaitu. 'Bush' berbeda dari 'semak', sedangkan 'Another' biasanya memiliki arti yang sama dengan 'lain'). Semakin kecil kosakatanya, semakin rendah kompleksitas memorinya, dan semakin kuat parameter untuk kata-kata yang diestimasi. Anda juga harus melakukan pra-proses data pengujian dengan cara yang sama

Bagaimana cara menghapus tanda baca dari file teks dengan Python?

Langkah 1- Mengambil string atau teks sederhana dan mencetaknya. .
Langkah 2 - Menyimpan semua tanda baca dalam Variabel. .
Langkah 3 - Menghapus tanda baca dari teks. .
Langkah 4 - Menghapus tanda baca dengan menggunakan re, mengimpor re. .
Langkah 5 - Mengambil teks lain dan mencetaknya. .
Langkah 6 - Menghapus tanda baca menggunakan re, mencetak yang diperbarui

Bagaimana cara menghapus tanda baca dari kumpulan data Python?

Cara Menghapus Tanda Baca Dari Panda .
str. mengganti()
regex. sub()
dan str. menerjemahkan()

Bagaimana Anda menghapus semua tanda baca dan spasi dari sebuah string dengan Python?

Ilmu Data Praktis menggunakan Python . Kami akan memeriksa apakah setiap karakter adalah alfabet atau angka menggunakan isalnum (), jika tidak maka akan dihapus atau kita akan melanjutkan ke karakter berikutnya. using isalnum() method on each character of the string by iterating it using for loop. We will check if each character is either alphabet or number using isalnum(), if they are not then they will be removed else we will go on to next character.

Bagaimana cara menghapus tanda baca dari string Python menggunakan regex?

Menggunakan Metode Regular Expressions (REGEX). . r'[^ws]'. Pola untuk memilih karakter dan angka. with the help of a sub-string function and pattern. r'[^ws]' : Pattern to select character and numbers.