【问题标题】:Using LibShortText with files in LibSVM format对 LibSVM 格式的文件使用 LibShortText
【发布时间】:2014-04-03 19:43:49
【问题描述】:

我正在尝试使用LibShortText,但我并不完全理解它是如何工作的。

从README 看来,它的功能是针对文本文件的。但是,我需要对已经为 LibSVM 格式的文件进行分类,所以我认为像 text-train.py 和 text-predict.py 这样的函数不会......?

README 还声明:

If a preprocessor directory is given instead, then it is assumed that the 
training data is already in LIBSVM format.

有人知道preprocessor directory 是什么...?

从LibShortText documentations,我看到有一个“中级分类模型 - 学习者”可以处理像我这样的文件。但是,我不明白它是如何工作的!它没有 LIBSVM 的所有参数,例如...而且我还没有成功找到如何保存或理解结果(权重和预测在哪里?)。

如果有人能解释这件事的话,我会真的感激它(我已经测试了好几个小时了)......谢谢!

【问题讨论】:

    标签: machine-learning svm text-classification libshorttext


    【解决方案1】:

    根据文档 (http://www.csie.ntu.edu.tw/~cjlin/libshorttext/doc/libshorttext.html#quick-start),您可以使用 -A 选项附加 .svm 文件。

    但如果您已经获得了 libsvm 格式的数据,则可以直接使用 liblinear(libshorttext 底层库)。

    如果你有一个 libshorttext 的发行版,你已经有 liblinear。您可以通过 cd'ing 编译和运行(从您解压 libshorttext 的任何地方),如下所示:

    $ cd libshorttext/classifier/learner/liblinear $ make $ ./train train_file.svm $ ./predict test_file.svm model_file output_file

    这里是 liblinear README:https://github.com/ninjin/liblinear/blob/master/README 的参考,我发现它非常方便。

    【讨论】:

    • 谢谢@Travis。是的,我想 liblinear 可以完成这项工作,但我知道 libshorttext 应该更适合我的特定需求(短文本分类)。在您提供的第一个链接中,有这样一行:If a preprocessor directory is given instead, then it is assumed that the training data is already in LIBSVM format. The preprocessor will be included in the model for test. 你知道preprocessor directory 是什么吗?再次感谢...
    • libshorttext 功能(据我所知)主要是在预处理时对 liblinear 的扩展。
    • 关于预处理器目录,code表示这是text-train.py生成的.model目录。 .model 目录包含您将在预测时使用的 .pickle 文件,您可以在那里四处寻找感觉,非常简单。但是对于您的用例,如果您已经对所有内容进行了特色化,那么 liblinear 可能更合适。
    猜你喜欢
    • 2010-12-17
    • 2013-08-15
    • 2012-11-15
    • 2013-11-14
    • 2014-07-31
    • 2011-07-14
    • 2013-02-01
    • 2014-01-04
    • 2017-03-31
    相关资源
    最近更新 更多