Sklearn通过句子对文档进行矢量分类

时间:2018-06-27 19:46:02

标签: python scikit-learn nlp classification sklearn-pandas

foo((Comparable & Serializable) instance);

我有一个文档,试图以正确的格式放入分类器。我已将文档分解为单独的列表。因此数据看起来像这样。

temp = []
for i in chunks:
    vectorizer2 = CountVectorizer()
    vectorizer2.fit_transform(i).todense()
    temp.append(vectorizer2)
    print(vectorizer2.vocabulary_)

x = [LinearSVC_classifier.classify(y) for y in temp ]

我编写的函数使我部分在那里,但随后出现此错误。 ValueError:空词汇表;也许文件只包含停用词 而且得到这个...

chunks = [[ 'sentence1'] , ['sentence2'], ['sentences']] 

如果我分别手动运行每个句子,则每个句子的工作错误为0,分类器也可以工作。我希望最后的结果看起来像这样。

{u'and': 4, u'www': 53, u'is': 25, u'some': 44, u'commitment': 10} 

或者无论如何,我可以看到每个句子的分类都是诚实的。我只是不确定错误在哪里,是否可以修复或我需要新方法。任何帮助将不胜感激。

['sentence1', 'no'] , ['senence2', 'yes'] 

1 个答案:

答案 0 :(得分:1)

只需将初始化放在这样的循环之外,否则将针对每个句子分别一次又一次地重新初始化,这是不正确的。

temp = []
vectorizer2 = CountVectorizer()   #<--- This needs to be initialized only once
for i in chunks:

    vectorizer2.fit_transform(i).todense()
    temp.append(vectorizer2)
    print(vectorizer2.vocabulary_)

x = [LinearSVC_classifier.classify(y) for y in temp ]