拆分和词干化后更正字符串格式
Correct string format after splitting and stemming
我有一个文本文件,我正在尝试使用词干分析器。
词干分析器去除词的后缀。例如,"having had have" 在词干提取过程之后将是 "have have have"。为了做到这一点,必须拆分字符串,因为词干分析器一次只能处理一个单词。拆分和词干提取后,输出如下所示:"havehavehave." 如何将其 return 转换为正确的格式?
englishStemmer english = new englishStemmer();
Scanner inputFile = new Scanner(file); //The text of file is "having have had" or something similar
String[] text = inputFile.nextLine(split("\s"));
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
System.out.print(english.getCurrent())
}
您可以将 stem()
函数的输出传递给 output()
函数,您可以在其中每个单词后添加一个 " "
字符。你必须决定用什么数据结构来保存词干。然后你会得到像 have have have
而不是 havehavehave
.
这样的输出
假设您正在查看的输出是您使用 System.out.print
打印的内容,您只需添加一个结尾的白色 space,如 System.out.print(english.getCurrent() + " ");
如果你想在最后一次迭代中避免白色 space 用 if 语句包装它,如:
if( i < text.length -1 )
{
System.out.print(english.getCurrent() + " ");
} else {
System.out.print(english.getCurrent());
}
如何将所有词干词保存到一个 ArrayList 中?然后您可以遍历 ArrayList 并根据需要输出。
通过一些简单的修改从您的代码中借用:
englishStemmer english = new englishStemmer();
Scanner inputFile = new Scanner(file); //The text of file is "having have had" or something similar
String[] text = inputFile.nextLine(split("\s"));
ArrayList<String> stemmedWords = new ArrayList<String>();
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
String stem = english.getCurrent();
stemmedWords.add(stem);
}
for(String stem : stemmedWords){
System.out.println(stem);
}
或者,
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
System.out.print(english.getCurrent())
System.out.print(" ");
}
System.out.println(); //Optionally adds a new line after one complete iteration
我有一个文本文件,我正在尝试使用词干分析器。
词干分析器去除词的后缀。例如,"having had have" 在词干提取过程之后将是 "have have have"。为了做到这一点,必须拆分字符串,因为词干分析器一次只能处理一个单词。拆分和词干提取后,输出如下所示:"havehavehave." 如何将其 return 转换为正确的格式?
englishStemmer english = new englishStemmer();
Scanner inputFile = new Scanner(file); //The text of file is "having have had" or something similar
String[] text = inputFile.nextLine(split("\s"));
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
System.out.print(english.getCurrent())
}
您可以将 stem()
函数的输出传递给 output()
函数,您可以在其中每个单词后添加一个 " "
字符。你必须决定用什么数据结构来保存词干。然后你会得到像 have have have
而不是 havehavehave
.
假设您正在查看的输出是您使用 System.out.print
打印的内容,您只需添加一个结尾的白色 space,如 System.out.print(english.getCurrent() + " ");
如果你想在最后一次迭代中避免白色 space 用 if 语句包装它,如:
if( i < text.length -1 )
{
System.out.print(english.getCurrent() + " ");
} else {
System.out.print(english.getCurrent());
}
如何将所有词干词保存到一个 ArrayList 中?然后您可以遍历 ArrayList 并根据需要输出。 通过一些简单的修改从您的代码中借用:
englishStemmer english = new englishStemmer();
Scanner inputFile = new Scanner(file); //The text of file is "having have had" or something similar
String[] text = inputFile.nextLine(split("\s"));
ArrayList<String> stemmedWords = new ArrayList<String>();
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
String stem = english.getCurrent();
stemmedWords.add(stem);
}
for(String stem : stemmedWords){
System.out.println(stem);
}
或者,
for (int i =0; i < text.length; i++){
english.setCurrent.text([i]);
english.stem();
System.out.print(english.getCurrent())
System.out.print(" ");
}
System.out.println(); //Optionally adds a new line after one complete iteration