Package: dizge
dizgeimport dizgeGirişdizge,Ankara Üniversitesi diLabDDİ çalışma grubu (Mehmet Umut Mutlu, Nazlıcan Yetimaslan, İlker Atagün) tarafından Python için geliştirilen Türkçe dilbilim analiz aracıdır. Kütüphanenin içeriği, biri Nesne Tabanlı Programlama (OOP) mantığıyla oluşturulmuşcompetence(edinç) adlı, diğeriyse sesbilimsel süreçlerin kural tabanlı (rule-based) olarak işlendiğitools(araçlar) adlı iki temel modülden oluşmaktadır. Aracın bu sürümünde (v0.1.4) seslem analizi ve fonetik çevriyazı gibi sesbilimsel fonksiyonlar bulunmaktadır.dizge'nin teorik arkaplanını aşağıdaki kaynaklar oluşturmaktadır:Ergenç, İ. ve Uzun, İ. P. (2020).Türkçenin ses dizgesi(2. baskı). Seçkin Yayınevi.IPA Chart,http://www.internationalphoneticassociation.org/content/ipa-chart, available under a Creative Commons Attribution-Sharealike 3.0 Unported License. Copyright © 2018 International Phonetic Association.Kütüphanemizden yararlandığınız çalışmalarınızda, bizden aşağıdaki gibi söz edebilirsiniz:Mutlu, M. U., Yetimaslan, N. ve Atagün, İ. (2021). dizge. https://github.com/mehmetumutmutlu/dizgeNasıl Kullanılır?Paketi Yükleme ve ÇalıştırmaKütüphanemizi GitHub üzerinden indirip veya pip aracı yardımıyla (pip install dizge) sisteminize kurabilirsiniz. Bunun ardından kütüphaneyi aşağıdaki gibi çalıştırabilirsiniz.importdizgeVeri Yüklemedizge'de analiz edeceğiniz veri yaxlsxveyacsvgibi tablo tabanlı bir biçimde ya datxtgibi düz metin formatında olabilir. Bu veriyi çalışma dizininize eklemek için harici paketler veya Python'ın built-in fonksiyonlarını kullanabilirsiniz, bu tamamen tercihinize bağlıdır. Aşağıda bir örnek kullanım paylaşılmıştır:data=open('data/sample.txt','r',encoding="utf-8").read()Veriyi yukarıdaki gibi yükledikten sonra veri içinde kullanacağınız bölümü çözümleme öncesinde standardize etmeniz gerekmektedir. Bunun için kütüphane içindekistandardize()fonksiyonunu kullanmanız gerekir. Şimdi örnek üzerinden anlatalım:words=dizge.standardize(data)competenceModülü Fonksiyonlarıdizge'nin içinde Türkçenin ses dizgesine ait bazı bilgiler Nesne Tabanlı Programlama mantığıyla eklenmiştir. Bu bilgilere ulaşım oldukça kolaydır. Örneğin ünlü veya ünsüzlerin dökümünü aşağıdaki gibi bir kod ile alabilirsiniz:foriin[vars(phoneme)forphonemeindizge.vowels]:print(i)foriin[vars(phoneme)forphonemeindizge.consonants]:print(i)Aynı zamanda bir sesin, edinçteki özelliklerini sorgulayabileceğiniz fonksiyonlar dacompetencemodülü içinde tanımlanmıştır. Bunlar:isVowel(),isUnrounded(),isRounded(),isClose(),isCloseMid(),isOpenMid(),isOpen(),isFront(),isCentral(),isBack(),isConsonant(),isPlosive(),isNasal(),isTrill(),isTaporFlap(),isFricative(),isLateralFricative(),isApproximant(),isLateralApproximant(),isBilabial(),isLabiodental(),isDental(),isAlveolar(),isPostalveolar(),isRetroflex(),isPalatal(),isVelar(),isUvular(),isPharyngeal(),isGlottal(),isVoiced(),isVoiceless()toolsModülü FonksiyonlarıBu modülde G2P ve seslem analizi gibi sesbilimsel süreçler ile ilgili bazı fonksiyonlar bulunmaktadır. Bunları yukarıda hazır hale gelirdiğimiz veri üzerinde tek tek yapabileceğimiz gibi bir sonraki başlıkta anlatacağımız çözümleyici aracıyla toplu bir şekilde de yapabilirsiniz.Türkçede <ğ> yazıbiriminin sessel karşılığının olmaması nedeniyle, bu yazıbirim ünlü kayması, uzama gibi çeşitli görevler üstlenmektedir. PaketimizdekisoftG()fonksiyonu <ğ> yazıbiriminin gerçekleşme biçimlerini göstermektedir.>>>dizge.softG('dağ')'daː'>>>dizge.softG('göğüs')'göːüs'>>>dizge.softG('eğlence')'eylence'Bir sözcüğün seslem analizini farklı biçimlerde yapabilirsiniz. Örneğin, ortografi temelli olarak ve herhangi bir önişlem yapmadan gerçekleştirmek istiyorsanızsyllable_o()fonksiyonunu kullanabilirsiniz.>>>dizge.syllable_o('afyonkarahisarlılaştıramadıklarımızdanmışçasına')['af','yon','ka','ra','hi','sar','lı','laş','tı','ra','ma','dık','la','rı','mız','dan','mış','ça','sı','na']Seslem analizini fonetik temelli yapmak istersenizsyllable_p()fonksiyonunu kullanabilirsiniz.>>>dizge.syllable_p('afyonkarahisarlılaştıramadıklarımızdanmışçasına')[('ɑf','VC'),('jɔŋ','CVC'),('kɑ','CV'),('ɾɑ','CV'),('çI','CV'),('sɑɾ','CVC'),('łɨ','CV'),('łɑʃ','CVC'),('tɨ','CV'),('ɾɑ','CV'),('mɑ','CV'),('dɨk','CVC'),('łɑ','CV'),('ɾɨ','CV'),('mɨz','CVC'),('dɑn','CVC'),('mɨʃ','CVC'),('tʃɑ','CV'),('sɨ','CV'),('nɑ','CV')]Yukarıdaki analizde hangi seslem örüntüsünden kaç tane olduğunu hesaplamak içincountSyllable()fonksiyonunu kullanabilirsiniz.>>>dizge.countSyllable('afyonkarahisarlılaştıramadıklarımızdanmışçasına'){'VC':1,'CVC':7,'CV':12}Kütüphanenin sesbilimsel araştırmalara sunacağını düşündüğümüz en büyük katkı da kararlı bir G2P (grapheme-to-phoneme) fonksiyonu sayesinde çevriyazı sunmasıdır. Bunun içing2p()fonksiyonu kullanılabilir.>>>dizge.g2p('afyonkarahisarlılaştıramadıklarımızdanmışçasına')'ɑfjɔŋkɑɾɑçIsɑɾłɨłɑʃtɨɾɑmɑdɨkłɑɾɨmɨzdɑnmɨʃtʃɑsɨnɑ'ÖNEMLİ NOTReferanslarımızdan farklı olarak uzamanın iki biçiminden (tam ve yarım uzama) yalnızca tam uzamayı işledik. Önümüzdeki sürüm güncellemelerinde yarım uzamanın da eklenmesi düşünülmektedir. Ayrıca kaynaklarımızda konuşma dili üzerinden sunulan alternatifli çevriyazılar için fonksiyonumuz da alternatif bir çıktı vermektedir. Kullanıcılar istedikleri çıktıyı indexing yöntemi ile seçebilirler.Analiz ve Çıktı AlmaBir önceki başlıkta anlatılan araçlardan bir veya birkaçını bir veri seti üzerinde çalıştırıp bütüncül bir çıktı almak içinanalyze()fonksiyonunu kullanabilirsiniz. Bu fonksiyon ilki verinin kendisi, ikincisi de istediğiniz araçların adlarından oluşan bir liste olmak üzere iki zorunlu parametreden oluşmaktadır.>>>words=["ankara","dil","bilim","dilbilim"]>>>result=dizge.analyze(words,["g2p","syllable_o","syllable_p","countSyllable","harmony"])Planlanan GüncellemelerKütüphaneyle entegre çalışan bir web servisiSesbilimsel süreçlerle ilgili ek fonksiyonlarBiçimbilimsel çözümleyici