Natural Language Processing (NLP) uchun SpaCy kutubxonasi

|
Natural Language Processing (NLP) uchun SpaCy kutubxonasi
|
bet | 95/182 | Sana | 19.05.2024 | Hajmi | 5,69 Mb. | | #244351 |
Bog'liq Python sun\'iy intellekt texnologiyasi Dasrlik 2024Natural Language Processing (NLP) uchun SpaCy kutubxonasi:
SpaCy matnlarni analiz qilish, tokenizatsiya qilish va so‘zlar orasida bog’lanishlarni aniqlash uchun yaxshi bo‘lgan bir kutubxonadir. Uni o‘rnatish uchun quyidagi buyrni ishga tushiring:
pip install spacy
SpaCy-da avtomatik tanib olish va tasniflash uchun quyidagi funksiyalarni ishlatishingiz mumkin.
import spacy # SpaCy modelini o‘rnatish
nlp = spacy.load('en_core_web_sm')# Matnni qaytarib berish
doc = nlp("Bu avtomatik tanib olish misoli.")# So‘zlarni olish
words = [token.text for token in doc]
print(words)# So‘zlarni tanib olish
entities = [(ent.text, ent.label_) for ent in doc.ents]
print(entities)
Machine Learning uchun scikit-learn kutubxonasini ishlatish:
Scikit-learn, tahlil va tasniflash uchun keng qamrovli algoritmlarni o‘z ichiga olgan kutubxonadir. Uni o‘rnatish uchun quyidagi buyrni ishga tushiring:
pip install scikit-learn
Quyidagi misolni o‘zgartirib, sizning tasniflash modelini yaratishingiz mumkin:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline # Ma’lumotlar tayyorlash
texts = ["Matn 1", "Matn 2", "Matn 3"]
labels = [0, 1, 0] # Tasniflash uchun ma’lumotlar
# Tasniflash modelini yaratish
model = make_pipeline(CountVectorizer(), MultinomialNB())
model.fit(texts, labels)# Yangi matnni tasniflash
new_text = ["Matn yangi"]
result = model.predict(new_text)
print(result)
Bu misolda Multinomial NB klasifikatori ishlatilgan, lekin siz o‘zingiz uchun eng maqbul algoritmlarni tanlashingiz mumkin.
Bu misollar sizni boshlang’ich nuqtada boshlash uchun yaxshi bo‘lishi mumkin. Avval, matnlar uchun o‘zgaruvchilarni (feature) olishingiz, keyinchalik ma’lumotlar uchun modelni yaratish va uni o‘rganish uchun ma’lumotlarni bo‘lishingiz kerak.
Avtomatik tanib olish va tasniflash tizimlarini yaratish uchun Python-da bir nechta bo‘limlar mavjud. Bu, natural tillar, rasmlar, ma’lumotlar va boshqa mavzularni tanib olishning qanday amaliyoti qilinishini o‘rganish uchun mo‘ljallangan foydalanish mumkin. Quyidagi misolni ko‘rib chiqamiz, bu yerda mavzularni tanib olish va ularni tasniflash uchun bayonnoma yaratilgan:
# Python 3
import requests
from bs4 import BeautifulSoup
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn import metrics # 1. Maqolalarni tanib olish
def get_articles(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
articles = []
for article in soup.find_all('article’):
text = article.get_text()
articles.append(text)
return articles # 2. Maqolalar va turkumlarni yig’ish
positive_articles = get_articles('https://example.com/positive’)
negative_articles = get_articles('https://example.com/negative’)
# 3. Xususiyatlarni olish
X = positive_articles + negative_articles
y = ['positive’] * len(positive_articles) + ['negative’] * len(negative_articles)
# 4. Maqolalarni tasniflash uchun vectorizer yaratish
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(X)
# 5. Ma’lumotlarni o‘rganish uchun trening va test qismi ajratish
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 6. Klasifikatorni tuzish
classifier = MultinomialNB()
classifier.fit(X_train, y_train) # 7. Natijalarni baholash
y_pred = classifier.predict(X_test)
accuracy = metrics.accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')
Ushbu kod maqolalarni tanib olish uchun BeautifulSoup, turkumlarini aniqlash uchun TF-IDF (Term Frequency-Inverse Document Frequency) va tasniflash uchun Naive Bayes klasifikatori foydalanadi. Bu faqat o‘zgartirilishi mumkin bo‘lgan oddiy bir misol. Ma’lumotlar va vositalar o‘zgartirilganda, kodni ham moslashtirish kerak bo‘ladi.
Avtomatik tanib olish (natural language processing, NLP) va tasniflash tizimlarini yaratish uchun Python-da bir nechta yaxshi kutubxonalardan foydalanishingiz mumkin. Bu, matnlar bilan ishlash, matnlarni tahlil qilish, va ularga kategoriyalar tayyorlash uchun qulaydir.
Quyidagi kutubxonalardan foydalanishingizni tavsiya qilaman:
|
| |