-rasm. Tokenizatsiya va lemmatizatsiya jarayonining farqi




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

3-rasm. Tokenizatsiya va lemmatizatsiya jarayonining farqi 


Korpus matnlari uchun TF-IDF qiymatlarni hisoblash. 
Yuqorida keltirilgan fikr-mulohazalar asosida berilgan D1, D2 va D3 ta 
hujjatlar uchun TF-IDF qiymatlarni hisoblash ketma-ketligini ko‘rib chiqamiz.
TF-IDF qiymatlarni Pythonda hisoblash. 
TF-IDF qiymatlarni Python 
vositalari yordamida hisoblash ketma-ketligini shakllantiramiz. So‘ngra, biz 
jarayonni avtomatlashtirish uchun 
sklearn paketi
dan foydalanishni ko‘rib 
chiqamiz. 
computeTF
funksiyasi orqali hujjat boʻyicha korpusdagi har bir soʻz 
uchun TF qiymat hisoblanadi. 
 
def
computeTF(wordDict, bow): tfDict={} bowcount=len(bow)
for
word,count 
in
wordDict.Items(): tfDict[word]=count/float(bowcount)
return
tfDict 
computeIDF
funksiyasi korpusdagi har bir so‘zning IDF qiymatini 
hisoblaydi:
def
computeIDF(docList):
import
math idfDict={} N=len(docList)
idfDict=dict.fromkeys(docList[
0
].keys(),
0
)
for
doc 
in
docList:
for
word, 
val 
in
doc.Items():
if
val>
0
:
idfDict[word]+=
1
for
word, val 
in
idfDict.Items():
idfDict[word]=math.log10(N/float(val))
return
idfDict
Quyidagi 
computeTF-IDF
funksiyasi TF va IDF qiymatlarni ko‘paytirish 
orqali har bir so‘z uchun TF-IDF qiymatni hisoblaydi:
def
computeTFIDF(tfBow, idfs): tfidf={}
for
word,val 
in
tfBow.items(): tfidf[word]=val*idfs[word]
return
tfidf
TF-IDF qiymatlarni Pythonda hisoblashning yakuniy qadamlari quyida 
keltirilgan:
# Korpus hujjatlari
docA = 
‘Qor parchalari ham bir biriga aslo o‘xshamaydi’
docB = 
‘Qor yog‘masa, qish faslining qizig‘i ham yo‘qday go‘yo‘
docC = 
‘O‘lkamizga qish fasli ham kirib keldi’
# Tokenizatsiya
bowA = docA.split(
‘ ‘
) bowB = docB.split(
‘ ‘
) bowC = 
docC.split(
‘ ‘
)
# Umumiy lug‘atni shakllantirish
wordSet = set(bowA).union(set(bowB)).union(set(bowC))
wordDictA = dict.fromkeys(wordSet, 
0
) wordDictB = 
dict.fromkeys(wordSet, 
0
) wordDictC = dict.fromkeys(wordSet, 
0
)
# Chastotani aniqlash
for
word 
in
bowA:
wordDictA[word]+=
1
for
word 
in
bowB:
wordDictB[word]+=
1
for
word 
in
bowC: wordDictC[word]+=
1

BoW raqamli vektorini chop qilish
import
pandas 
as
pd
print
(pd.DataFrame([wordDictA, wordDictB, wordDictC])) 



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



-rasm. Tokenizatsiya va lemmatizatsiya jarayonining farqi

Download 1,02 Mb.
Pdf ko'rish