大家好,我刚开始学习scikit learn,正在尝试进行一些文本多类分类,我在按照这个教程进行学习。
我的数据集有4个类别'fipdl', 'lna','m5s','pd'
,所以我有4个文件夹(每个类别一个),每个文件夹包含120个txt文件,每个文件大约有25行文本(来自Facebook的状态更新)。我使用其中的90%进行训练,10%用于测试。
10%的txt文件名以’ts’开头,我使用这些文件进行测试。
所以我的代码是:
...
输出结果如下:
...
现在结果看起来好得令人难以置信,因为每种方法都给我1的精确度。
我还想尝试预测我自己输入的字符串而不是使用测试集,以便进行更多测试,所以我将原始代码修改为如下:
...
但它失败了,显示错误信息:
ValueError: Found arrays with inconsistent numbers of samples: [18 44]
我是不是遗漏了什么?或者这完全是一个错误的方法?
任何帮助将不胜感激,
提前感谢Nico。
回答:
尽管我还没有弄清楚为什么它给我完美的结果,但我决定使用不同的方法来分类我的文本(使用MultinomialNB)并用我选择的字符串进行测试。我不确定这是否是最好的方法,但它有效,所以我决定作为答案发布:(请注意,并非所有代码行都是必要的)
...
然后在控制台中只需运行script.py "string to predict"
这个代码可以做很多改进,比如保存训练好的模型,但对于我的使用来说已经足够好了。