用stanford nlp的classfier组件的Java API做文本分类

来源:互联网 发布:网络上砌砖的美女 编辑:程序博客网 时间:2024/06/15 18:34
预处理:
找到classfier组件的类源代码ColumnDataClassifier.java,将其makeClassifier函数中
return lc;
改为
this.classifier = lc;
return lc;
将改后的类作为自定义类,比如改为StanfordClassifier.java,然后加入开发环境自己设定的package中。

环境准备:
请确定自己的开发环境中包含stanford nlp的库

准备数据:
配置文件train.prop,内容为
goldAnswerColumn=0
featureFormat=true
intern=true
useBinary=true

数据文件data.txt,内容为
student 上课
student 学习
student 考试
student 成绩
student 班级
teacher 教授
teacher 讲师
teacher 授课
teacher 课件
teacher 讲台
teacher 研究
teacher 课题
teacher 发表
teacher 论文
teacher 研究
teacher 著作

测试代码:
public static void testStanfordClassifier() {
StanfordClassifier cdc = new StanfordClassifier("D:/research/pclab/nlidb/classifier/train.prop");
    String c = cdc.makeClassifier(cdc.readTrainingExamples("D:/research/pclab/nlidb/classifier/data.txt")).classOf(cdc.makeDatumFromLine("student教授"));
    System.out.println(c);
}

参考:
1. http://blog.csdn.net/aws3217150/article/details/47045979
2. https://nlp.stanford.edu/software/classifier.shtml
3. https://github.com/stanfordnlp/CoreNLP/blob/master/src/edu/stanford/nlp/classify/ColumnDataClassifier.java
原创粉丝点击