我有一些由它们的双元组表示的列表,以及它们各自出现的次数。这些大字来自于由所有独特的大字组成的词汇。我想用SklearnClassifier(SVC)来解决这个问题
到目前为止我所做的代码:
train_ngrams = [(train_filtered_tweets[i], train_filtered_tweets[i + 1]) for
i in range(len(train_filtered_tweets) - 1)]
print "Tweets from train set as bigrams", Counter(train_ngrams)
classif = SklearnClassifier(BernoulliNB()).train(train_ngrams)
classify = SklearnClassifier(SVC(), sparse=False).train(Counter(train_ngrams))
print classify
但我得到了一个错误:
^{pr2}$我想这是因为我的训练图不是特征向量,但我不知道如何去做。在
您的培训数据还需要特定的目标标签。考虑一下这个来自nltk website的示例:
如您所见,目标标签是ham或spam。此外,您似乎在使用
^{pr2}$Counter
对象,而API正在查找元组列表,其中包含每个元组中单词计数的字典以及标签。我不知道你为你的tweet语料库创建了什么目标标签,但是我可以告诉你如何为你的语料库生成双语法频率词典,假设你的语料库是iterable,其中每个元素都是tweet。在现在你所要做的就是找出你的标签是什么,然后生成最终的培训数据,这些数据与给定文档中的结构保持一致。在
相关问题 更多 >
编程相关推荐