Sharof rashidov nomidagi samarqand davlat universiteti intellektual tizimlar va dasturlash




Download 1,02 Mb.
Pdf ko'rish
bet5/9
Sana04.06.2024
Hajmi1,02 Mb.
#259904
1   2   3   4   5   6   7   8   9
Bog'liq
Kurs ishi Ismatov I

ham kelmoq qish AVG TF-IDF(D1)
0.0 0.0 0.0 0.000000 
 
TF-IDF(D2)
0.0 0.0 0.022011 0.007337
TF-IDF(D3)
0.0 0.07952 0.029349 0.036290
Yuqoridagi natijalarni tahlil qilish natijasida “ham” so‘zining barcha 
hujjatlarning TF-IDF qiymatiga ta’sir ko‘rsatmasligini aniqlash mumkin. Chunki, 
“ham” barcha hujjatlarda uchraydi va shu sababli u ushbu korpus uchun 
nomuhim so‘z
hisoblanadi. Stiven E. Robertson va Karen Spärk Jons tomonidan 
ishlab chiqilgan ehtimollik qidiruv tizimiga asoslangan Okapi BM25 
[https://en.wikipedia.org] funksiyasi yordamida hujjatlar reytingini aniqlash 
algoritmlari ham mavjud bo‘lib, ular yordamida tahlil samaradorligini yanada 
oshirish imkoniyati taqdim etiladi. Xulosa sifatida, D1, D2 va D3 hujjatlar 
to‘plami bo‘yicha so‘rovni bajarishda reyting natijalari quyidagicha bo‘ladi: 
Q:
Qish ham keldi.
D3:
O‘lkamizga qish fasli ham kirib keldi.
D2:
Qor yog‘masa, qish faslining qizig‘i ham yo‘qday go‘yo.
D1:
Qor parchalari ham bir biriga aslo o‘xshamaydi.
Yuqorida keltirilgan TF-IDF qiymatlarni hisoblashlarni Python yili vositalari 
yordamida amalga oshiramiz va olingan natijalar tahlilini taqdim etamiz:
# so‘rov
wd=
‘Qish ham keldi’
.lower() 
# Tokenizatsiya + Lemmatizatsiya
LWd=tolist(Lemma(wd))
# Umumiy lug‘atni shakllantirish
wordSetWd = set(LWd)
# DataFrame ni shakllantirish
df3 = pd.DataFrame(columns = wordSetWd,
index = [
‘TF(D1)’

‘TF(D2)’

‘TF(D3)’

‘IDF’
])
# TF qiymatlarni hisoblash metodi
def
TermFreq(word, document, id):
N = len(document)
occurance = len([token 
for
token 
in
document 
if
token == word])
return
occurance/N
# IDF qiymatlarni hisoblash metodi 
def
InverseDocFreq(word):
try
:
word_occurance = sum(df1[word].values.tolist())
except
:
word_occurance = total_documents
return
np.log10(total_documents/word_occurance)
# TF qiymatlarni hisoblash
for
word 
in
wordSetWd:
df3[word][
0
]=TermFreq(word, bowA, 
0
) df3[word][
1
]=TermFreq(word, 


bowB, 
1
) df3[word][
2
]=TermFreq(word, bowC, 
2
)
df3[word][
3
]=InverseDocFreq(word)
# TF-IDF qiymatlarni hisoblash
df4 = pd.DataFrame(columns = 
wordSetWd,
index = [
‘TF-IDF(D1)’

‘TF-IDF(D2)’

‘TF-IDF(D3)’
]) 
for
word 
in
wordSetWd:
df4[word][
0
]=df3[word][
0
]*df3[word][
3
]
df4[word][
1
]=df3[word][
1
]*df3[word][
3
]
df4[word][
2
]=df3[word][
2
]*df3[word][
3
]
# O‘rta arifmetik qiymatni aniqlash
df4[
‘AVG‘
]=df4.sum(axis=
1
)/total_documents
# Tartiblash va natijasni chiqarish
df5=df4.sort_values(by=[
‘AVG‘
], ascending=
False

print
(df5)
O‘zbek tili korpusidagi matnlar va berilgan so‘rovga mos TF-IDF 
qiymatlarni hisoblashda tokenlarga ajratish yoki lemmatizatsiya asosida tahlilni 
amalga oshirish mumkin [http://uzschoolcorpara.uz]. Faqat tokenlar asosida tahlil 
qilinganda turlicha TF-IDF qiymatlari hosil qilinadi [http://uznatcorpara.uz]: 

Download 1,02 Mb.
1   2   3   4   5   6   7   8   9




Download 1,02 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Sharof rashidov nomidagi samarqand davlat universiteti intellektual tizimlar va dasturlash

Download 1,02 Mb.
Pdf ko'rish