Using NLTK in Java

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • hussainsaiger@gmail.com

    Using NLTK in Java

    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.
  • Diez B. Roggisch

    #2
    Re: Using NLTK in Java

    hussainsaiger@g mail.com schrieb:
    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

    Comment

    • hussainsaiger@gmail.com

      #3
      Re: Using NLTK in Java

      On 1 Sep, 11:55, "Diez B. Roggisch" <de...@nospam.w eb.dewrote:
      hussainsai...@g mail.com schrieb:
      >
      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
      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.

      Comment

      • Diez B. Roggisch

        #4
        Re: Using NLTK in Java

        hussainsaiger@g mail.com wrote:
        On 1 Sep, 11:55, "Diez B. Roggisch" <de...@nospam.w eb.dewrote:
        >hussainsai...@ gmail.com schrieb:
        >>
        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
        >
        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

        Comment

        • hussainsaiger@gmail.com

          #5
          Re: Using NLTK in Java

          On 1 Sep, 16:21, "Diez B. Roggisch" <de...@nospam.w eb.dewrote:
          hussainsai...@g mail.com wrote:
          On 1 Sep, 11:55, "Diez B. Roggisch" <de...@nospam.w eb.dewrote:
          hussainsai...@g mail.com schrieb:
          >
          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
          >
          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- 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(Stri ng sent)"
          brown_a = nltk.corpus.bro wn.tagged_sents (categories='a' )
          bigram_tagger = nltk.BigramTagg er(brown_a, cutoff=0)
          lst = bigram_tagger.t ag(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 .PythonInterpre ter;
          import java.util.Rando m;
          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.prin tln(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 \NLPPresentatio n.py", line 0, in main
          ImportError: no module named nltk

          Your comments are highly appreciated.

          Comment

          • bearophileHUGS@lycos.com

            #6
            Re: Using NLTK in Java

            On Sep 1, 12:30 pm, hussainsai...@g mail.com:
            >in Jython (which is assumed to replace Python),
            I don't think so.

            Bye,
            bearophile

            Comment

            Working...