我有一百万个文件,其中包含免费文字。已为每个文件分配了代码或代码数。代码可以假定为类别。我通过删除停用词来规范化文本。我正在使用scikit-learn libsvm来训练模型以预测正确代码(类别)的文件。
我已经阅读和搜索了很多,但我无法理解如何将我的文本数据表示为整数,因为SVM或大多数机器学习工具使用数值进行学习。
我想我需要为整个语料库中的每个术语找到tf-idf。但我仍然不确定如何帮助我将文本数据转换为libsvm格式。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
您不必被迫使用tf-idf。
首先要遵循这个简单的方法:
我有两个文件(停止删除词,阻止词):
你好世界
和
天空晴朗你好
第1步:我生成以下词汇
hello
sky
sunny
world
第2步:
我可以像这样代表我的文件:
1 4
(因为单词hello在词汇表中位于第1位,单词world位于第4位) 和
1 2 3 1
第3步:我在每个字词附近添加术语频率并删除重复项
1:1 4:1
(因为单词hello在文档中出现1次,单词world出现1次)
和
1:2 2:1 3:1
如果在每行前面添加类号,则会有一个libsvm格式的文件:
1 1:1 4:1
2,3 1:2 2:1 3:1
这里第一个文档有第1类,第二个文档有第2和第3类。
在此示例中,每个单词与术语频率相关联。要使用tf-idf,你可以这样做,但用计算的tf-idf替换tf。