如何从列表中制作特征向量

时间:2015-06-04 10:08:43

标签: python nltk

我是python的新手。实际上我有一个单词的火车数据。火车数据的每一行都是一篇文章。列车数据的标签在另一个文件中,每个i标签等于列车数据中的i文章。我确实干预了列车数据并删除了停用词。输出是每篇文章(行)的单词列表。现在我想提取它的特征向量,然后在python中的KNN分类器中使用它。我不知道该怎么做!我很欣赏任何快速的答案。这是我的代码,直到我所做的事情:

  import nltk
  from nltk.corpus import stopwords
  from nltk import stem
  stemmer=stem.PorterStemmer()


  with open('data.txt')as file:
  while 1:
      line=file.readline().split()
      filtered_words = [w for w in line if not w in stopwords.words('english')]
      documents = [stemmer.stem(line) for line in filtered_words]

      print(documents)


      if not line:
         break
      pass

1 个答案:

答案 0 :(得分:1)

看看Scikit-learn的CountVectorizerTfIdfVectorizer。这些可以获取文档列表(这些是令牌列表,如示例中所示)作为输入,并返回一个特征矩阵:

from sklearn.feature_extraction.text import CountVectorizer
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(your_list_of_documents)

您可以在Working with Text Data Tutorial

中找到更多信息