Am decis să scriu o serie de articole care explică toate conceptele de bază până la avansate ale NLP folosind python. Deci, dacă doriți să învățați NLP citindu-l și codând, aceasta va fi o serie perfectă de articole pentru dvs.
Oricine nou sau zero în NLP poate începe cu noi și urmează această serie de articole.
Biblioteci folosite: Keras, Tensorflow, Scikit Learn, NLTK, Glove etc.
Toate subiectele vor fi explicate folosind coduri python și cadre populare de deep learning și machine learning, cum ar fi sci-kit learning, Keras și TensorFlow.
Ce este NLP?
Procesarea limbajului natural este o parte a informaticii care permite computerelor să înțeleagă limbajul în mod natural, așa cum o face o persoană. Aceasta înseamnă că laptopul va înțelege sentimentele, vorbirea, va răspunde la întrebări, va rezuma text etc. Nu vom vorbi prea mult despre istoria și evoluția sa. Dacă ești interesat, preferă asta link-ul.
Pasul 1 Curățarea datelor
Datele text brute vin imediat după ce diferitele surse nu sunt curățate. Aplicăm mai mulți pași pentru a curăța datele. Datele text necurățate conțin informații inutile care deviază rezultatele, așa că este întotdeauna primul pas pentru curățarea datelor. Unele tehnici standard de preprocesare ar trebui aplicate pentru a face datele mai curate. Datele curățate împiedică, de asemenea, modelele să se supraajusteze.
În acest articol, vom vedea următoarele subiecte sub procesarea textului și analiza exploratorie a datelor.
Convertesc datele text brute într-un cadru de date panda și efectuez diverse tehnici de curățare a datelor.
import panda as pd text = ['Acesta este ARTICOLUL DE SARCINI NLP scris de ABhishek Jaiswal** ','ÎN acest articol voi explica diverse tehnici de CURĂȚARE A DATELOR', 'Așa că rămâneți pe fază pentru MAI MULTE &&','Nu Nu cred că merge la usf, trăiește în jur'] df = pd.DataFrame({'text':text})
ieșire:
Minuscule
Metoda lower()
convertește toate caracterele majuscule în minuscule și returnează.
Aplicarea lower()
metoda folosind funcția lambda
df['lower'] = df['text'].apply(lambda x: " ".join(x.lower() for x in x.split()))
Eliminarea punctuației
Eliminarea semnelor de punctuație (*,&,%#@#()
) este un pas crucial, deoarece punctuația nu adaugă informații suplimentare sau valoare datelor noastre. Prin urmare, eliminarea semnelor de punctuație reduce dimensiunea datelor; prin urmare, îmbunătățește eficiența de calcul.
Acest pas poate fi făcut folosind metoda Regex sau Replace.
string.punctuation
returnează un șir care conține toate semnele de punctuație.
Eliminarea punctuației folosind expresii obisnuite:
Opriți eliminarea cuvintelor
Cuvinte care apar frecvent în propoziții și nu au un sens semnificativ în propoziții. Acestea nu sunt importante pentru predicție, așa că eliminăm cuvintele oprite pentru a reduce dimensiunea datelor și a preveni supraadaptarea. Notă: înainte de a filtra cuvintele oprite, asigurați-vă că ați scris cu minuscule datele, deoarece cuvintele noastre oprite sunt litere mici.
Folosind biblioteca NLTK, ne putem filtra cuvintele oprite din setul de date.
# !pip install nltk import nltk nltk.download('stopwords') din nltk.corpus import stopwords allstopwords = stopwords.words('english') df.lower.apply(lambda x: " ".join(i for i in x .split() dacă nu sunt în allstopwords))
Corectarea ortografiei
Cele mai multe dintre datele text extrase din recenziile clienților, bloguri sau tweet-uri au anumite șanse de greșeli de ortografie.
Corectarea greșelilor de ortografie îmbunătățește acuratețea modelului.
Există diverse biblioteci pentru a remedia greșelile de ortografie, dar cea mai convenabilă metodă este utilizarea unui blob de text.
Metoda correct()
lucrează pe obiecte blob text și corectează greșelile de ortografie.
#Install textblob library !pip install textblob din textblob import TextBlob
tokenizarea
Tokenizarea înseamnă împărțirea textului în cuvinte unitare semnificative. Există tokenizatoare de propoziții, precum și tokenizatoare de cuvinte.
Sentence tokenizer împarte un paragraf în propoziții semnificative, în timp ce word tokenizer împarte o propoziție în unități de cuvinte semnificative. Multe biblioteci pot efectua tokenizare precum SpaCy, NLTK și TextBlob.
Împărțirea unei propoziții pe spațiu pentru a obține cuvinte unități individuale poate fi înțeleasă ca simbolizare.
import nltk mystring = „Animalul meu preferat este pisica” nltk.word_tokenize(mystring)
mystring.split(" ")
ieșire:
[„Meu”, „preferat”, „animal”, „este”, „pisica”]
Pentru a putea reduce
Stemming este convertirea cuvintelor în cuvântul lor rădăcină folosind un set de reguli, indiferent de sens. adica
- „peștele”, „peștele” și „pescuitul” sunt derivate în „pește”.
- „playing”, „played”, „plays” sunt derivate în „play”.
- Stemming ajută la reducerea vocabularului, îmbunătățind astfel acuratețea.
Cel mai simplu mod de a efectua stemming este să utilizați NLTK sau o bibliotecă TextBlob.
NLTK furnizează diverse tehnici de stemming, adică Snowball, PorterStemmer; tehnica diferită urmează diferite seturi de reguli pentru a converti cuvintele în cuvântul lor rădăcină.
import nltk din nltk.stem import PorterStemmer st = PorterStemmer() df['text'].apply(lambda x:" ".join([st.stem(word) for word in x.split()]))
„articol” este derivat în „articl
""lives
„ — -> „live
".
Lematizarea
Lematizarea înseamnă convertirea cuvintelor în cuvântul lor rădăcină folosind maparea vocabularului. Lematizarea se face cu ajutorul unei părți de vorbire și a sensului acesteia; prin urmare, nu generează cuvinte rădăcină fără sens. Dar lematizarea este mai lentă decât stemming.
- bine, ""mai bine, "Sau"Cel mai bun” este lematizat în „bine".
- Lematizarea va converti toate sinonimele într-un singur cuvânt rădăcină. adică „auto""mașină"" camion"" vehicule” sunt lematizate în „automobile”.
- Lematizarea are de obicei rezultate mai bune.
ie. leafs
Stăpânit la. frunzele tulpinite la leav
în timp ce leafs
, leaves
lematizat la leaf
Lematizarea se poate face folosind NLTK, biblioteca TextBlob.
Lematizați întregul set de date.
Pasul 2 Analiza exploratorie a datelor
Până acum, am văzut diferitele tehnici de preprocesare a textului care trebuie făcute după obținerea datelor brute. După ce ne curățăm datele, acum putem efectua o analiză exploratorie a datelor și putem explora și înțelege datele text.
Frecvența cuvintelor în date
Numărarea cuvintelor unice din datele noastre oferă o idee despre termenii cei mai frecventi și mai puțin frecvenți ai datelor noastre. Adesea, renunțăm la comentariile cele mai puțin frecvente pentru a face formarea modelului nostru mai generalizată.
nltk
furnizează Freq_dist
clasă pentru a calcula frecvența cuvintelor și este nevoie de o pungă de cuvinte ca intrare.
all_words = [] pentru propoziție în df['processed']: all_words.extend(sentence.split())
all_words
Conține toate cuvintele disponibile în setul nostru de date. Adesea îi spunem vocabular.
import nltk nltk.Freq_dist(all_words)
Aceasta arată cuvântul ca cheie și numărul de apariții din datele noastre ca valoare.
Cloud Word
Wordcloud este reprezentarea picturală a frecvenței cuvintelor din setul de date. WordCloud este mai ușor de înțeles și oferă o idee mai bună despre datele noastre textuale.
bibliotecă wordcloud
Să creăm un nor de cuvinte în câteva rânduri de cod.
import biblioteci:
din wordcloud import WordCloud din wordcloud import STOPWORDS import matplotlib.pyplot ca plt
Putem desena un nor de cuvinte folosind text care conține toate cuvintele datelor noastre.
cuvinte = [] pentru mesaj în df['processat']: words.extend([cuvânt cu cuvânt în message.split() dacă cuvântul nu este în STOPWORDS]) wordcloud = WordCloud(lățime = 1000, înălțime = 500).generate( " ".join(words)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show()
background_color = 'white'
folosind acest parametru, putem schimba culoarea de fundal a norului de cuvinte.collocations = False
Păstrând-o ca fals, vor ignora cuvintele de colocare. Colocările sunt acele cuvinte care sunt formate din acele cuvinte care apar împreună. Adică acordați atenție, lucrări la domiciliu etc.- Putem regla înălțimea și lățimea folosind parametrii.
notițe : Înainte de a crea un nor de cuvinte, eliminați întotdeauna cuvintele oprite.
Note de sfârșit
În acest articol, am văzut diverse tehnici necesare pentru preprocesarea datelor textuale. După curățarea datelor, am efectuat o analiză exploratorie a datelor folosind un nor de cuvinte și am creat o frecvență a cuvintelor.
În al doilea articol al acestei serii, vom afla următoarele subiecte:
Sursa: https://www.analyticsvidhya.com/blog/2022/01/nlp-tutorials-part-i-from-basics-to-advance/
- "
- &
- Despre Noi
- TOATE
- analiză
- în jurul
- articol
- bunuri
- disponibil
- Pungă de cuvinte
- Noțiuni de bază
- bloguri
- apel
- șansele
- Schimbare
- Curățenie
- Cloud
- cod
- Codificare
- comentarii
- Informatică
- Calculatoare
- de date
- analiza datelor
- învățare profundă
- diferit
- Nu
- Picătură
- eficiență
- Engleză
- etc
- evoluţie
- First
- Repara
- urma
- genera
- obtinerea
- ajutor
- ajută
- istorie
- Acasă
- HTTPS
- idee
- important
- îmbunătățirea
- individ
- informații
- IT
- păstrare
- keras
- Cheie
- limbă
- laptop
- AFLAȚI
- învăţare
- lematizarea
- Bibliotecă
- masina de învățare
- Efectuarea
- mediu
- model
- mai mult
- nlp
- Plătește
- Popular
- prezicere
- furnizează
- Piton
- Crud
- date neprelucrate
- Citind
- reduce
- înlocui
- REZULTATE
- Returnează
- Recenzii
- norme
- Ştiinţă
- serie
- set
- Mărimea
- So
- Spaţiu
- Începe
- şedere
- tijă
- vorbesc
- tehnici de
- tensorflow
- împreună
- tokenizarea
- subiecte
- Pregătire
- tutoriale
- us
- obișnuit
- valoare
- cuvinte
- fabrică
- X
- zero