public class Sample {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
// Initialize the tagger
MaxentTagger tagger = new MaxentTagger("taggers/wsj-0-18-bidirectional-nodistsim.tagger");
// The sample string
String sample = "I am a good boy";
String[] tokens = sample.split(" ");
for(int i=0;i<tokens.length;i++){
String tagged = tagger.tagString(tokens[i]);
System.out.println(tagged);
}
// The tagged string
//String tagged = tagger.tagTokenizedString(sample);
// Output the result
//System.out.println(tagged.startsWith("N"));
}
}
输出:
I_PRP
am_VB
a_DT
good_JJ
boy_NN
问: 我需要在上面的程序中打印boy作为输出,因为它被标记为单数名词(NN)
答案 0 :(得分:1)
得到了解决方案:
MaxentTagger tagger = new MaxentTagger(“taggers / wsj-0-18-bidirectional-nodistsim.tagger”);
// The sample string
String s = "It implements all optional list operations and it also permits all elements, includes null.";
String sample = s.replaceAll("\\W", " ");
// The tagged string
String tagged = tagger.tagTokenizedString(sample);
// Output the result
// System.out.println(tagged);
String[] x = tagged.split(" ");
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<x.length;i++)
{
if (x[i].substring(x[i].lastIndexOf("_")+1).startsWith("N"))
{
list.add(x[i].split("_")[0]);
}
}
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
}
<强>输出:强>
列表
操作
元素
空
答案 1 :(得分:0)
您可以先尝试将其放入数组中,然后获取包含NN的数据。
或其他解决方案,使用哈希映射也可以更容易地获取要打印的密钥。