在 Java 中使用 POSTagger 将不同的 POS(词性)保存在不同的文件中?
Save different POS (parts of speech) in different file using POSTagger in Java?
我正在使用 openNLP 来标记 POS(词性)。
InputStream inputStream = new
FileInputStream("C:/en-pos-maxent.bin");
POSModel model = new POSModel(inputStream);
POSTaggerME tagger = new POSTaggerME(model);
String sentence = "This is not a song for the broken-hearted" +
" No silent prayer for the faith-departed " +
" I am not gonna be just a face in the crowd " +
" You are gonna hear my voice " +
" When I shout it out loud";
String simple = "[.?!-]";
String[] splitString = (sentence.split(simple));
SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;
//String tokens[] = simpleTokenizer.tokenize();
for(int i = 0;i<splitString.length;i++)
{
String tokens[] = simpleTokenizer.tokenize(splitString[i]);
String[] tags = tagger.tag(tokens);
//POSSample sample = new POSSample(tokens, tags);
/*for(String token : tokens) {
System.out.println(token);
}*/
for(int j= 0;j < tags.length;j++)
{
if(tags[j].equals("DT"))
{
//System.out.println(tokens[j]);
File file = new File("DT.txt");
try {
PrintWriter output = new PrintWriter(file);
output.println(tokens[j]);
output.close();
} catch (Exception e) {
// TODO: handle exception
}
当我在 loop.It 中使用 println 时,在我将其保存在文件名 DT.txt 中时显示所需的 value.But 。它只是在文本文件中保存一个值。
Text file output
Printed Output in console
您正在为 for 循环的每个 运行 创建一个新文件。在 for 循环之外创建文件。
我正在使用 openNLP 来标记 POS(词性)。
InputStream inputStream = new
FileInputStream("C:/en-pos-maxent.bin");
POSModel model = new POSModel(inputStream);
POSTaggerME tagger = new POSTaggerME(model);
String sentence = "This is not a song for the broken-hearted" +
" No silent prayer for the faith-departed " +
" I am not gonna be just a face in the crowd " +
" You are gonna hear my voice " +
" When I shout it out loud";
String simple = "[.?!-]";
String[] splitString = (sentence.split(simple));
SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;
//String tokens[] = simpleTokenizer.tokenize();
for(int i = 0;i<splitString.length;i++)
{
String tokens[] = simpleTokenizer.tokenize(splitString[i]);
String[] tags = tagger.tag(tokens);
//POSSample sample = new POSSample(tokens, tags);
/*for(String token : tokens) {
System.out.println(token);
}*/
for(int j= 0;j < tags.length;j++)
{
if(tags[j].equals("DT"))
{
//System.out.println(tokens[j]);
File file = new File("DT.txt");
try {
PrintWriter output = new PrintWriter(file);
output.println(tokens[j]);
output.close();
} catch (Exception e) {
// TODO: handle exception
}
当我在 loop.It 中使用 println 时,在我将其保存在文件名 DT.txt 中时显示所需的 value.But 。它只是在文本文件中保存一个值。 Text file output Printed Output in console
您正在为 for 循环的每个 运行 创建一个新文件。在 for 循环之外创建文件。