41
Tabiiy tilni qayta ishlashda bag of words algoritmidan foydalanish
Mashinali oʻrganishda ishlatiladigan ma’lumotlar toʻplamlari
juda katta hajmda boʻlib, bir necha
ming yoki hatto millionlab
soʻzlardan iborat lugʻatni oʻz ichiga olishi mumkin. Shunday qilib,
soʻzlar jamlanmasidan foydalanishdan oldin matnni boshlangʻich
qayta ishlash lozim. BoW usuli samaradorligini
oshirishi mumkin
boʻlgan turli xil qayta ishlash bosqichlari mavjud boʻlib, ularning
ba’zilari ushbu maqolada batafsil keltiriladi.
Yuqoridagi misollarda BoW vektorini
hosil qilish uchun
lugʻatdagi barcha soʻzlardan foydalandik. Bu BoW modelini amalga
tatbiq qilishda bir qator murakkkabliklarni yuzaga keltiradi. Amalda
vektorni yaratish uchun lugʻatdan faqat bir nechta soʻzlar (eng koʻp
uchragan soʻzlar) ishlatiladi.
BoW usulini Pythonda amalga oshirish
BoW algoritmini Python tilida quyidagicha tatbiq qilamiz:
def vectorize(tokens):
vector=[]
for w in filtered_vocab:
vector.append(tokens.count(w))
return vector
def unique(sequence):
seen = set()
return [x for x in sequence if not (x in seen or seen.
add(x))]
# Nomuhim soʻzlar roʻyxatini
yaratish
stopwords=[“ham”,”bilan”,”chunki”,…]
# Maxsus belgilar roʻyxati
special_char=[“,”,”:”,” “,”;”,”.”,”?”,”-”]
# Korpusdagi gaplarni aniqlash
string1=”Adirlar ham bahorda lola bilan goʻzal,
chunki lola -
bahorning erka guli”
string2=”Lola ham shifokor boʻlib ishlaydi”
# soʻzni kichik harfga aylantirish
string1=string1.lower()
string2=string2.lower()
#
gaplarni tokenlarga ajratish
42
Botir ELOV, Nizomaddin XUDAYBERGANOV, Zilola XUSAINOVA
tokens1=string1.split()
tokens2=string2.split()
print(tokens1)
print(tokens2)
# lugʻat roʻyxatini tuzish
vocab=unique(tokens1+tokens2)
print(vocab)
# lugʻatlar roʻyxatini
filtrlash
filtered_vocab=[]
for w in vocab:
if w not in stopwords and w not in special_char:
filtered_vocab.append(w)
print(filtered_vocab)
# gaplarni vektorlarga aylantirish
vector1=vectorize(tokens1)
print(vector1)
vector2=vectorize(tokens2)
print(vector2)
___________
[‘adirlar’, ‘ham’, ‘bahorda’, ‘lola’, ‘bilan’, “goʻzal”, ‘,’, ‘chunki’, ‘lola’,
‘-’, ‘bahorningʻ, ‘erka’, ‘guli’]
[‘lola’, ‘ham’, ‘shifokor’, “boʻlib”, ‘ishlaydi’]
[‘adirlar’, ‘ham’, ‘bahorda’, ‘lola’, ‘bilan’, “goʻzal”, ‘,’, ‘chunki’, ‘-’,
‘bahorningʻ, ‘erka’, ‘guli’, ‘shifokor’, “boʻlib”, ‘ishlaydi’]
[‘adirlar’, ‘bahorda’, ‘lola’, “goʻzal”, ‘bahorningʻ, ‘erka’, ‘guli’,
‘shifokor’, “boʻlib”, ‘ishlaydi’]
[1, 1, 2, 1, 1, 1, 1, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 0, 1, 1, 1]