Python文件格式的电子邮件分类与svm光



我正在处理电子邮件主题,所以我有20封电子邮件要分类,而一个有20行的文件-一行有一个电子邮件主题。我一直在研究它,但我无法弄清楚这些功能指的是什么以及svmlight的输入文件的格式。任何提示都会有所帮助。提前感谢!

编辑:我已经把前500个主题行的tf idf作为一个试验。然而,根据svm光格式,我们需要:

<line> .=. <target> <feature>:<value> <feature>:<value> ... <feature>:<value> # <info>

我只有500行的tf-idf功能。遗憾的是,支持向量机并没有理解这一点,因为它需要特征/值对。关于这个值可能是什么,或者我如何更改文件以便被读取,有什么想法吗?

我有一个文件的想法(前5个电子邮件功能):

1 201 1.0
2 280 0.123165672613
2 313 0.343915400191
2 515 0.157569797284
2 588 0.343915400191
2 652 0.343915400191
2 657 0.343915400191
2 774 0.23622904941
2 921 0.283118375032
2 1158 0.254849368195
2 1240 0.343915400191
2 1348 0.343915400191
2 1362 0.222321349873
3 57 0.342220321154
3 185 0.391349077827
3 244 0.391349077827
3 300 0.391349077827
3 693 0.391349077827
3 730 0.342220321154
3 1391 0.391349077827
4 57 0.342220321154
4 185 0.391349077827
4 244 0.391349077827
4 300 0.391349077827
4 693 0.391349077827
4 730 0.342220321154
4 1391 0.391349077827
5 32 0.323558487577
5 102 0.323558487577
5 157 0.364177022553
5 160 0.364177022553
5 718 0.151013895297
5 1171 0.364177022553
5 1277 0.323558487577
5 1308 0.364177022553
5 1336 0.364177022553

请帮忙!

如果您用每个单词创建一个特征,请创建一个所有唯一单词的列表w(1)w(n)。现在,如果您正在检查的样本中存在w(i),则特征(i)的值为1。(你也可以让这个值等于出现的次数,这样一个多次出现的特征就会得到更多的权重。)

假设以下样本;

1 My hovercraft is full of eels
2 Your account is suspended
3 This is it!

你可以摘录以下词典;

001 My
002 hovercraft
003 is
:
:
009 suspended
010 This
011 it!

(前导零只是为了使功能看起来与本文中的其他数字不同。通常不应该有任何前导零。)

样本1的特征为001到006;对于样品3,它们分别为010、003和011。其他功能的值为0。因此,样本3的完整表示看起来像

3 001:0 002:0 003:1 004:0 005:0 ...

(尽管我认为您不需要指定零,即不存在的功能)。

然而,考虑到样本量很小(只有受试者),你不太可能得到很好的结果。也许你最好使用例如二元或三元特征(使用滑动窗口拆分每个单词;tririgigrgra以及ram)。

我认为尝试将tf-idf与SVM混合是没有意义的,它们是解决同一个基本问题的不同方法。

最新更新