如何将纯文本转换为要素/值对格式

时间:2014-10-01 12:06:56

标签: machine-learning classification svm

我检查了各种svm分类器,它使用特征/值对格式进行分类。 (我专注于svmlight - http://svmlight.joachims.org/)格式是这样的:

-1 1:0.43 3:0.12 9284:0.2 # abcdef

但是当我以纯文本形式获取用户输入时,要使用svmlight对其进行分类,我需要将纯文本转换为此格式。

怎么做?

1 个答案:

答案 0 :(得分:1)

你必须使用一些真正有价值的嵌入。换句话说,你在文本空间中有数据,这或多或少是不同长度的单词序列的空间。有许多方法,一个更好用于一个目的,另一个 - 另一个,最简单的方法包括:

  • 在单词级别编码,因此每个单词都是“维度”,因此在您的情况下 - 您创建单词词典并为每个单词指定一个连续的整数。现在每个文档都可以编码为一个向量,其中每个特征的值例如是“如果单词在文档中”(单词集)或者“单词出现多少次”(单词包;也称为术语频率,tf)或一些更复杂的统计数据(例如tf-idf;术语频率乘以反转文档频率)。
  • 编码ngram的级别,类似于前一个,但不是枚举你枚举每个n-gram的每个单词(n-gram是任何n字序列),这是更多的语法特征,但需要更多要训​​练的数据。
  • 使用一些“魔法编码”或专门的“字符串内核”。

使用scikit-learn的tfidf矢量化工具可以轻松完成前两种方法,请参阅http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html。最后一个需要更复杂的软件。