Axe*_*Axe 4 python tf-idf scikit-learn
我正在尝试使用 TFIDF 和 SVM 对某些文件进行文本分类。每次选择 3 个词的功能。我的数据文件已经是这样的格式:angel eyes has, each one for, on its own. 没有停用词,也不能进行旅鼠或词干提取。我希望该功能被选择为:angel eyes has ...我编写的代码如下:
import os
import sys
import numpy
from sklearn.svm import LinearSVC
from sklearn.metrics import confusion_matrix
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import metrics
from sklearn.datasets import load_files
from sklearn.cross_validation import train_test_split
dt=load_files('C:/test4',load_content=True)
d= len(dt)
print dt.target_names
X, y = dt.data, dt.target
print y
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
print y_train
vectorizer = CountVectorizer()
z= vectorizer.fit_transform(X_train)
tfidf_vect= TfidfVectorizer(lowercase= True, tokenizer=',', max_df=1.0, min_df=1, max_features=None, norm=u'l2', use_idf=True, smooth_idf=True, sublinear_tf=False)
X_train_tfidf = tfidf_vect.fit_transform(z)
print tfidf_vect.get_feature_names()
svm_classifier = LinearSVC().fit(X_train_tfidf, y_train)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我在“X_train_tfidf = tfidf_vect.fit_transform(z)”处遇到错误:AttributeError:lower not found。
如果我修改代码来做
tfidf_vect= TfidfVectorizer( tokenizer=',', use_idf=True, smooth_idf=True, sublinear_tf=False)
print "okay2"
#X_train_tfidf = tfidf_transformer.fit_transform(z)
X_train_tfidf = tfidf_vect.fit_transform(X_train)
print X_train_tfidf.getfeature_names()
Run Code Online (Sandbox Code Playgroud)
我收到错误:TypeError: 'str' object is not callable 请有人告诉我我哪里出错了
标记器参数的输入是可调用的。尝试定义一个函数来适当地标记您的数据。如果是逗号分隔,则:
def tokens(x):
return x.split(',')
Run Code Online (Sandbox Code Playgroud)
应该管用。
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vect= TfidfVectorizer( tokenizer=tokens ,use_idf=True, smooth_idf=True, sublinear_tf=False)
Run Code Online (Sandbox Code Playgroud)
创建一个随机字符串分隔 ,
a=['cat on the,angel eyes has,blue red angel,one two blue,blue whales eat,hot tin roof']
tfidf_vect.fit_transform(a)
tfidf_vect.get_feature_names()
Run Code Online (Sandbox Code Playgroud)
返回
Out[73]:
[u'angel eyes has',
u'blue red angel',
u'blue whales eat',
u'cat on the',
u'hot tin roof',
u'one two blue']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22029 次 |
| 最近记录: |