Milliy korpusini



Download 25,86 Kb.
bet1/2
Sana30.12.2021
Hajmi25,86 Kb.
#87315
  1   2
Bog'liq
Corpora Maqola 03-03-2020 1


O‘zbek tilining “ Milliy korpusini ” dasturiy ta’minotini yaratish

Sharipov.M.S,Kurbanova.L.U
Hozirgi kunda nafaqat tilshunoslikda, balki tarjima nazariyasi va amaliyotida ham korpus lingvistikasi, milliy korpus terminlari keng qo‘llanilib,bu sohada ingliz, ispan, fransuz, nemis, rus va boshqa ko‘plab tillarda axborot texnologiyalariga asoslangan samarali nazariy va amaliy ishlar, tadqiqotlar, loyihalar bajarildi va bajarilmoqda. O‘zbek tilida esa bu borada ko‘zga ko‘rinarli hech qanday ish qilinmagani achinarli[2].

Korpus-bu matn yoki nutq bo‘lib,u muloqot doirasida ham yuzaga kelishi mumkin.Badiiy adabiyotlar,turli xil gazeta nashriyotidagi ma’lumotlar,internet sahifasi ma’lumotlari ham korpus bo‘la oladi. Ko‘rpuslarning turlari ko‘p va u har bir yaratuvchining fantaziyasidan kelib chiqqan holda qonun qoidalar asosida yaratiladi.

O‘zbek tilining milliy korpusi uchun dastur yaratish maqsadida Python dasturlash tilining tabiiy tillar bilan ishlash uchun mo`ljallangan kutubxona (NLTK-Natural Language Toolkit)ni o`rganish va uning yordamida dastur yaratish maqasad qilib qo`yildi. Maqsadga erishish uchun quyidagilarni amalga oshirish kerak:

1. Hozirgacha yaratilgan mavjud boshqa tillarning korpuslarini yartilish usullarini o`rganib chiqish va yaratish texnologiyalarini tanlash;

2.Python dasturlash tilini va NLTK kutubxonasini o`rnatish va sozlashni amalga oshorish;

3.Korpus uchun tanlangan matnlar bazasini tshkil qilish va guruhlashtirish;

4.Dasturiy ta’minot uchun algoritm ishlab chiqish;

5.Dasturni yaratish va undan foydalanish bo`yicha ko`rsatma yozish;

Maqsadga erishish uchun amalga oshirilgan ishlarni sanab o`tamiz:

Ingliz tilidagi birinchi korpus bu Brown korpusi bo’lib,u 1961-yilda Amerika Qo‘shma Shtatlarining Braun universitetida yaratilgan. Brown korpusi ingliz tilidagi birinchi million so‘zli korpus bo‘lib,u 500 manbadan iborat matnni o‘z ichiga olgan va manbalar, yangiliklar, tahririyat kabi janr bo‘yicha tasniflangan. Biz korpusga so‘zlar ro‘yxati yoki jumlalar ro‘yxati sifatida kirishimiz mumkin(bu yerda bir jumlanng o‘zi so‘zlarning ro‘yxati). Korpusdan ma`lumotlarni o‘qish uchun muayyan toifalar yoki fayllarni belgilashimiz mumkin masalan:

>>> from nltk.corpus import brown

>>> brown.categories()

['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies',

'humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance',

'science_fiction']

>>> brown.words(categories='news')

['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]

>>> brown.words(fileids=['cg22'])

['Does', 'our', 'society', 'have', 'a', 'runaway', ',', ...]

>>> brown.sents(categories=['news', 'editorial', 'reviews'])

[['The', 'Fulton', 'County'...], ['The', 'jury', 'further'...], ...]

Yuqoridagi kodlar bajarilgandan keyin korpusni yuklab olinadi, va kategoriyalar ro`yxati chiqariladi, kerakli kategoriyalar tanlab olinadi.

Brown Corpus-bu stilistik deb nomlanadigan tilshunoslik so‘rovining bir turi, janrlar orasidagi muntazam farqlarni o‘rganish uchun qulay manba. Modal fe’llardan foydalanishdagi janrlarni taqqoslaylik. Birinchi qadam ma’lum bir janr uchun hisoblarni ishlab chiqishdir. Quydagi ammallarni bajarishdan oldin nltk dasturi import qilinishi lozim.

>>> from nltk.corpus import brown

>>> news_text = brown.words(categories='news')

>>> fdist = nltk.FreqDist([w.lower() for w in news_text])

>>> modals = ['can', 'could', 'may', 'might', 'must', 'will']

>>> for m in modals:

... print m + ':', fdist[m],

...


can: 94 could: 87 may: 93 might: 38 must: 53 will: 389

Keyingi galda biz Brown corpusining boshqa qismini tanladik va oldingi misolga moslab oldik, masalan yuqoridagi modal fe`llarning korpusda qatnashishlar sonini aniqlab oldik. Endi navbatda biz kesh janri uchun hisob-kitoblarni olishimiz kerak. Biz shartli chastatalarni taqsimlash uchun NLTK-ning yordamidan foydalanamiz va quydagi kod satrlarini ajratib olamiz va natijani ko‘rishimiz mumkin.

>>> cfd = nltk.ConditionalFreqDist(

... (genre, word)

... for genre in brown.categories()

... for word in brown.words(categories=genre))

>>> genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor']

>>> modals = ['can', 'could', 'may', 'might', 'must', 'will']

>>> cfd.tabulate(conditions=genres, samples=modals)

can could may might must will

news 93 86 66 38 50 389

religion 82 59 78 12 54 71

hobbies 268 58 131 22 83 264

science_fiction 16 49 4 12 8 16

romance 74 193 11 51 45 43

humor 16 30 8 8 9 13

Yangiliklar janrida eng ko‘p uchraydigan modal, romantik janrda eng kam uchraydigan modal bo‘lishi mumkinligiga e’tibor bering. Buni bashorat qilgan bo’larmidingiz? So‘zlar soni janrlani ajratib turadi.

Reuters Corpus jami 1,3 million so‘zni o‘z ichiga olgan 10888 yangilik hujjatlarni o‘z ichiga oladi. Hujjatlar 90 ta mavzularga bo‘lingan va “Mashq qilish” va “Test” deb nomlangan ikkita to‘plamga guruhlangan; Shunday qilib “test/14826” faylli matn test to‘plamidan olingan hujjatdir.

>>> from nltk.corpus import reuters

>>> reuters.fileids()

['test/14826', 'test/14828', 'test/14829', 'test/14832', ...]

>>> reuters.categories()

['acq', 'alum', 'barley', 'bop', 'carcass', 'castor-oil', 'cocoa',

'coconut', 'coconut-oil', 'coffee', 'copper', 'copra-cake', 'corn',

'cotton', 'cotton-oil', 'cpi', 'cpu', 'crude', 'dfl', 'dlr', ...]

Brown korpusidan farqli o‘lroq, Reuters Corpus kategoryalari bilan bir-biriga zid keladi, chunki yangiliklar ko‘pincha bir nechta mavzularni qamrab oladi. Bu corpusning yana bitta qulayligi shundaki u bitta faylni yoki fayllar ro‘yxatini qabul qiladi, shu sababdan fayllar yoki kategoryalar nuqtai nazaridan biz o‘zimizga kerakli bo‘lgan so‘zlarni yoki jumlalarni belgilashimiz mumkin.

>>> reuters.categories('training/9865')

['barley', 'corn', 'grain', 'wheat']

>>> reuters.categories(['training/9865', 'training/9880'])

['barley', 'corn', 'grain', 'money-fx', 'wheat']

>>> reuters.fileids('barley')

['test/15618', 'test/15649', 'test/15676', 'test/15728', 'test/15871', ...]

>>> reuters.fileids(['barley', 'corn'])

['test/14832', 'test/14858', 'test/15033', 'test/15043', 'test/15106',

'test/15287', 'test/15341', 'test/15618', 'test/15618', 'test/15648', ...]

Ushbu har bir matndagi so‘zlar sarlavhalar bo‘lib,ular qonun qoida bo‘yicha bosh harf sifatida saqlanadi.

>>> reuters.words('training/9865')[:14]

['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', 'BIDS',

'DETAILED', 'French', 'operators', 'have', 'requested', 'licences', 'to', 'export']

>>> reuters.words(['training/9865', 'training/9880'])

['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', ...]

>>> reuters.words(categories='barley')

['FRENCH', 'FREE', 'MARKET', 'CEREAL', 'EXPORT', ...]

>>> reuters.words(categories=['barley', 'corn'])

['THAI', 'TRADE', 'DEFICIT', 'WIDENS', 'IN', 'FIRST', ...]

2.Python dasturlash tilini va NLTK kutubxonasini o`rnatish va sozlashni amalga oshorish;

Biz ishni python dasturlsh tilini o`rnatish va sozlasdan boshlaymiz. Browser orqali http://python.org/ saytdan kompyuterimizning operatsion sistemasiga mos bo‘lgan python dasturlash tilining so‘ngi versiyasini yuklab olamiz va uni o`rnatamiz. Python dasturlash tilining o`rnatilganligini tekshirish uchun cmd rejimiga o`tib python deb yozsak ishga tushishi kerak va ekranda “>>>” taklif belgisi paydo boladi.

NLTK kutubxonasini o`rnatishni quyidagicha amalga oshiramiz:

>>>import nltk

>>>nltk.dowland()

Showing info http://www.nltk.org/nltk_data/

True


>>>from ntk.tokenize import word_tokenize

>>>word_tokenize(“ Salom quyosh”)

[“Salom” ,“quyosh”]

>>>


Har safar nltk kutubxonasini import qilish kerak.

3.Korpus uchun tanlangan matnlar bazasini tshkil qilish va guruhlashtirish uchun bizga *.txt kengayrmali fayllar kerak bo`ladi. Tayyorlangan fayllarni “ C:\users\user\nltk.data\corpora ” katalogiga yozamiz va undan keyin korpus uchun ishlatiladigan nltk ning hamma funksiyalari bizning korpus uchun ham ishladigan boladi. Buni quyidagi dastur yordamida tekshirib ko`rishimiz mumkin:




Download 25,86 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish