首先,我正在使用OpenNLP,但是知识并不需要,但可能会有用。使用整数获取字符串数组部分
的字符串被输入到该方法FindName
String input = "Billy Smith the chicken crossed the road to visit Fred Jones";
它由分词器处理,得到为的NameFinder输入:
String[] tokenized = "Billy","Smith","the","chicken","crossed","the","road","to","visit","Fred","Jones";
其中搜索名称,结果作为在“for”循环中生成的两个字符串给出
"[0..2) person","[9..11) person"
现在我怎么能把原始名称(“比利史密斯”和“弗雷德琼斯”)放入一个arraylist或类似的字符串数组?
到目前为止,我曾尝试:
for(Span s: nameSpans){
numbers = s.toString().replace("[", "");
//is "[0..2) person" and "[9..11) person"
sect = numbers.split("\\) ");
}
int x;
for(x=0;x<sect.length;x++){
if(x%2 == 0){
String[] numb = sect[x].split("..");
int n;
int first, second;
first = Integer.parseInt(numb[0]);
second = Integer.parseInt(numb[1]);
for(n=first;n<second;n++){
if(sentence.hashCode() == n){
name.add(sentence[n]);
}
,但有没有运气。
下一次请阅读问题-.- – Greg
,如果这是一个问题: 我怎么可以把原来的名字(“比利·史密斯”和“弗雷德 - 琼斯”)成一个arraylist或类似的字符串数组? 然后这就是你如何使用设计的方法获得名字到数组中: //“tokens”这里是你的句子中单词的String [] Span [] find = nf.find(tokens ); //使用Span的静态方法获取名称的String [] String [] namedEntities = Span.spansToStrings(find,tokens); 这是在我粘贴的链接 – markg
Aaa我的道歉,它的滑稽如何误读一件作品可以做出这样的区别。不幸的是,谢谢你的答案,因为有人问我已经开始使用斯坦福NLP了,我发现它更容易操作输出格式。 – Greg