xml 斯坦福 pos 标记器格式
xml format in stanford pos tagger
我标记了 20 个句子,这是我的代码:
public class myTag {
public static void main(String[] args) {
Properties props = new Properties();
try {
props.load(new FileReader("D:/tagger/english-bidirectional-distsim.tagger.props"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MaxentTagger tagger = new MaxentTagger("D:/tagger/english-bidirectional-distsim.tagger",props);
//==================================================================================================
try (BufferedReader br = new BufferedReader(new FileReader("C:/Users/chelsea/Desktop/EN/EN.txt")))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
String tagged = tagger.tagString(sCurrentLine);
System.out.println(tagged);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是输出:
正如您在句子节点中看到的那样,它有一个 Id 属性,这里它始终为 0,它不应该 be.i 期望值为 0,1,2,3,4,...
我不明白我的代码有什么问题。
Stanford 词性标注器(严格来说,在词性注释器之前应用的句子拆分器)为每个输入文本的句子生成 ID。
所以,你要求 tagger
标记由一个句子组成的 sCurrentLine
,这个文本被分成句子——实际上,只有一个,id = 0;然后你要求从下一次迭代中标记另一个文本 - sCurrentLine
- 它又是唯一的句子,因此它是第一个 id = 0 的句子;等等。
因此,如果您想要正确的id,首先创建整个文本,然后将其传递给tagger
。但是,如果您的输入文本已经被句子分割,最好保持原样(如果需要,可以在循环中自行生成 ID)。
我标记了 20 个句子,这是我的代码:
public class myTag {
public static void main(String[] args) {
Properties props = new Properties();
try {
props.load(new FileReader("D:/tagger/english-bidirectional-distsim.tagger.props"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MaxentTagger tagger = new MaxentTagger("D:/tagger/english-bidirectional-distsim.tagger",props);
//==================================================================================================
try (BufferedReader br = new BufferedReader(new FileReader("C:/Users/chelsea/Desktop/EN/EN.txt")))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
String tagged = tagger.tagString(sCurrentLine);
System.out.println(tagged);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是输出:
正如您在句子节点中看到的那样,它有一个 Id 属性,这里它始终为 0,它不应该 be.i 期望值为 0,1,2,3,4,... 我不明白我的代码有什么问题。
Stanford 词性标注器(严格来说,在词性注释器之前应用的句子拆分器)为每个输入文本的句子生成 ID。
所以,你要求 tagger
标记由一个句子组成的 sCurrentLine
,这个文本被分成句子——实际上,只有一个,id = 0;然后你要求从下一次迭代中标记另一个文本 - sCurrentLine
- 它又是唯一的句子,因此它是第一个 id = 0 的句子;等等。
因此,如果您想要正确的id,首先创建整个文本,然后将其传递给tagger
。但是,如果您的输入文本已经被句子分割,最好保持原样(如果需要,可以在循环中自行生成 ID)。