Using NLTK in Java

H

hussainsaiger

I am trying to convert a python module (that contains the use of
NLTK.Corpus) by jythonc. It is not able to include nltk dependencies
within the java class it creates. So when i use this class in java, it
fails to recognize nltk. Can anyone please let me know how should i
use nltk in python/jython modules so i can use in Java.
 
D

Diez B. Roggisch

I am trying to convert a python module (that contains the use of
NLTK.Corpus) by jythonc. It is not able to include nltk dependencies
within the java class it creates. So when i use this class in java, it
fails to recognize nltk. Can anyone please let me know how should i
use nltk in python/jython modules so i can use in Java.

If there are any binary dependencies, you are out of luck. It won't
work. You would need to write a RPC-Server then, with technologies such
as XMLRPC or CORBA.

Diez
 
H

hussainsaiger

If there are any binary dependencies, you are out of luck. It won't
work. You would need to write a RPC-Server then, with technologies such
as XMLRPC or CORBA.

Diez

So does that mean that Jython does not support nltk uptil now. I ask
this because when I try to import nltk in Jython (which is assumed to
replace Python), i get the same error. Its just nltk that I am not
able to use. The rest of the jython functions and libraries work fine
within Java.
 
D

Diez B. Roggisch

So does that mean that Jython does not support nltk uptil now. I ask
this because when I try to import nltk in Jython (which is assumed to
replace Python), i get the same error. Its just nltk that I am not
able to use. The rest of the jython functions and libraries work fine
within Java.

I don't know for sure - how about you post the error-message? Otherwise we
can't assess the problem.

Diez
 
H

hussainsaiger

I don't know for sure - how about you post the error-message? Otherwise we
can't assess the problem.

Diez- Hide quoted text -

- Show quoted text -

Hi,

What i did was create a python file as:

import nltk
from java.util import Random

class NLPPresentation(Random):
def nextDouble(self):
return 1
def TagByBrown(self,sent):
"@sig public String[] TagByBrown(String sent)"
brown_a = nltk.corpus.brown.tagged_sents(categories='a')
bigram_tagger = nltk.BigramTagger(brown_a, cutoff=0)
lst = bigram_tagger.tag(sent.split())
return lst

I processed the following code through jythonc compiler to form a JAR
file. I then imported this jar
file into java ide (Java Builder). I then wrote the following program
in java to access this python class:

import org.python.core.PyException;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
import java.util.Random;
import org.nltk.*;
import org.nltk.mallet.*;
public class SimpleEmbedded extends NLPPresentation{
public static void main(String[] args) throws PyException {
SimpleEmbedded so = new SimpleEmbedded();
String s = "he is a boy";
so.Call(s);
}
public void Call(String s)
{
String[] arr = TagByBrown(s);
System.out.println(arr[1]);
}
}

When i compile the above java code, i get the following error:

Exception in thread "main" Traceback (innermost last):
File "C:\jython2.2.1\NLPPresentation.py", line 0, in main
ImportError: no module named nltk

Your comments are highly appreciated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,710
Latest member
bernietqt

Latest Threads

Top