Code Monkey home page Code Monkey logo

trnlp's Introduction

TRNLP(TR Natural Language Processing)

Türkçe Doğal dil işleme Python kütüphanesi

Klasör yapısı ve kullanılabilecek tüm komutlar için Türkçe Doğal Dil işleme Wiki sayfasını inceleyebilirsiniz.

İletişim :

[email protected]

Proje Sponsoru:

Patreon

Kurulum :

$ pip install trnlp

ya da;

trnlp klasörünü Python'un kurulu olduğu dizin içerisinde \Lib\site-packages\ dizininin içine kopyalamanız yeterlidir.

Kod ve dilbilgisi kuralları ile ilgili yaptığım yanlışlar için öneri ve uyarılarınızı bekliyorum.

trnlp GNU Genel Kamu Lisansı v3.0 ile lisanslanmıştır. Yani kısaca Lisans ve telif hakkı bildirimi yapılması, kodda yapılan değişikliklerin belgelendirilmesi, kaynak kodunun açık ve kullanılabilir olması ve aynı lisans altında yayınlanması şartları ile her şekilde kullanımı serbesttir ve yazılım ile ilgili hiçbir garanti verilmez. Gerekli tüm bilgiler zaten LICENSE.txt dosyasında ayrıntılı bir şekilde yazılmıştır.

Eminim bu konularda bilgisi benden çok daha iyi olan arkadaşlar bu paylaşımları bir üst seviyeye çıkarmamda bana yardımcı olabilirler. Hobi olarak başladığım bu projenin faydalı olması dileği ile...

trnlp her işlem için bir sözlüğe ihtiyaç duyar. trnlp'yi indirdiğinizde bu sözlüklerde beraberinde gelmiş olacaktır. Şu an için sözlüklerde bir değişiklik yapma ya da sözlüğe ekleme yapma özelliği bulunmamaktadır. Tüm sözlükler .pickle dosyası olarak kaydedilmiş ve erişime açıktır. Gelecek versiyonda sözlüğe veri ekleme özelliğini de eklemeyi düşünüyorum. Yine de gerekli sözlük formatına bağlı kalmak kaydı ile manuel değişiklikler yapılabilir.

Her bölüm için ayrıntılı anlatımlar ilgili wiki sayfasında mevcuttur.

Benim bilgisayarımda (İntel i5-2450M işlemci 4GB Bellek) kelime uzunluklarına bağlı olarak 1 saniyede yapılabilen analiz sayısı 2250 ile 3000 arasında değişmektedir.

Proje İlerlemesi:

  • Sözlük hazırlanması (Testler sırasında düzenlemeler yapılacak)
  • Heceleme algoritması.
  • Türkçe ses uyumları kontrolü.
  • Kelime bazlı kök/gövde ve eklerin bulunması (Testler sırasında düzenlemeler yapılacak).
  • Cümle ayırma. (Testler sırasında düzenlemeler yapılacak).
  • Yanlış yazılan kelimelerin bulunması ve doğru yazımına dair öneride bulunulması ya da otomatik olarak düzeltilmesi (Testler sırasında düzenlemeler yapılacak).
  • Eklerin ve ek kontrollerinin düzeltilmesi.
  • Paket oluşturma (Testler sırasında düzenlemeler yapılacak).
  • Cümle analizi yapılması ve cümlenin öğelerine ayrılması.

Sıkça Sorulan Sorular :

Morfolojik analizde aradığım sonuç tüm analizler içerisinde olmasına rağmen tek sonuç istediğimde farklı çözüm yapıyor. Bunun sebebi nedir?

Türkçenin yapısından dolayı bir kelime için, ek almış ya da almamış olsun, birden fazla çözümleme yapılabilmektedir. Örneğin "kanat" kelimesini değerlendirirsek;

from trnlp import TrnlpWord

obj = TrnlpWord()
obj.setword("kanat")

for analiz in obj.get_inf:
    print(writeable(analiz))
        
>> kanat(isim)
   Kanat(özel) # TDK'ya göre erkek ismi
   kan(isim)+a{İf}[5_17]+t{Ff}[6_8] # -a isimden fiil yapma eki bir süreliğine eklerden çıkarıldı. Şu anda analiz sonucu "kana(fiil)+t{Ff}[6_8]" şeklinde dönecektir.
   
print(obj)

>> kan(isim)+a{İf}[5_17]+t{Ff}[6_8]
   

Üç çözüm de doğrudur. "print(obj)" dediğimizde tek sonuç döndürmesini hedeflediğimiz için aralarından bir tanesini seçmek zorundayız. trnlp belirli kriterler çerçevesinde bir seçim yaparak tek sonucu döndürür. Sizin elde etmek istediğiniz sonuç "kanat(isim)" olsa da trnlp kan(isim)+a{İf}[5_17]+t{Ff}[6_8] sonucunu döndürecek ve kelimenin kökünü "kan", kök türünü "isim", gövdesini "kanat" ve gövde türünü "fiil" olarak döndürecektir.

Kriterlerimizi tam tersine çevirsek ve önceliği fiillere değil de isimlere versek olmaz mı?

Bu durumda yukarıda bahsettiğim sonucun tersi yaşanacağından yine çözüm sağlanamayacaktır. Bu sefer de "kanat-" fiilini bulmak isteyen bir kişi için yanlış sonuç dönmüş olacaktır. Bunun tek çözümü cümle analizi yapabilmek ve kelimeyi cümle içerisindeki görevine göre tahlil etmek olacaktır.

trnlp's People

Contributors

brolin59 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.