【发布时间】:2016-03-30 06:39:24
【问题描述】:
我正在寻找一些指导。我是 NLP 新手。我可以在 python 中找到我的方式,并编码了一些特征提取器。我想要做的是能够使用 sklearn 预测情绪类型,如快乐、悲伤等。为此,我创建了一个特征提取器,它提取了几个特征,如起始 POS、结束 POS、标点符号的数量、WH__ 单词的数量等。它创建了这些特征的数组,我试图找到一种方法来使用这些数据进行监督学习。我已经浏览了所有 800 多个句子,并有目标可以回答这些句子。然后我将前 750 个数组和答案数组提供给 sklearn,然后尝试对最后 50 个进行预测。sklearn 预测,但预测真的很差。
当然是我的问题,而不是 sklearn。我正在寻找一些指导来帮助我完成可能正确的功能建议,建议重新:规范化数据,以及总体上任何指导。我将在下面举例说明。
文本文件每行包含一个句子,特征提取器加载每个句子并以数组的形式给出特征列表。 此时数据看起来像
特征数组:
setx=[[1, 0, 5, 12, 5, 13, .... -1, 0, 0, -1, 0, -1, 0, -1, 17, 11, 0],..... many more arrays like this]
目标数组: sety=[0, 0, 0, 0, 0, 0, 0, ..... 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1]
然后我正在使用:
clf=svm.SVC(gamma=0.001,C=10)
clf.fit(setx,sety)
下面的 tstx 和 tsty 是全部特征数组和目标数组的最后 50 个
count=0
for n in tstx:
print clf.predict(n),',',tsty[count]
count=count+1
print "-----"
关于改进预测的任何建议!我很确定我在某处缺少德克萨斯州大小的洞:-)
非常感谢
【问题讨论】:
-
嗯,机器学习不是一门手艺,而是一门艺术。我建议阅读其他人的做法并从他们的想法中获得灵感。这不是一个真正的编程问题,所以它在 SO 上相当离题。
标签: nlp scikit-learn prediction