|
So‘zlar sumkasi bilan bog’liq muammo
|
bet | 48/182 | Sana | 19.05.2024 | Hajmi | 5,69 Mb. | | #244351 |
Bog'liq Python sun\'iy intellekt texnologiyasi Dasrlik 2024So‘zlar sumkasi bilan bog’liq muammo
Hujjatda haddan tashqari ko‘p uchraydigan so‘zlar ustunlik qila boshlaydi, ammo ular ma’lumot mazmunini o‘z ichiga olmaydi. Bundan tashqari, uzunroq hujjatlar qisqaroq hujjatlarga qaraganda ko‘proq og’irlik qiladi.
Yechim
Biz so‘zlarning chastotasini ularning barcha hujjatlarda qanchalik tez-tez paydo bo‘lishiga qarab o‘zgartiramiz, shunda "in" kabi tez-tez so‘zlar uchun ballar jazolanadi. Ushbu yondashuv muddatli TF-IDF)'>Chastota- Teskari hujjat chastotasi (TF-IDF): deb ataladi.
Term Frequency: Bu joriy hujjatdagi so‘zning chastotasi bahosi.
Term Frequency= (Number of times k occurs in a document)/ (Number of words in the document)
Hujjatlarning teskari chastotasi: Bu soʻzning hujjatlarda qanchalik kam boʻlishini baholash.
Inverse Document Frequency = 1+log(N/n), where N= number of documents and n=number of documents with k occurred
TF-IDF= Term Frequency * Inverse Document Frequency
TF-IDFni quyidagi tarzda import qilish mumkin:
from sklearn.feature_extraction.text import TfidfVectorizer
Kosinus o‘xshashligi: Bu nolga teng bo‘lmagan ikkita vektor o‘rtasidagi o‘xshashlik o‘lchovidir. TF-IDF - bu vektor fazosida ikkita haqiqiy vektorni olish uchun matnlarga qo‘llaniladigan transformatsiya. Bu har qanday vektor juftining kosinus o‘xshashligini ularning nuqta mahsulotini olib, normalari ko‘paytmasiga bo‘lish orqali topishimiz mumkin. Bu vektorlar orasidagi burchakning kosinusini beradi. Ushbu formuladan foydalanib, biz a1 va a2 har qanday ikkita hujjat o‘rtasidagi o‘xshashlikni bilib olamiz.
Cosine Similarity (a1,a2)= Dot product(a1, a2)/||a1||*||a2||
Bu yerda a1 va a2 nolga teng bo‘lmagan vektorlar.
Chatbotni yarataylik, kerakli kutubxonalarni import qilish
import io
import random
import string
import warnings
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import warnings
warnings.filterwarnings(‘ignore’)
import nltk
from nltk.stem import WordNetLemmatizer
nltk.download(‘popular’, quiet=True)
Korpus
Ushbu korpusim sifatida “chatbotlar” uchun Vikipediya sahifalaridan foydalanardim. Tarkibni sahifadan nusxa ko‘chiring va uni “chatbot.txt” nomli matn fayliga joylashtiring. Biroq, siz tanlagan har qanday korpusdan foydalanishingiz mumkin.
|
| |