私は実際に、いくつかのテキストファイルを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のフィルター処理された内容に置き換えて、読み取り可能な形式で表示できるようにする方法はありますか?