我正在处理电子邮件主题,所以我要分类20封电子邮件,20行文件 - 一行有一个电子邮件主题。我一直在努力,但我无法弄清楚是什么功能参考和svmlight的输入文件的格式。任何提示都将有所帮助。提前谢谢!
编辑:我已将前500个主题行的tf-idf作为试用版。但是,根据svm-light格式,我们需要:
<line> .=. <target> <feature>:<value> <feature>:<value> ... <feature>:<value> # <info>
我只有500行的tf-idf功能。可悲的是,这不是由svm-light读取的,因为它需要功能/值对。关于价值可能是什么或者如何更改文件以便阅读的任何想法?
我对该文件的想法(前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
请帮忙!
答案 0 :(得分:1)
如果您从每个单词中创建一个功能,请创建所有唯一单词 w(1) .. w(n)的列表。现在,如果您正在检查的样本中存在 w(i),则feature(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 ...
(虽然我认为你不需要指定零,即缺席特征)。
然而,鉴于样本量较小(只是受试者),您不太可能获得非常好的结果。也许你最好使用例如bigram或trigram功能(使用滑动窗口分割每个单词; tri , rig , igr , gra ,< EM> RAM )。
我认为尝试将tf-idf与SVM混合是不合理的,它们是针对同一基本问题的不同方法。