Java 如何在eclipse上使用opennlp
我正在尝试安装opennlp,以便将其用于我的nlp课程项目。 我的windows 8计算机上有eclipse开普勒 我在网上读了很多关于如何安装它的网页,但是运气不好 我读 还有很多其他网站不允许我添加的链接 但是他们中没有一个似乎对我有帮助 我所做的是:Java 如何在eclipse上使用opennlp,java,eclipse,maven,opennlp,Java,Eclipse,Maven,Opennlp,我正在尝试安装opennlp,以便将其用于我的nlp课程项目。 我的windows 8计算机上有eclipse开普勒 我在网上读了很多关于如何安装它的网页,但是运气不好 我读 还有很多其他网站不允许我添加的链接 但是他们中没有一个似乎对我有帮助 我所做的是: Microsoft Windows [Version 6.2.9200] (c) 2012 Microsoft Corporation. All rights reserved. C:\Users\lina>mvn --versio
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.
C:\Users\lina>mvn --version
Error: JAVA_HOME not found in your environment.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
C:\Users\lina>set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_51
C:\Users\lina>mvn --version
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T09:37:52-08:00)
Maven home: C:\Apache24\apache-maven-3.2.1\bin\..
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_51\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 8", version: "6.2", arch: "amd64", family: "windows"
C:\Users\lina>java -jar opennlp-tools-1.5.0.jar
Error: Unable to access jarfile opennlp-tools-1.5.0.jar
C:\Users\lina>set opennlp_home=c:\apache-opennlp-1.5.3
C:\>cd ikvm-7.2.4630.5/bin
C:\ikvm-7.2.4630.5\bin>ikvmc -target:library -assembley:opennlp opennlp-maxent-3.0.3.jar jwnl-1.3.3.jar opennlp-tools-1.5.3.jar
IKVM.NET Compiler version 7.2.4630.5
Copyright (C) 2002-2012 Jeroen Frijters
http://www.ikvm.net/
fatal error IKVMC5022: Unrecognized option: -assembley:opennlp
C:\ikvm-7.2.4630.5\bin>ikvmc -target:library -assembly:opennlp opennlp-maxent-3.0.3.jar jwnl-1.3.3.jar opennlp-tools-1.5.3.jar
IKVM.NET Compiler version 7.2.4630.5
Copyright (C) 2002-2012 Jeroen Frijters
http://www.ikvm.net/
note IKVMC0002: Output file is "opennlp.dll"
warning IKVMC0105: Unable to compile class "opennlp.tools.util.ext.OSGiExtension Loader" (missing class "org.osgi.framework.BundleActivator")
warning IKVMC0100: Class "opennlp.tools.util.ext.OSGiExtensionLoader" not found
warning IKVMC0111: Emitted java.lang.NoClassDefFoundError in "opennlp.tools.util.ext.ExtensionLoader.instantiateExtension(Ljava.lang.Class;Ljava.lang.String;)Ljava.lang.Object;" ("opennlp.tools.util.ext.OSGiExtensionLoader")
这就是我所做的一切
但我不能在eclipse开普勒上使用opennlp
有什么建议吗
我试图从字符串中提取城市名称,然后将其转换为从文件中提取。没有错误或异常运行按钮不提供运行java应用程序选项
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.io.InputStream;
导入org.xml.sax.SAXException
public class CityFinder {
public String Tokens[];
public static void main(String[] args) throws IOException, SAXException, CityFinder {
CityFinder toi = new CityFinder();
String cnt;
cnt="John is planning to specialize in Electrical Engineering in UC Berkley and pursue a career with IBM.";
toi.tokenization(cnt);
String cities = toi.namefind(toi.Tokens);
String org = toi.orgfind(toi.Tokens);
System.out.println("City name is : "+cities);
System.out.println("organization name is: "+org);
}
public String namefind(String cnt[]) {
InputStream is;
TokenNameFinderModel tnf;
NameFinderME nf;
String sd = "";
try {
is = new FileInputStream("en-ner-location.bin");
tnf = new TokenNameFinderModel(is);
nf = new NameFinderME(tnf);
Span sp[] = nf.find(cnt);
String a[] = Span.spansToStrings(sp, cnt);
StringBuilder fd = new StringBuilder();
int l = a.length;
for (int j = 0; j < l; j++) {
fd = fd.append(a[j] + "\n");
}
sd = fd.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sd;
}
public String orgfind(String cnt[]) {
InputStream is;
TokenNameFinderModel tnf;
NameFinderME nf;
String sd = "";
try {
is = new FileInputStream("en-ner-organization.bin");
tnf = new TokenNameFinderModel(is);
nf = new NameFinderME(tnf);
Span sp[] = nf.find(cnt);
String a[] = Span.spansToStrings(sp, cnt);
StringBuilder fd = new StringBuilder();
int l = a.length;
for (int j = 0; j < l; j++) {
fd = fd.append(a[j] + "\n");
}
sd = fd.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sd;
}
public void tokenization(String tokens) {
InputStream is;
TokenizerModel tm;
try {
is = new FileInputStream("en-token.bin");
tm = new TokenizerModel(is);
Tokenizer tz = new TokenizerME(tm);
Tokens = tz.tokenize(tokens);
// System.out.println(Tokens[1]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
公共类城市索引{
公共字符串标记[];
公共静态void main(字符串[]args)抛出IOException、SAXException、CityFinder{
CityFinder toi=新的CityFinder();
串碳纳米管;
cnt=“John计划在加州大学伯克利分校专攻电气工程,并在IBM寻求职业生涯。”;
toi.标记化(cnt);
字符串cities=toi.namefind(toi.Tokens);
字符串org=toi.orgfind(toi.Tokens);
System.out.println(“城市名称为:“+城市”);
System.out.println(“组织名称为:“+org”);
}
公共字符串名称查找(字符串cnt[]){
输入流为;
TokenNameFinderModel tnf;
纳米芬德姆核因子;
字符串sd=“”;
试一试{
is=新文件输入流(“en ner location.bin”);
tnf=新标记名FindModel(is);
nf=新名称皮肤(tnf);
Span sp[]=nf.find(cnt);
字符串a[]=Span.spansToStrings(sp,cnt);
StringBuilder fd=新的StringBuilder();
int l=a.长度;
对于(int j=0;j
我想你有很多不相关的问题。让我们从顶部开始:
未设置JAVA_主页
您的JAVA_主页未设置,您自己已正确修复。好!!然而,我认为如果您想在Eclipse中使用OpenNLP,这并不是绝对必要的
C:\Users\lina>set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_51
JAR文件丢失
无法访问
表示JAR文件不在其中。文件夹C:\Users\lina>
中没有名为opennlp-tools-1.5.0.jar的文件。很容易修复:将JAR文件放在文件夹中;)
构建OpenNLP
然后尝试构建OpenNLP。我认为构建OpenNLP并没有必要使用它。get的最后一个错误意味着缺少所构建项目的依赖项
使用OpenNLP
因为您使用了Maven和Eclipse,所以使用OpenNLP应该很容易。在Eclipse上创建一个新的Maven项目,打开pom.xml
文件并添加OpenNLP的Maven依赖项(您可以在OpenNLP网站上找到):
org.apache.opennlp
opennlp工具
1.5.3
现在Maven将下载OpenNLP并将其放在Eclipse项目的路径上。以后你可以用它
我会选择这个解决方案 感谢您的回复…但问题是我如何创建maven项目?我在eclipse上看不到它…某些eclipse版本中缺少maven,必须安装它。在Eclipse中,转到Help>EclipseMarketplace
并搜索Maven
。安装其中一个插件,我使用“Maven Integration for Eclipse”。然后您应该能够创建一个新的Maven项目(或者将一个旧项目转换为Maven)。。。。。我用main创建了一个新类…我没有任何错误,但它似乎无法运行我应该做什么…?“它似乎无法运行”是什么意思?有例外吗?这个类看起来怎么样?介于…
C:\Users\lina>java -jar opennlp-tools-1.5.0.jar
Error: Unable to access jarfile opennlp-tools-1.5.0.jar
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>1.5.3</version>
</dependency>