Python Zemberek Bağlantısını Güncelleyelim
2016 Mayısında yazdığım Python ile Zemberek Kütüphanesini Kullanmak makalesini artık güncellemenin zamanı geldi.
Aslında güncellenecek pek fazla şey yok.
Çünkü: zemberek-tum-2.0.jar kütüphane dosyası yine aynı.
JPype1-py3 bileşeninin sürüm numarası değişmedi: 0.5.5.2.
Sadece benim şimdiki Ubuntu sürümüm 16.04 ve Python sürümüm ise 3.6.3.
Önceki yazımda verdiğim kodlar bire bir geçerli.
Yine de kodları son haliyle anımsamakta yarar var:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
""" Kod : Ahmet Aksoy Sistem: Ubuntu 16.04 LTS Python: Python 3.6.3 Modül : JPype1-py3 0.5.5.2 Java : zemberek-tum-2.0.jar """ import jpype # JVM başlat # Aşağıdaki adresleri java sürümünüze ve jar dosyasının bulunduğu klasöre göre değiştirin jpype.startJVM("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so", "-Djava.class.path=/home/axx/PyCharmProjects/trdp/zemberek-tum-2.0.jar", "-ea") # Türkiye Türkçesine göre çözümlemek için gerekli sınıfı hazırla Tr = jpype.JClass("net.zemberek.tr.yapi.TurkiyeTurkcesi") # tr nesnesini oluştur tr = Tr() # Zemberek sınıfını yükle Zemberek = jpype.JClass("net.zemberek.erisim.Zemberek") # zemberek nesnesini oluştur zemberek = Zemberek(tr) #Çözümlenecek örnek kelimeleri belirle #kelimeler = ["merhabalaştık","dalgalarının","habercisi","tırmalamışsa"] kelimeler = ["iştahlı","iştahsız","süreğen","sergüzeşt"] for kelime in kelimeler: if kelime.strip()>'': yanit = zemberek.kelimeCozumle(kelime) if yanit: print("{}".format(yanit[0])) else: print("{} ÇÖZÜMLENEMEDİ".format(kelime)) #JVM kapat jpype.shutdownJVM() |
Önceki yazımda zemberek-tum-2.0.jar dosyasının içindeki (veya herhangi bir jar dosyasının içindeki) sınıfların listesini nasıl elde ettiğimi belirtmemişim.
Aşağıdaki komut, bu listeyi elde etmemizi sağlıyor:
1 |
jar tf zemberek-tum-2.0.jar |
jar dosyasının adını değiştirerek istediğiniz sınıf listesini dökebilirsiniz.
Bu arada sevindirici bir başka haber: Zemberek projesi yeni bir yapılanmayla tekrar gündemde: Zemberek-NLP
Akın kardeşler Zemberek projesini eskisinden bağımsız bir şekilde yeniden geliştiriyorlar.
Sonucu ben de merakla bekliyorum.
Ahmet Aksoy
Biz Gediz Fen Lisesi öğrencisiyiz bizim doğal dil işleme ile ilgili projemiz var Python’da zembereği kullanamadık . Bize yardımcı olabilir misiniz ?
Elbette.
Ama önce amacınızı, neler yaptığınızı ve neler yapamadığınızı bana aktarırsanız, daha kolay çözüm buluruz.
verdiğiniz örnek kodları windosta çalıştıramadık amacımız ise öğrencilerin türkçedeki yazım yanlışlarını düzeltebilmek için zembereği kullanmak
jpype kütüphanesini yükleyebildiniz mi? Çünkü işlemleri onun aracılığıyla yapıyoruz.
Hangi aşamada takıldığınızı ve aldığınız hata mesajlarını belirtirseniz bir çözüm buluruz.
Merhabalar, teşekkürler yazınız için. jpype modülünü yüklemekte sıkıntı yaşandı. Ne yapılması gerekiyor? Şimdiden Teşekkürler.
jpype modülünü nasıl yüklediniz?
Python3 kullanıyor olmalısınız.
Aldığınız hata mesajlarını paylaşırsanız, yardımcı olmaya çalışabilirim.
Kolay gelsin.
_init_ de
_jpype diye bir dosya import ediliyor
bu dosya yok ve hata veriyor sürekli bu dosyayı bulamadım ne yapmalıyım
Aldığınız hata mesajını ve hangi koşullarda aldığınızı lütfen daha ayrıntılı bir şekilde paylaşın.
Merhaba,
jpype._jclass.NoClassDefFoundError: net/zemberek/tr/yapi/TurkiyeTurkcesi
hatası alıyorum.
windows10 eclipse kullanıyorum, jpype kurulu.
hatanın tamamı şu şekilde:
Traceback (most recent call last):
File “F:\Yeni klasör\Eclipse\FinalProject\Sc\Final.py”, line 21, in
Tr = jpype.JClass(“net.zemberek.tr.yapi.TurkiyeTurkcesi”)
File “F:\Programlar\Python\Python37-64\lib\site-packages\jpype\_jclass.py”, line 130, in __new__
return _JClassNew(args[0], **kwargs)
File “F:\Programlar\Python\Python37-64\lib\site-packages\jpype\_jclass.py”, line 213, in _JClassNew
javaClass = _jpype.PyJPClass(arg)
jpype._jclass.NoClassDefFoundError: net/zemberek/tr/yapi/TurkiyeTurkcesi
Zemberek farklı sürümlere sahip ve her sürüm birbirinden farklı. “zemberek-tum-2.0.jar” dosyasını kullandığınızdan emin olun. Aldığınız yanıt, büyük olasılıkla sürüm farklılığından kaynaklanıyor.