zemberek example for python

This code is a small example python script for zemberek jar.

#!/usr/bin/python

# -*- coding: utf-8 -*-import os

import os
d=os.path.dirname(__file__)

os.environ['JAVA_HOME']="/usr/lib/jvm/java-8-oracle"

os.environ["CLASSPATH"] = os.path.join(os.path.join(d,"jar"),"zemberek-tum-2.0.jar")

os.environ.update()

from jnius import autoclass
 
#java kutuphaneleri

zemberek_class=autoclass('net.zemberek.erisim.Zemberek') #Javadan zemberek sinifi cagriliyor

turkiye_turkcesi=autoclass('net.zemberek.tr.yapi.TurkiyeTurkcesi') #Turkce dili yukleniyor

KelimeTipi=autoclass('net.zemberek.yapi.KelimeTipi')

JList=autoclass('java.util.List')
ZEMBEREK=zemberek_class(turkiye_turkcesi())
word="Merhaba ben Mehmet size nasıl yardımcı olabilirim Ali Bey.\

Amaç bir kelimenin önce çözümlenip daha sonra çözümleme içerisindeki kök \

ve ekler de kullanılarak tekrar birleştirilmesidir.".decode("utf-8")
dict_word=word.split(".")

kokList=[]

BAGLAC=["ve","de","daha","sonra","önce".decode("utf-8")]
for j in range(0,len(dict_word)):

dict_wordTemp=dict_word[j].split(" ")

kokListTemp=[]

for i in range (0, len(dict_wordTemp)):

if ZEMBEREK.kelimeDenetle(dict_wordTemp[i]):

sonuc = ZEMBEREK.kelimeCozumle(dict_wordTemp[i])

kelime = sonuc[0]
 
if (str(kelime.kok().icerik()).decode("utf-8") in BAGLAC):

print "Bağlaç :".decode("utf-8") + str(kelime.kok().icerik()).decode("utf-8")

else:

print "Kök :".decode("utf-8") + str(kelime.kok().icerik()).decode("utf-8")

kokListTemp.append(str(kelime.kok().icerik()).decode("utf-8"))

kokList.append(kokListTemp)

Semiha Makinist Uzman on 14 Ocak 2016 yazdı
Yorum Ekle
  • 15 Yanıt(lar)

    Eveett nihayet Zemberek Python’dan kullanabildim.
    Aşağıdaki örnek kodun ilgilenenlere faydalı olmasını temenni ederim.

    Semiha hocam jpype ile çözdüm. Yardımın ve desteğin için çok teşekkür ederim.
    Python konusunda sorunlarım olduğunda size danışabilir miyim? İyi günler…

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    
    # [PACKAGE KURULUMU] :       pip install JPype1-py3
    # [KAYNAK] : http://stackoverflow.com/questions/35736763/practical-use-of-java-class-jar-in-python
    #            https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html
    #            http://iacobelli.cl/blog/?p=119
    #            https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html
    
    
    import jpype
    import os
    
    # jvm.dll'nin yolu. Java versiyonu değişirse, alttaki satır güncellenecek.
    jvmDLLpath = r"C:\Program Files\Java\jdk1.7.0_79\jre\bin\server\jvm.dll"
    
    # CLASSPATH  ayarlaması. .jar  dosyalarının doğrudan path bilgisi ve .jar ismi burada belirtilecek.
    classpath = r"D:\Belgelerim\_JAVA_JARs_FOLDER\zemberek\zemberek-cekirdek-2.1.1.jar"
    classpath = os.pathsep.join((classpath, "D:\Belgelerim\_JAVA_JARs_FOLDER\zemberek\zemberek-tr-2.1.1.jar"))
    
    # JVM'nin BAŞLATILMASI
    jpype.startJVM(jvmDLLpath,"-ea", "-Djava.class.path=%s"%classpath)
    
    
    
    ################################################################################################
    # .JAR'daki class'lardan object'lerin oluşturulması
    
    # [JAVA EŞDEĞERİ]  tt = new(net.zemberek.tr.yapi.TurkiyeTurkcesi())
    TT = jpype.JClass("net.zemberek.tr.yapi.TurkiyeTurkcesi")
    tt = TT()
    
    # [JAVA EŞDEĞERİ]  z = new(net.zemberek.erisim.Zemberek(tt))
    Z = jpype.JClass("net.zemberek.erisim.Zemberek")
    z = Z(tt)
    ################################################################################################
    
    
    ornSonuc = z.kelimeCozumle("karadan")
    print(type(ornSonuc))
    print(ornSonuc[0])
    print(ornSonuc[0].kok().tip().toString())
    print(ornSonuc[0].kok().icerik())
    
    
    
    # JVM'nin SONLANDIRILMASI
    jpype.shutdownJVM()
    fsaglam2002 Kâşif on 13 Mart 2016 yanıtladı
    Yorum Ekle

    tabi ki ne zaman bir sorun yaşarsan buradan yazabilirsin elimden geleni yaparım, çözmene çok sevindim. :) paylaşım içinde çok teşekkürler. iyi çalışmalar.

    Semiha Makinist Uzman on 13 Mart 2016 yanıtladı
    Yorum Ekle

    çok memnun olurum, :) çok sağ olu. eğer iyi bir sonuç alırsan bede bir kullanırım. iyi çalışmalar kolay gelsin.

    Semiha Makinist Uzman on 13 Mart 2016 yanıtladı
    Yorum Ekle

    jpype’da bayağı bir sonuç aldım. sona yaklaşmak üzereyim galiba. sonucu sizinle paylaşıcam…

    fsaglam2002 Kâşif on 13 Mart 2016 yanıtladı
    Yorum Ekle

    https://github.com/kivy/pyjnius/issues/125

    bu adresteki değişiklikleri yapıp tekrar kurabilir misin? belki sorun gider?

    jpype  kütüphaneyi hiç kullanmadım, hiç bir fikrim yok yani.

    Semiha Makinist Uzman on 13 Mart 2016 yanıtladı
    Yorum Ekle
    jpype  tecrübeniz var mı
    fsaglam2002 Kâşif on 13 Mart 2016 yanıtladı
    Yorum Ekle

    Semiha hocam, bu tek rar dosyasını denemiştim. Şimdi senin verdiğin linke gidince farkettim bugün denediğimi.

    fsaglam2002 Kâşif on 13 Mart 2016 yanıtladı
    Yorum Ekle

    pip install ile kurulumu çok denedim olmadı. Hatta pip ile github üzerinden pyjnius denemeleri de yaptım olmadı. Fakat 64 bit uyumsuzluğu olabilir diye düşünmeye başladım şimdi. Şimdi ubuntu tek rar tavsiyeni deneyeceğim.

    fsaglam2002 Kâşif on 13 Mart 2016 yanıtladı
    Yorum Ekle

    birde “pip install jnius” ilede bir kurulum yapabilir misin?

    Semiha Makinist Uzman on 13 Mart 2016 yanıtladı
    Yorum Ekle

    “z = autoclass(‘net.zemberek.erisim.Zemberek’)”  bu kısımda mı? hata alıyorsun, valla bende senin hatanı bakıyorum sorunu çözmeye çalışıyorum. ben daha önce win7 üzerinde de çalıştırmıştım sorun ver memişti. şimdi bende win üzerinde kurulum yaptım ve bende de hata verdi ama benim daha önce kullandığım bilgisayarda 32 bitti şimdi test etmiştim ama şimdiki bilgisayarım 64 bit acaba bundan mı tam olarak bilmiyorum. halledince buraya hemen yazacağım.

    ama ubuntuda sorun yaşamadım acaba indirdiğin .jar’da bir sorun olabilir mi?

    http://www.java2s.com/Code/Jar/z/Downloadzemberektr211jar.htm

    bu adreste teki jar’ı indirip, yeniden deneye bilir misin?

    Semiha Makinist Uzman on 13 Mart 2016 yanıtladı
    Yorum Ekle
  • Yanıtınız

    Cevabınızı göndererek Gizlilik Politikası ve Hizmet Şartlarını kabul ediyorsunuz.