使用weka对word2vec进行分类

Posted

技术标签:

【中文标题】使用weka对word2vec进行分类【英文标题】:Classification of word2vec using weka 【发布时间】:2017-07-21 09:10:36 【问题描述】:

我已经在大约 70k 个句子的语料库上训练了一个 word2vec 模型。每个句子都包含一个独特的关键字,例如“abc-2011-100”,然后是描述它的某些特征。现在,我必须为每个 abc id 进行分类。像 abc-2011-100 属于 abc_category_1。 abc-2999-0000 属于 abc_category_20 等等。一个类别可以有多个分配给它的 abc id。我有大约 70000 个唯一的 abc Id。在这 70000 个中,有 5000 个已被适当分类。现在我想检查我对已经分类的 5000 个 id 的分类准确性。为此,我将 80% 作为训练数据,20% 用于检查准确性。我可以将每个 abc id 描述为一个 d 维向量。使用这些信息,我如何使用 weka 来运行这个分类任务。?请任何输入将不胜感激。

【问题讨论】:

也许这个问题最好在stats.stackexchange.com问。无论如何,这是一个标准的分类任务。您可以使用不同的分类技术,例如 SVM、贝叶斯分类器、逻辑回归等。 【参考方案1】:

见here。

首先,读入你的 csv/arff:

import weka.core.Instances;
import java.io.BufferedReader;
import java.io.FileReader;
...
BufferedReader reader = new BufferedReader(new FileReader("yourData.arff"));
Instances data = new Instances(reader);
reader.close();
// setting class attribute
data.setClassIndex(data.numAttributes() - 1); // This is category for you

然后实例化并训练一个分类器

 import weka.classifiers.trees.J48;
 ...
 String[] options = new String[1];
 options[0] = "-U";            // unpruned tree
 J48 tree = new J48();         // new instance of tree
 tree.setOptions(options);     // set the options
 tree.buildClassifier(data);   // build classifier

运行交叉验证来评估学习者

import weka.classifiers.Evaluation;
import java.util.Random;
...
Evaluation eval = new Evaluation(data);
eval.crossValidateModel(tree, data, 10, new Random(1));

或者在不同的集合上进行训练和测试

import weka.core.Instances;
import weka.classifiers.Evaluation;
import weka.classifiers.trees.J48;
...
/* train and test are of type Instances (see above) */
// train classifier
Classifier cls = new J48();
cls.buildClassifier(train);
// evaluate classifier and print some statistics
Evaluation eval = new Evaluation(train);
eval.evaluateModel(cls, test);
System.out.println(eval.toSummaryString("\nResults\n======\n", false));

【讨论】:

@KshitijG 是的。请参阅here 或here。

以上是关于使用weka对word2vec进行分类的主要内容,如果未能解决你的问题,请参考以下文章

使用 Weka 按情绪对推文进行分类

weka 3.7 explorer 无法对文本进行分类

如何在 Weka 中对训练和测试数据集进行分类

在 Weka 中对单个实例进行分类(MultilayerPerceptron)

Weka 对实例进行分类

weka 能够通过聚类使用分类