请教各位老师一个关于standford chinese segmenter乱码的问题

我今天尝试使用standford chinese segmenter进行中文句子分词,但是,将分词结果写到txt中的时候出现乱码,主要代码如下:

//声明
Properties props = new Properties();
props.setProperty("sighanCorporaDict", "data");

props.setProperty("serDictionary","data/dict-chris6.ser.gz");
props.setProperty("inputEncoding", "gb18030");
props.setProperty("sighanPostProcessing", "true");

CRFClassifier classifier = new CRFClassifier(props);
classifier.loadClassifierNoExceptions("data/ctb.gz", props);
classifier.flags.setProperties(props);


//结果写入
FileOutputStream fos = new FileOutputStream(“D:\\output.txt”);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fos);
List<String> result = classifier.segmentString(temp);
objectOutputStream.writeObject(result);

谢谢!
 
回复: 请教各位老师一个关于standford chinese segmenter乱码的问题

你把分词结果输出到 console 上看看是否是乱码。
 
回复: 请教各位老师一个关于standford chinese segmenter乱码的问题

这是我今天使用standford parser工具对于句子生成句法树的结果:

警告: Untokenizable: ? (U+FFFD, decimal: 65533)
(ROOT
(IP
(NP
(QP (CD 90))
(NP (NN ?)))
(VP (VV ó))))

我声明时使用的是:
LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/xinhuaFactored.ser.gz");
 
回复: 请教各位老师一个关于standford chinese segmenter乱码的问题

我今天尝试使用standford chinese segmenter进行中文句子分词,但是,将分词结果写到txt中的时候出现乱码,主要代码如下:

//声明
Properties props = new Properties();
props.setProperty("sighanCorporaDict", "data");

props.setProperty("serDictionary","data/dict-chris6.ser.gz");
props.setProperty("inputEncoding", "gb18030");
props.setProperty("sighanPostProcessing", "true");

CRFClassifier classifier = new CRFClassifier(props);
classifier.loadClassifierNoExceptions("data/ctb.gz", props);
classifier.flags.setProperties(props);


//结果写入
FileOutputStream fos = new FileOutputStream(“D:\\output.txt”);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fos);
List<String> result = classifier.segmentString(temp);
objectOutputStream.writeObject(result);

谢谢!


猜测是不是你使用的是ObjectOutputStream这个类不太合适?
你要写入文本文档中,按理应该使用别的java io类
我不怎么使用java,如果你觉得有理,可以看看java文档。
 
Back
顶部