|
Bag of words-dan foydalaning va tasniflash uchun kalit so‘zlarni (xususiyatlarni) tanlang
|
bet | 3/4 | Sana | 07.12.2023 | Hajmi | 111,07 Kb. | | #113353 |
Bog'liq iqtisodiyot4 Bag of words-dan foydalaning va tasniflash uchun kalit so‘zlarni (xususiyatlarni) tanlang
Hamma so'zlarni hisobga olish: BoW modelida barcha ma'lumotlardan barcha so'zlar to'plamini olish.
Xususiyatlar (kalit so'zlar)ni tanlash: Umumiy ma'lumotlardan kalit so'zlarni aniqlash uchun, umumiy ko'p payt barcha ma'lumotlarning so'zlarini hisobga olish, ammo asosiy ma'lumotlarni belgilab qo'yishdan iborat bo'ladi. Misol uchun, frekans bo'yicha eng ko'p payt ishlatilgan so'zlar tanlanadi.
Xususiyatlarni aniqlash va tuzatish: Ko'p marta ishlatilgan so'zlar o'zaro bir xil tasnifda bo'lishi mumkin. Bu yerda umumiy ko'p payt ishlatilgan so'zlarni tanlashdan iborat bir qadamdan tashqari, ularga yuqori tartibda ko'rsatilgan ma'lumotlarni yuklab tashlash, o'zgartirish va nazorat qilish ham kerak bo'ladi.
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
vectorizer = CountVectorizer()
X_train_bow = vectorizer.fit_transform(X_train)
X_test_bow = vectorizer.transform(X_test)
classifier = MultinomialNB()
classifier.fit(X_train_bow, y_train)
y_pred = classifier.predict(X_test_bow)
accuracy = accuracy_score(y_test, y_pred)
print("Tasniflash natijasi:", accuracy)
Bu kodda CountVectorizer ma'lumotlar ustida BoW modelini yaratadi. Ushbu model xususiyatlarni (kalit so'zlar) aniqlaydi va har bir ma'lumotni ularning nechta marta ishlatilganligi bo'yicha tasvir qiladi. MultinomialNB klassifikatori bu xususiyatlarga asoslangan BoW modelini o'rganadi va test ma'lumotlarini baholaydi.
5 Har bir so‘z uchun ushbu so‘zning har bir sinfda paydo bo‘lish ehtimolini
hisoblang
Quyidagi kodda, MultinomialNB bayes klassifikatori va CountVectorizer BoW modeli ishlatiladi:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
X = ma'lumotlar_tayyor # ma'lumotlarning tayyorlangan shakli
y = labels # labels degan ma'lumotlar (ijobiy yoki salbiy) - o'zgaruvchi sifatida kiritilgan o'zingizning ma'lumotlariz bo'lishi mumkin
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
vectorizer = CountVectorizer()
X_train_bow = vectorizer.fit_transform(X_train)
X_test_bow = vectorizer.transform(X_test)
classifier = MultinomialNB()
classifier.fit(X_train_bow, y_train)
y_pred = classifier.predict(X_test_bow)
accuracy = accuracy_score(y_test, y_pred)
print("Modelni baholash natijasi:", accuracy)
Bu kod bo'yicha, X ma'lumotlarining har bir so'zi uchun ushbu so'zning har bir sinfda paydo bo'lish ehtimolini hisoblash uchun Bayes klassifikatori modelini ishlab chiqiladi. Natijalarni baholashda, modelning qanday chuqur tanlashi va ushbu tanlovning qanday baxolishi bilan tanishishingiz mumkin.
|
| |