【发布时间】:2012-01-11 18:54:55
【问题描述】:
我实际上正在开发一个系统,您将一些文本文件输入到 StandardAnalyzer,然后该文件的内容被 StandardAnalyzer 的输出替换(它标记并删除所有停用词)。我开发到现在的代码是:
File f = new File(path);
TokenStream stream = analyzer.tokenStream("contents",
new StringReader(readFileToString(f)));
CharTermAttribute charTermAttribute = stream.getAttribute(CharTermAttribute.class);
while (stream.incrementToken()) {
String term = charTermAttribute.toString();
System.out.print(term);
}
//Following is the readFileToString(File f) function
StringBuilder textBuilder = new StringBuilder();
String ls = System.getProperty("line.separator");
Scanner scanner = new Scanner(new FileInputStream(f));
while (scanner.hasNextLine()){
textBuilder.append(scanner.nextLine() + ls);
}
scanner.close();
return textBuilder.toString();
readFileToString(f) 是一个将文件内容转换为字符串表示形式的简单函数。 我得到的输出是每个单词都带有空格或删除了它们之间的新行。有没有办法在分析器输出后保留原始空格或换行符,以便我可以将原始文件内容替换为 StandardAnalyzer 的过滤内容并以可读形式呈现?
【问题讨论】:
标签: java apache lucene standardanalyzer