Nlp 如何在Python中运行JAVA API

Nlp 如何在Python中运行JAVA API,nlp,stemming,java,py4j,Nlp,Stemming,Java,Py4j,我有一个用于词干分析的JavaAPI,但我无法运行它。我正在Python3.x中进行一个NLP项目,我从文档中读取所有文本并将其转换为单词。我想使用这个JavaAPI进行词干分析,以词干我的单词,然后进一步处理。我正在探索如何使用不同的库将JavaAPI直接运行到Python程序中,我读了一些关于Java API的内容,但无法运行它。 任何人都可以指导我如何在Python中使用这个API,或者如果这不可能,那么如何在ECLIPSE中使用它 词干分析器API说明: 说明: Word词干分析器API

我有一个用于词干分析的JavaAPI,但我无法运行它。我正在Python3.x中进行一个NLP项目,我从文档中读取所有文本并将其转换为单词。我想使用这个JavaAPI进行词干分析,以词干我的单词,然后进一步处理。我正在探索如何使用不同的库将JavaAPI直接运行到Python程序中,我读了一些关于Java API的内容,但无法运行它。 任何人都可以指导我如何在Python中使用这个API,或者如果这不可能,那么如何在ECLIPSE中使用它

词干分析器API说明:

说明: Word词干分析器API是一个Java应用程序,它提供了一个接口来提取单词的词干、前缀和后缀

设置: 将数据文件夹复制到项目目录中,并将提供的JAR文件添加到项目中

用法:

    1. loadRules()
        - Purpose:      This function loads the stemming rules from the ./Data/Rules.txt into the program.
        - Syntax:       void loadRules();
        - Parameters:   None
        - Return type:  Void


    2. stemWord()
        - Purpose:      This function accepts as input a single word and returns a HashMap containing its stem, prefix, and postfix.
        - Syntax:       HashMap<String, String> stemWord(String word);
        - Parameters:   String word to be stemmed
        - Return type:  HashMap with the following keys: "stem", "prefix", "postfix"

    3. stemFile()
        - Purpose:      This function acecpts as input the path to a UTF-8 text file and writes a new file to the same directory with the suffix "_stemmed".
        - Syntax:       void stemFile(String path);
        - Parameters:   String path to text file
        - Return type:  Void
1。加载规则()
-用途:此函数用于将./Data/rules.txt中的词干规则加载到程序中。
-语法:void loadRules();
-参数:无
-返回类型:Void
2.斯特姆沃德()
-用途:此函数接受单个单词作为输入,并返回包含其词干、前缀和后缀的HashMap。
-语法:HashMap stemWord(字符串字);
-参数:要加词干的字符串字
-返回类型:带有以下键的HashMap:“stem”、“prefix”、“postfix”
3.stemFile()
-用途:此函数将acecpts作为UTF-8文本文件的输入,并将新文件写入后缀为“\u stemed”的同一目录。
-语法:void stemFile(字符串路径);
-参数:文本文件的字符串路径
-返回类型:Void
例如:

    UStemmer stmr = new UStemmer();

    stmr.loadRules();

    stmr.stemFile(String path);

    HashMap<String, String> stemmed = stmr.stemWord(String word);

    String stem = stemmed.get("stem");
    String prefix = stemmed.get("prefix");
    String postfix = stemmed.get("postfix");
UStemmer stmr=new UStemmer();
stmr.loadRules();
stmr.stemFile(字符串路径);
HashMap stemed=stmr.stemWord(字符串字);
String-stem=stem.get(“stem”);
字符串前缀=带词干的.get(“前缀”);
字符串后缀=带词干的.get(“后缀”);
PS:我的API文件夹包含一个文件UStemmer.JAR和两个文件夹,第一个是包含Rules.txt文件的数据,第二个是包含两个文件的UStemmer,一个是UStemmer.class(无法打开或读取),另一个是MANIFEST.MF
PPS:我不能使用任何可用的词干分析器,因为它们不支持我正在使用的语言。()

使用Python编写的自然语言工具包会更容易吗?我喜欢Java,但是Python中有非常好的工具来完成这项任务。NLTK不支持乌尔都语词干分析。我已经在我的问题中提到了这个问题。阻止乌尔都语单词的唯一方法是这个用JAVA在本地开发的API。我只使用了它的API。PS:我熟悉NLTK及其库,包括它提供的不同类型的词干分析器,但这对我在这个项目中是无用的。“无法运行它”是不够的信息。你想用PY4J做什么?您是否设置了网关服务?密码在哪里?为什么你不能运行它?