Bagaimana Anda menghapus kata berhenti dan tanda baca dengan python?

Pada artikel ini, saya akan memperkenalkan Anda pada berbagai cara preprocessing teks yang merupakan salah satu level terpenting dan proyek NLP. Di sini kita hanya akan berbicara tentang alat-alat yang berguna untuk bahasa Inggris, meskipun dalam bahasa lain hanya alat-alat yang berbeda dan sebagian besar bahasa lain mencakup semua langkah yang akan kami perkenalkan.

Normalisasi teks meliputi

  • Mengubah semua huruf menjadi huruf besar atau kecil
  • Mengubah angka menjadi kata atau menghapus angka
  • Menghilangkan tanda baca, tanda aksen, …
  • Memperluas singkatan
  • Menghapus kata berhenti, istilah jarang dan kata-kata tertentu
  • kanonikalisasi teks
  • Berasal
  • Tokenisasi
  • Lemmatisasi
normalisasi teks dasar

Konversi teks ke huruf kecil

Bagian ini dapat dengan mudah dilakukan dengan menggunakan metode string dasar Python. Ini contohnya

inp = ”The Eiffel tower is in Paris.”
inp = inp.lower()
print(inp) # Will print "the eiffel tower is in paris"

Mungkin manipulasi semacam ini tampaknya tidak perlu, dalam beberapa tugas NLP Anda harus mencegah model Anda peka terhadap tingkat huruf besar seperti itu

Menghapus angka

Seperti bagian terakhir, ini juga tidak perlu dan mengambil langkah ini tergantung pada tugas Anda

Hapus nomor apa pun yang tidak terkait dengan penelitian Anda. Ekspresi reguler biasanya digunakan untuk menghilangkan angka

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
_

Menghapus tanda baca

Menghapus beberapa tanda baca dapat memberikan hasil yang buruk pada model Anda, meskipun dalam beberapa tugas dapat bermanfaat

Kumpulan simbol ini dihapus menggunakan kode berikut [. ”#$ persen &’()*+,-. /. ;=>?@[] ‘. ]

import string
inp = “This &is [an] example? {of} string. with.? punctuation!!!!”
result = inp.translate(string.maketrans(“”,””), string.punctuation)
print(result)
Tokenisasi

Ini adalah proses memecah materi besar menjadi potongan-potongan kecil, seperti frasa dan kata-kata. Token adalah komponen terkecil. Token dalam kalimat, misalnya, adalah kata, sedangkan kalimat adalah token dalam paragraf. Karena NLP digunakan untuk membuat aplikasi seperti analisis sentimen, sistem jaminan kualitas, terjemahan bahasa, chatbot cerdas, dan sistem suara, sangat penting untuk memahami pola dalam teks untuk membuatnya. Token yang disebutkan di atas cukup membantu dalam mengidentifikasi dan memahami pola-pola ini. Tokenisasi dapat dianggap sebagai langkah pertama dalam resep lain seperti stemming dan lemmatisasi
Token termasuk kata, angka, tanda baca, dan simbol lainnya. Ada berbagai alat di Python untuk tokenisasi. Beberapa dari mereka terdaftar di bawah ini

  • NLTK
  • Gumpalan teks
  • Bait

Tokenisasi menggunakan NLTK

import nltk
from nltk.tokenize import word_tokenize
word_tokenize('Medium provides high quality technical papers.')
ptint(word_tokenize)# Output is
['Medium', 'provides', 'high', 'quality', 'technical', 'papers']

Tokenisasi menggunakan TextBlob

from textblob import TextBlob
text = ("Medium is the best blog.")
tb = TextBlob(text)
words = tb.words
print(words)
# Output is
['Medium', 'is', 'the', 'best', 'blog']
Tokenization using Stanza
import stanza

nlp = stanza.Pipeline(lang='en', processors='tokenize')
doc = nlp('This is a test sentence for stanza. This is another sentence.')
for i, sentence in enumerate(doc.sentences):
print(f'====== Sentence {i+1} tokens =======')
print(*[f'id: {token.id}\ttext: {token.text}' for token in sentence.tokens], sep='\n')
# Output
====== Sentence 1 tokens =======
id: 1 text: This
id: 2 text: is
id: 3 text: a
id: 4 text: test
id: 5 text: sentence
id: 6 text: for
id: 7 text: stanza
id: 8 text: .
====== Sentence 2 tokens =======
id: 1 text: This
id: 2 text: is
id: 3 text: another
id: 4 text: sentence
id: 5 text: .

Dari sini saya hanya akan menggunakan NLTK karena ini adalah alat Python NLP yang paling terkenal. Tetapi Anda dapat menemukan informasi untuk TextBlob dengan mudah di internet

Untuk Stanza saya sarankan Anda membaca dokumen mereka dari sini

Stanford NLP

Stanford NLP Group memproduksi dan mengelola berbagai proyek perangkat lunak. Stanford CoreNLP adalah perangkat Java kami…

stanfordnlp. github. io

Menghapus kata berhenti

Apa itu kata berhenti?

Kata-kata yang paling umum dalam bahasa alami apa pun adalah stopwords. Stopwords ini mungkin tidak memberi banyak nilai pada arti dokumen saat mengevaluasi data teks dan membangun model NLP

Umumnya, kata-kata yang paling umum digunakan dalam sebuah teks adalah "the", "is", "in", "for", "where", "when", "to", "at", dll.

Berikut adalah daftar kata berhenti dalam bahasa Inggris yang mungkin berguna bagi Anda

a about after all also always am an and any are at be been being but by came can cant come could did didn't do does doesn't doing don't else for from get give goes going had happen has have having how i if ill i'm in into is isn't it its i've just keep let like made make 
many may me mean more most much no not now of only or our really say see some something take tell than that the their them then they thing this to try up us use used uses very want was way we what when where which who why will with without wont you your youre
_

Mengapa kita Perlu Menghapus StopWords?

Di NLP, menghapus stopword bukanlah aturan yang sulit dan cepat. Itu semua tergantung pada proyek yang sedang kita kerjakan. Stopwords dihilangkan atau dihilangkan dari teks yang disediakan untuk kegiatan seperti klasifikasi teks, di mana teks akan dibagi menjadi kelompok-kelompok yang berbeda, sehingga perhatian yang lebih besar dapat diberikan kepada kata-kata yang menentukan makna teks

Stopword tidak boleh dihapus dalam aktivitas seperti terjemahan mesin dan peringkasan teks

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
example_sent = """This is a sample sentence,showing off the stop words filtration."""stop_words = set(stopwords.words('english'))word_tokens = word_tokenize(example_sent)filtered_sentence = [w for w in word_tokens if not w.lower() in stop_words]filtered_sentence = []for w in word_tokens:
if w not in stop_words:
filtered_sentence.append(w)
print(word_tokens)print(filtered_sentence)# Output['This', 'is', 'a', 'sample', 'sentence', ',', 'showing',
'off', 'the', 'stop', 'words', 'filtration', '.']
['This', 'sample', 'sentence', ',', 'showing', 'stop',
'words', 'filtration', '.']
Stemming

Stemming adalah teknik untuk menghilangkan imbuhan dari kata-kata untuk mendapatkan kembali bentuk dasarnya. Itu sama dengan memangkas dahan pohon sampai ke batangnya. Kata dasar dari kata makan, makan, dan dimakan misalnya adalah makan

Untuk pengindeksan kata, mesin pencari menggunakan stemming. Akibatnya, alih-alih menyimpan semua versi kata, mesin pencari mungkin hanya menyimpan akarnya. Stemming meminimalkan ukuran indeks dan meningkatkan akurasi pengambilan dengan cara ini

Di NLTK, stemmerI, yang memiliki metode stem(), antarmuka memiliki semua stemmer yang akan kita bahas selanjutnya. Mari kita pahami dengan diagram berikut

StemmerI di NLTK

Algoritma stemming Porter adalah salah satu algoritma stemming paling umum yang pada dasarnya dirancang untuk menghapus dan mengganti akhiran kata bahasa Inggris yang terkenal.

import nltk
from nltk.stem import PorterStemmer
word_stemmer = PorterStemmer()
word_stemmer.stem('writing')
# Output
'write'
_

Algoritma stemming Lancaster dikembangkan di Lancaster University dan merupakan algoritma stemming yang sangat umum

import nltk
from nltk.stem import LancatserStemmer
Lanc_stemmer = LancasterStemmer()
Lanc_stemmer.stem('eats')
# Output
'eat'
_

Menggunakan NLTK dan ekspresi reguler Anda dapat membuat steemer Anda sendiri

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
_0Lematisasi

Proses lemmatisasi mirip dengan stemming. Hasil lemmatisasi disebut 'lemma', yang merupakan kata dasar dan bukan kata dasar, yang merupakan hasil dari stemming. Kami akan menerima istilah yang sah yang menandakan hal yang sama setelah lemmatisasi

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
1Perbedaan antara Lemmatisasi dan Stemming

Pada dasarnya, pendekatan stemming hanya mempertimbangkan bentuk kata, tetapi proses lemmatisasi mempertimbangkan makna kata. Ini menunjukkan bahwa kami akan selalu menerima kata yang valid setelah melakukan lemmatisasi

Baik stemming dan lemmatization memiliki tujuan untuk mereduksi bentuk infleksional suatu kata dan kadang-kadang terkait secara derivatif menjadi bentuk dasar tunggal.

Namun, rasa kedua istilah itu berbeda. Stemming adalah prosedur heuristik yang memotong ujung kata dengan harapan dapat melakukannya dengan benar di sebagian besar waktu, dan sering kali mencakup penghilangan afiks turunan. Lemmatization biasanya mengacu pada melakukan hal-hal dengan benar menggunakan studi kosa kata dan morfologi kata-kata, dengan tujuan menghilangkan hanya ujung infleksi dan mengembalikan bentuk dasar atau kamus dari sebuah kata, yang dikenal sebagai lemma.

Bagian dari Penandaan Ucapan

Penandaan part-of-speech berusaha untuk menetapkan bagian-bagian pidato untuk setiap kata (seperti kata benda, kata kerja, kata sifat, dan lainnya) dalam teks tertentu berdasarkan makna dan konteksnya

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
_2Memotong

Chunking adalah proses bahasa alami yang mendeteksi dan menghubungkan potongan konstituen kalimat (kata benda, kata kerja, kata sifat, dan sebagainya) ke unit urutan yang lebih tinggi dengan makna gramatikal diskrit (kelompok kata benda atau frasa, kelompok kata kerja, dll. )

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
_3

Sekarang memotong

import re
inp = ’Box A contains 3 red and 5 white balls, while Box B contains 4 red and 2 blue balls.’
result = re.sub(r’\d+’, ‘’, inp)
print(result) # Will print "Box A contains red and white balls, while Box B contains red and blue balls."
_4

Juga ini adalah pohon kalimat

Ringkasan pohon kalimat

Kami membahas persiapan teks dalam posting ini, meliputi normalisasi, tokenization, stemming, lemmatization, chunking, part of speech tagging, name-entity recognition, resolusi coreference, ekstraksi kolokasi, dan ekstraksi koneksi, serta prosedur dasar yang terlibat. Teknik penyusunan teks dan contoh juga disajikan. Dibuat tabel perbandingan

Setelah teks diproses sebelumnya, teks dapat digunakan untuk aktivitas NLP yang lebih lanjut seperti terjemahan mesin atau sintesis bahasa alami

Bagaimana Anda menghapus kata-kata berhenti di Python?

Menggunakan Pustaka NLTK Python . Untuk menghapus kata henti dari sebuah kalimat, Anda dapat membagi teks Anda menjadi kata lalu menghapus kata tersebut jika keluar dari daftar kata henti yang disediakan oleh NLTK .

Apa itu stopwords dan bagaimana cara menghapus stopwords?

Apa itu kata henti? . Ini sebenarnya adalah kata-kata yang paling umum dalam bahasa apa pun (seperti artikel, preposisi, kata ganti, kata sambung, dll) dan tidak menambahkan banyak informasi ke teks. The words which are generally filtered out before processing a natural language are called stop words. These are actually the most common words in any language (like articles, prepositions, pronouns, conjunctions, etc) and does not add much information to the text.

Bagaimana Anda menghapus tanda baca dari daftar string dengan Python?

Metode 1. Menggunakan Loop + Tanda Baca String . Dalam pendekatan ini, kami mengulangi string yang ingin kami bersihkan, memeriksa setiap karakter. Saat mengulang, kami menambahkan karakter saat ini di akhir string baru. use the basic for loop. In this approach, we loop through the string we wish to clean, checking each character. While looping through, we add the current character at the end of a new string.

Bagaimana cara menghapus tanda baca dari string di NLTK?

Ada empat cara untuk menghapus tanda baca di python dari sebuah string. .
Hapus tanda baca dengan menggunakan regex. .
Hapus tanda baca dari string dengan menggunakan metode terjemahan. .
Hapus tanda baca dengan menggunakan metode join. .
Hapus tanda baca dengan menggunakan metode ganti