NLP碎碎念
来源:互联网 发布:实验数据分析怎么写 编辑:程序博客网 时间:2024/06/01 07:11
最近都在搞中文自然语言处理方面的事情,大概有三星期了吧,总结一下。
用的是java+myeclipse开发。
中文的话,首先要分词,用的是复旦的fnlp。做文本分类,由于数据量不是很多,因此用libsvm,其实效果很差啦。。但是,还算可以吧。
讲一下关于fnlp和libsvm的一些内容吧。
fnlp的分词效果不是很好,但是我用ansj分词效果半斤八两,因此就手动添加词典,
StopWords sw= new StopWords("data/stop_words.txt");
CWSTagger seg = new CWSTagger("models/seg.m",new Dictionary("models/dict.txt"));
AbstractExtractor key = new WordExtract(seg,sw);
stop_words.txt和和dict.txt都是自己手动添加的~~seg.m是添加配置fnlp时候已经添加了的。
然后分词,因为句子短,不超过10个,所以我就把它当做提取关键词了:
Map<String, Integer> keywords = key.extract(ts, 10);
fnlp也有词向量,不过它训练词向量的原理是ngram。
用svm做自然语言处理,我的内心是拒绝的,但是svm真的很好用,训练准确率挺高的。懒人用笨办法说的就是我==。用svm的话要给每个文本构造一个向量,然后训练。安装libsvm的时候有提供两个示例调用文件svm_train.java和svm_predict.java,我觉得太麻烦了,因为它限制了输入和输出的格式,就自己简单写了调用文件。有一些参数设置参照了示例文件的。。
svm_problem problem = new svm_problem();
problem.l = Nodes.length; //numbers of vectors
problem.x = new svm_node[problem.l][];
for(int i=0;i<problem.l;i++)
problem.x[i] = vx.elementAt(i);
problem.y = new double[problem.l];
for(int i=0;i<problem.l;i++)
problem.y[i] = vy.elementAt(i);
svm_parameter param = new svm_parameter();
param.svm_type = svm_parameter.C_SVC;
param.kernel_type = svm_parameter.RBF;
param.degree = 3;
param.gamma = 0; // 1/num_features
param.coef0 = 0;
param.nu = 0.5;
param.cache_size = 100;
param.C = 1;
param.eps = 1e-3;
param.p = 0.1;
param.shrinking = 1;
param.probability = 0;
param.nr_weight = 0;
param.weight_label = new int[0];
param.weight = new double[0];
if(param.gamma == 0 && num_features> 0)
param.gamma = 1.0/num_features;
其中:Vector<svm_node[]> vx = new Vector<svm_node[]>();
Vector<Double> vy = new Vector<Double>();- 就这样吧。。感觉写得不清不楚的,给自己看。
- NLP碎碎念
- 学习NLP路上的碎碎念
- 碎碎碎碎念
- 碎碎念
- 碎碎念
- 碎碎念。。。
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- 碎碎念
- Java_基础—Map集合的遍历之键值对对象找键和值
- A* Pathfinding Project (Unity A*寻路插件) 使用教程
- 67. Add Binary(C语言改进版)
- 判断一个年份是不是闰年
- 网络中立:YouTube联名上书
- NLP碎碎念
- 找不到xxx.so.x错误的解决方法
- Struts2-1
- 名字控制
- setContentView那些事
- Git代码管理
- Q132:PBRT-V3,BSSRDF(双向散射表面反射分布函数)(5.6.2章节、11.4章节)
- 用navicat for mysql导入.sql文件
- Python根据关键字百度搜索下载图片