• Machine Learning uchun scikit-learn kutubxonasini ishlatish
  • Natural Language Processing (NLP) uchun SpaCy kutubxonasi




    Download 5,69 Mb.
    bet95/182
    Sana19.05.2024
    Hajmi5,69 Mb.
    #244351
    1   ...   91   92   93   94   95   96   97   98   ...   182
    Bog'liq
    Python sun\'iy intellekt texnologiyasi Dasrlik 2024

    Natural 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:

    Download 5,69 Mb.
    1   ...   91   92   93   94   95   96   97   98   ...   182




    Download 5,69 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Natural Language Processing (NLP) uchun SpaCy kutubxonasi

    Download 5,69 Mb.