次の行を使用してツリーを構築しています。
LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz");
Tree smsTree = lp.apply("how to store Tree to file & then Load !");
これらのツリーをファイルに保存し、必要に応じてロードしたいと思います。それを行う方法はありますか?
次の行を使用してツリーを構築しています。
LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz");
Tree smsTree = lp.apply("how to store Tree to file & then Load !");
これらのツリーをファイルに保存し、必要に応じてロードしたいと思います。それを行う方法はありますか?
私はそれを自分で理解しようとしています。これまでのところ、XML に変換できることがわかりました。
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
...
StringWriter strwriter = new StringWriter();
PrintWriter printwriter = new PrintWriter(strwriter);
...
Tree parse = lp.parse(sentence);
parse.indentedXMLPrint(printwriter, false);
String xmlstring = strwriter.toString();
//save xmlstring to file
また、ここでは MemoryTreebank クラスが役立つようです ( https://mailman.stanford.edu/pipermail/parser-user/2008-March/000026.html )。たとえば、tree.pennString() から取得した通常の表現で Tree を文字列として単純に保存し、次のようにします。
MemoryTreebank tb2 = new MemoryTreebank(new PennTreeReaderFactory());
tb2.load(new StringReader(s1.toString()));