如何在 java 中的文本中查找名称实体
How to find a name Entity in a text in java
以下是java中使用opennlp编写的识别名称实体的代码
try {
System.out.println("Input : Pierre Vinken is 61 years old");
InputStream modelIn = new FileInputStream("en-ner-person.bin");
TokenNameFinderModel model = new TokenNameFinderModel(modelIn);
NameFinderME nameFinder = new NameFinderME(model);
String[] sentence = new String[]{
"Pierre",
"Vinken",
"is",
"61",
"years",
"old",
"."
};
Span nameSpans[] = nameFinder.find(sentence);
for(Span s: nameSpans)
System.out.println("Name Entity : "+s.toString());
}
catch (IOException e) {
e.printStackTrace();
}
这给出了输出:
输入:Pierre Vinken 61 岁
名称实体:[0..2) 人
但对于任何其他实体,如 GPE(地理和政治实体),它无法识别
例如
输入:泰姬陵在印度
它既不是泰姬陵,也不是印度。可以做什么?
如文件名所示,en-ner-person.bin
仅识别人物。对于其他类型的实体,还有其他可用的 OpenNLP NER 模型。
以下是java中使用opennlp编写的识别名称实体的代码
try {
System.out.println("Input : Pierre Vinken is 61 years old");
InputStream modelIn = new FileInputStream("en-ner-person.bin");
TokenNameFinderModel model = new TokenNameFinderModel(modelIn);
NameFinderME nameFinder = new NameFinderME(model);
String[] sentence = new String[]{
"Pierre",
"Vinken",
"is",
"61",
"years",
"old",
"."
};
Span nameSpans[] = nameFinder.find(sentence);
for(Span s: nameSpans)
System.out.println("Name Entity : "+s.toString());
}
catch (IOException e) {
e.printStackTrace();
}
这给出了输出:
输入:Pierre Vinken 61 岁
名称实体:[0..2) 人
但对于任何其他实体,如 GPE(地理和政治实体),它无法识别
例如
输入:泰姬陵在印度
它既不是泰姬陵,也不是印度。可以做什么?
如文件名所示,en-ner-person.bin
仅识别人物。对于其他类型的实体,还有其他可用的 OpenNLP NER 模型。