使用Scikit-learn进行文本分类



我正在用scikit learn为两个标签做文本分类..我正在使用方法加载我的文本文件 load_files

categories={'label0','label1'}
text_data = load_files(path,categories=categories)

从以下结构:

train
├── Label0
│   ├── 0001.txt
│   └── 0002.txt
└── Label1
    ├── 0001.txt
    └── 0002.txt

我的问题是,当我尝试查看 text_data.data 的形状时,它会返回:

print (type(text_data.data))
<type 'list'>
print text_data.data.shape
AttributeError: 'list' object has no attribute 'shape'
X = np.array(text_data.data)
print x.shape
(35,)

它返回一维数组..我认为它应该是 2D numpy 数组或字典,其中第一个用于文本,另一个用于类(label0 或 1)。我错过了什么吗?

问题是在调用load_files之后,它还不是一个 numpy 数组。它只是一个文本列表。您应该使用 CountVectorizerTfidfVectorizer 对此文本进行矢量化。

例:

cv = CountVectorizer()
X = cv.fit_transform(text_data.data)
y = text_data.target
print cv.vocabulary_  # Show words in vocabulary with column index
clf = LogisticRegression() # or other classifier
clf.fit(X, y)

相关内容

  • 没有找到相关文章

最新更新