Skip to content

Simurg - Yazım Yardımcınız. Simurg Python ve PyQt5 işbirliği ile ClutchSoftware tarafından inşa edilmiş, Türkçe Doğal Dil İşleme alanında kaynak ve araç oluşturma amacı ile tasarlanmıştır.

License

Notifications You must be signed in to change notification settings

clutchsoftware/Simurg

Repository files navigation

Simurg N|Solid

Simurg Web Sayfası

Simurg Sunum Dosyası

Sunum Dosyası

Simurg Tanıtım Videosu

IMAGE ALT TEXT

Youtube Tanıtım Link

➤ Hepimiz Yazıyoruz

-----------------------------------------------------

Zaman zaman hepimiz yazı yazarız. Bu, kimi zaman bir makale kimi zamansa bir elektronik posta olur. Yazarken kimi yerde bilmeden hatalar yapar, kimi yerdeyse doğru sandığımız yapıları kullanırız. Bu tür durumların önüne geçmek için ise bir yazım yardımcısı gereksinimi hissederiz.

Simurg işte tam da o gereksinimi hissettiğimiz anda metinlerimizi düzenlemek için CLUTCH Yazılım Ekibi tarafından oluşturuldu.

NOT: Simurg'a verilen girdilerin Türkçe noktalama işareti kurallarına uygun olması gerekmektedir. Örnek:
Uzun süredir bu projede çalıştım (YANLIŞ)
Uzun süredir bu projede çalıştım. (DOĞRU)

➤ Yükleme Ve Çalıştırma

-----------------------------------------------------

$ git clone https://github.com/clutchsoftware/Simurg.git
$ cd Simurg
$ chmod +x script.sh
$ ./script.sh

➤ Simurg'un Kanatları

-----------------------------------------------------

Temel Fonksiyonlar

Yardımcı Fonksiyonlar

Eş Anlamlıyı Getir

-----------------------------------------------------

Metinlerimizi oluştururken kelime dağarcığımızın yetersizliği nedeniyle bazı kelimeleri birden fazla kez kullanabiliriz. Bu kullanım fazlalığı ise metin içindeki akışı bozabilir. Bozulan akışı düzeltmek için kelimelerin eş anlamlılarına hakim olmamız gerekir. Bu gereksinimi ortadan kaldırmak için ise Simurg'un Eş Anlamlıyı Getir fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
Öğrenci sınavın son sorusundaydı ama ne yapacağı hakkında en ufak fikri yoktu. Öğrenci son bir çırpınış sergileyerek arkadaşıyla göz göze gelmeye çalıştı.
from EsAnlamli import es_anlamli_kelimeler

es_anlamli_kelime_listesi = es_anlamli_kelimeler("öğrenci")
print(es_anlamli_kelime_listesi)
Output:

['talebe', 'şakirt', 'boşgut', 'mektep çocuğu', 'mektepli', 'okul çocuğu', 'okullu', 'tilmiz']

Doğru Bilinen Yanlışları Gör

-----------------------------------------------------

Gündelik hayatta konuşurken bizim de fark etmediğimiz bazı kelime veya tamlamalar yanlış olmasına rağmen doğruymuşcasına zihnimize yerleşmiştir. Yanlışlarımızı fark edip doğrularını öğrenmek ve metinlerimizde bu yanlışların önüne geçmek için Simurg'un Doğru Bilinen Yanlışları Gör fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
Eğer acenta hakkı elde edebilirsek işleri yoluna koyabiliriz.
from dogruYanlisKelime import dogruBilinenYanlislar

metin = "Eğer acenta hakkı elde edebilirsek işleri yoluna koyabiliriz."
duzeltilmis_metin = dogruBilinenYanlislar(metin)
print(duzeltilmis_metin)
Output:
"Eğer acente hakkı elde edebilirsek işleri yoluna koyabiliriz."

Kelime Kökeni Sorgula

-----------------------------------------------------

Çağımız şartları gereği dilimize birçok yabancı kelime nüfuz etmektedir. Dilimizin benliğini koruma bilincine sahip olmanın ne kadar önemli olduğunun farkındayız. Bu farkındalığı uygulamak için Simurg'un Kelime Kökeni Sorgula fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
kayıt - log
from KelimeturkceMi import kelime_Turkcemi

kelime = "kayıt"
kelime_turkce_mi = kelime_Turkcemi(kelime)
print(kelime_turkce_mi)

kelime2 = "log"
kelime_turkce_mi_2 = kelime_Turkcemi(kelime2)
print(kelime_turkce_mi_2)
Output:
True
False

Etken Edilgen Çatı Uyumsuzluğunu Farket

-----------------------------------------------------

Farkında olmasakta uzun cümleler kurduğumuzda cümlenin etken edilgen çatı uyumsuzluğunu göz ardı edebiliriz. Bu da bizim anlaşılabilirliği düşük cümleler kurmamıza sebebiyet verir. Cümlelerimizin anlaşılabilirliğini yükseltmek için Simurg'un Etken Edilgen Çatı Uyumsuzluğunu Farket fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
(YANLIŞ) Evden ne kadar erken çıksak da uçağa hareket saatinden önce yetişilemedi.
(DOĞRU) Evden ne kadar erken çıksak da uçağa hareket saatinden önce yetişemedik.
from EtkenEdilgen import etkenEdilgen

metin = "Evden ne kadar erken çıksak da uçağa hareket saatinden önce yetişilemedi."
etken_edilgen_uyumu = etkenEdilgen(metin)
print(etken_edilgen_uyumu)

metin2 = "Evden ne kadar erken çıksak da uçağa hareket saatinden önce yetişemedik.."
etken_edilgen_uyumu_2 = etkenEdilgen(metin2)
print(etken_edilgen_uyumu)
Output:
1
0

Özne Yüklem İlişkisini Gözden Geçir

-----------------------------------------------------

Bir topluluk adına veya çoğul konuştuğumuzda özne ve yüklem arasındaki ilişki uyumsuzluğunun gözden geçirilmesi gerekebilir. Çünkü bu tip durumlarda sıklıkla özne yüklem uyumsuzluğu hatası yapılır. Bu hatayı ortadan kaldırmak için Simurg'un Özne Yüklem İlişkisini Gözden Geçir fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
(YANLIŞ) İnsanlar buraya geldiler.
(DOĞRU) İnsanlar buraya geldi.
from OzneYuklemIliskisi import ozneYuklem

metin = "İnsanlar buraya geldiler."
ozne_yuklem_uyumu = ozneYuklem(metin)
print(ozne_yuklem_uyumu)

metin2 = "İnsanlar buraya geldi."
ozne_yuklem_uyumu2 = ozneYuklem(metin2)
print(ozne_yuklem_uyumu2)
Output:
1
0

Birleşik Kelimeleri Kopar

-----------------------------------------------------

Bazen yazılarımızın, metinlerimizin yetişmesi için hızlı yazmaya çalışırız. Bu hız esnasında birleşik olmaması gereken kelimeleri birleşik bir halde yazabiliriz. Bu tür durumlar kimi zaman gözden kaçabilir. Bunların düzeltilmesi için ise Simurg'un Birleşik Kelimeleri Kopar fonksiyonunu geliştirdik.

Alt Text

Örnek metin:
(YANLIŞ) TürkçeDoğalDilİşleme
(DOĞRU) Türkçe Doğal Dil İşleme
from KelimeAyirma import kelime_ayir_fonk

metin = "TürkçeDoğalDilİşleme"
ayrik_kelime = kelime_ayir_fonk(metin)
print(ayrik_kelime)
Output:
['türkçe', 'doğal', 'dil', 'işleme']
 türkçe doğal dil işleme

Simurg Kelime Temizle

-----------------------------------------------------

Simurg yapısı gereği hazır fonksiyonlara ihtiyaç duymaktadır. Bu hazır fonksiyonlarda bir tanesi olan Simurg Kelime Temizle kelimelerin başında veya sonunda bulunan noktalama işaretlerini temizleyerek kullanıma hazır kelimleri döndürür.

from SimurgKelimeTemizle import kelime_temizle

kelime = "acikhack."
temiz_kelime = kelime_temizle(kelime)
print(temiz_kelime)
Output:
"acikhack"

Simurg Cümle Oluştur

-----------------------------------------------------

Simurg yapısı gereği hazır fonksiyonlara ihtiyaç duymaktadır. Bu hazır fonksiyonlarda bir tanesi olan Simurg Cümle Oluştur metnin içinde bulunan noktalama işaretleri ile ayrılmış kelimeleri ayırarak her bir kelimeyi listeye ekleyip bir kelime listesi oluşturur.

from SimurgCumleOlustur import cumle_olustur

metin = "Acikhack'in yapmış olduğu yarışmaya katılacağız. Bunun için çok heyecanlıyız."
cumle_listesi = cumle_olustur(metin)
print(cumle_listesi)
Output:
["Acikhack'in yapmış olduğu yarışmaya katılacağız.", 'Bunun için çok heyecanlıyız.']

Simurg Tüyleri

-----------------------------------------------------

Simurg içinde kullanılan fonksiyonlar
Simurg'un has fonksiyonları:

  • Eş Anlamlıyı Getir**
  • Doğru Bilinen Yanlışları Gör
  • Kelime Kökeni Sorgula
  • Etken Edilgen Çatı Uyumsuzluğunu Farket
  • Özne Yüklem İlişkisini Gözden Geçir
  • Birleşik Kelimeleri Kopar
  • Simurg Kelime Temizle**
  • Simurg Cümle Oluştur**
    ** Fonksiyonları içinde sadece trnlp kütüphanesinden kelime kökleri ayırma fonksiyonu kullanılmıştır. Bunun haricinde hiçbir hazır fonksiyon kullanılmamıştır.
  • brolin59/trnlp kütüphanesi

Ekip Üyeleri

-----------------------------------------------------

@Zeki Ahmet Bayar

@Tuğba Fıçıcı

@Abdülkerim Aksak

@Muaz Dervent

Lisans

-----------------------------------------------------

Simurg MIT lisansı ile lisanslanmıştır.

About

Simurg - Yazım Yardımcınız. Simurg Python ve PyQt5 işbirliği ile ClutchSoftware tarafından inşa edilmiş, Türkçe Doğal Dil İşleme alanında kaynak ve araç oluşturma amacı ile tasarlanmıştır.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published