抱怨了很久的分词问题,后来发现Stanford的一个中文分词软件非常不错,就想拿来看看效果怎么样。
由于这个软件实在是太强大了,我也来不及去仔细分析,只是把DEMO研究了一下,看了下相关的3,4个类,利用API写了一段批量处理的示例代码。
——这个分词软件有一个学习的过程,使用条件随机场方法,所以不把这一部分剥离处理恐怕处理大规模数据的时候就太慢了。
直接上代码吧。
package Test;
import java.util.List;
import java.util.Properties;
import java.util.zip.GZIPInputStream;
import java.io.*;
import edu.stanford.nlp.ie.crf.CRFClassifier;
import edu.stanford.nlp.ie.AbstractSequenceClassifier;
/** This is a very simple demo of calling the Chinese Word Segmenter
* programmatically. It assumes an input file in UTF8.
*
*
* Usage: java -mx1g -cp seg.jar SegDemo fileName
*
* This will run correctly in the distribution home directory. To
* run in general, the properties for where to find dictionaries or
* normalizations have to be set.
*
* @author Christopher Manning
*/
public class Demo {
Properties props = new Properties(); //设置训练参数
props.setProperty("sighanCorporaDict", "data");
// props.setProperty("NormalizationTable", "data/norm.simp.utf8");
// props.setProperty("normTableEncoding", "UTF-8");
// below is needed because CTBSegDocumentIteratorFactory accesses it
props.setProperty("serDictionary","data/dict-chris6.ser.gz");
props.setProperty("inputEncoding", "UTF-8");
props.setProperty("sighanPostProcessing", "true");
//
CRFClassifier classifier = new CRFClassifier(props); //初始化分类器
classifier.loadClassifierNoExceptions("data/ctb.gz", props); //使用CTB作为训练集,也可以使用pku.gz
// flags must be re-set after data is loaded
classifier.flags.setProperties(props);
//classifier.writeAnswers(classifier.test(args[0]));
// classifier.testAndWriteAnswers(file);
List<string> test=classifier.segmentString("面对新世纪,世界各国人民的共同愿望是:继续发展人类以往创造的一切文明成果,克服20世纪困扰着人类的战争和贫困问题,推进和平与发展的崇高事业,创造一个美好的世界。");<br>
//中文分词的输出序列,注意,该方法只适用中文分词,如果是其他语言,建议修改源码,在AbstractSequenceClassifier类中填加一个返回分词结果的方法,参照testAndWriteAnswers方法,将最后的print输出改成return即可。<br>
for(int count=0;count<test></test>
System.out.println(test.get(count));<br>
// classifier.testAndWriteAnswers("/home/xu/sample.base");<br>
}<br>
}<br></string>
以上是一个小小的实验,其中使用eclipse有一个问题是,这个程序很耗内存的,建议设置run configuration - =Arguments - VM arguments 里添加参数 "-Xmx1024m"。
自此,应该知道怎么实现批量处理了。
分享到:
相关推荐
原网站:https://stanfordnlp.github.io/CoreNLP/ 里面的language support,考虑到需要支持中文的自然语言处理, 但是很难下载下来? 2020/02/28下载。
使用stanford-corenlp的python接口,实现自动保存分词(词性标注)结果的python脚本。 自己更改目录及配置端口即可使用。
stanford斯坦福NLP相关jar包2018,自然语言处理,由于大小限制缺少stanford-corenlp-3.9.2-models.jar,接下来会单发一下
C#下调用Stanford CoreNLP,实现中文分词,命名实体识别,词性判断.附件中只包含如何调用,需自行从stanford官网下载模型和语料
AIpaca-Stanford-资料包.zip
《NLP汉语自然语言处理原理与实践》(郑捷著)是一本专业研究自然语言处理的书籍,本文作者在阅读这本书,调试其中的程序代码时,发现由于版本升级,导致其中的某些程序无法执行。本文针对书中第24页“安装Stanford...
stanford-chinese-corenlp-2018-10-05-models.jar 是一个Java包,其中包含了Stanford CoreNLP库的中文语言模型。与英文语言模型类似,中文语言模型提供了一系列自然语言处理功能,例如中文分词、词性标注、命名实体...
Stanford Graphics:美国斯坦福大学很好用的数据处理软件Stanford Graphics,可以利用数据完美作图。 安装说明:在0文件夹里选择安装INSTALLv.EXE文件,出现窗口提示的时候,依次输入1、2、3、4即可,输入四次后,...
Python NLTK结合stanford NLP工具包进行文本处理-附件资源
用stanfordCoreNLP进行中文分词时出现json编码错误(csdn)————程序
Stanford这个的课程的核心就在于他的课程项目,全部是是现实实例的应用,绝对经典。自己动手做一做绝对对自己的实力的提升有很大的帮助。也感叹国内类似课程和国外的差距。可能他每周的课程项目在国内也就一学期的...
stanford-corenlp-3.5.2.jar 包
stanford tregex 与stanford parser 结合分析做语言处理用
stanford课程-----自然语言处理中的深度学习 课件2-15
stanford-corenlp-3.9.2-models.jar
Stanford parser 句法分析器及可视化.如何使用。首先你的电脑需要安装jdk。
斯坦福车 196 类 训练集,图片按类别文件夹存放,完整数据集下载: https://github.com/cyizhuo/Stanford-Cars-dataset
Stanford Sentiment Treebank 是一个标准情感数据集,主要用于情感分类,其中每个句子分析树的节点均有细粒度的情感注解。 该数据集由斯坦福大学的 NLP 组发布,其中句子和短语共计 239232 条,相较于忽略单词顺序...