2015-12-25 2 views
0

Я имею дело с NLP в python. Существует инструмент НЛП, а именно Zemberek для турецкого языка. Но это написано в java. Поэтому я должен использовать jython для импорта этих классов. Я установил jython 2.7. Кроме того, я установил Eclipse Mars в качестве IDE для Java. В Интернете я нашел следующую ссылку для использования Jython в среде IDE. Я установил PyDev и правильно настроил его, как объяснено в ссылке.Импорт java-класса в jython

http://www.jython.org/jythonbook/en/1.0/JythonIDE.html

import sys 
import os 

import java.lang.System.out 
import java.util.Arrays 
import java.util.List 

zembereksourcedir = ? 

sys.path.append(zembereksourcedir +'/jar/zemberek-tr-2.1.1.jar') 
sys.path.append(zembereksourcedir +'/jar/zemberek-cekirdek-2.1.1.jar') 

from net.zemberek.erisim import Zemberek 
from net.zemberek.tr.yapi import TurkiyeTurkcesi 

zemberek = Zemberek(TurkiyeTurkcesi()) 
for st in ["ebeni","ırz"]: 
    kok = zemberek.kokBulucu().kokBul(st) # array(net.zemberek.yapi.Kok, [ev ISIM , evli ISIM ]) 
    print str(list(kok)) 
    k = str(list(kok)).split()[0][1:] 
    print k 

код, который я пытаюсь запустить приведенные выше. (Можно найти в следующей ссылке https://gist.github.com/ferayebend/5331379) Но проблема в том, что даже если я specifiy пути правильно, это дает ошибку ,

ImportError: No module named Zemberek 

Я правильно применил шаги для создания проектов, которые также объясняются в приведенной выше ссылке. Но я все еще не мог решить проблему. Любая помощь приветствуется.

ответ

0

Вместо того чтобы добавить его в sys.path, вы должны добавить его как библиотеку либо в конфигурацию интерпретатора Jython (окно> настройки> pydev> интерпретаторы> jython interpreter> new jar/zip (s)), либо если оно находится в папку в проекте, щелкните правой кнопкой мыши проект> свойства> pydev - pythonpath> внешние библиотеки> добавить zip/jar/egg.

Причина в том, что просто добавление в sys.path не работает, вам также нужно добавить эти банки в CLASSPATH для java/jython, чтобы найти его (что PyDev сделает для вас, если вы укажете его правильно путь).