python sklearn pipiline fit: "AttributeError: lower not found"
python sklearn pipiline fit: "AttributeError: lower not found"
我正在尝试使用 sklearn 将多个文本数据分为 3 类。但是我得到
"AttributeError: lower not found"
当 运行.
代码:
train, test = train_test_split(df, random_state=42, test_size=0.3, shuffle=True)
X_train = train.contents
X_test = test.contents
Y_train = train.category
Y_test = test.category
clf_svc = Pipeline([('vect', CountVectorizer()),
('tfidf', TfidfVectorizer(tokenizer=',', use_idf=True, stop_words="english")),
('clf', OneVsRestClassifier(LinearSVC(), n_jobs=1)),
])
clf_svc = clf_svc.fit(X_train, Y_train)
predicted_svc = clf_svc(X_test)
print(np.mean(predicted_svc == Y_test))
Dataframe (df) 由两列组成:内容(长文本数据)和类别(文本
数据)。内容是抄袭的文本,因此包含数十或数百个单词,类别是单个单词,例如 "A"、"B".
我已经在 Whosebug 中检查了过去的问题,但我无法解决发生的这个错误。
我很高兴知道解决方案或代码本身的问题。
任何建议和答案将不胜感激。
提前致谢。
删除步骤 ('vect', CountVectorizer())
或使用 TfidfTransformer
而不是 TfidfVectorizer
,因为 TfidfVectorizer
需要字符串数组作为输入,而 CountVectorizer()
returns 出现矩阵(即数字矩阵)。
默认 TfidfVectorizer(..., lowercase=True)
将尝试 "lowercase" 所有字符串,因此出现 “AttributeError: lower not found”
错误消息。
另外,参数 tokenizer
需要一个可调用(函数)或 None
,所以不要指定它。
我正在尝试使用 sklearn 将多个文本数据分为 3 类。但是我得到
"AttributeError: lower not found"
当 运行.
代码:
train, test = train_test_split(df, random_state=42, test_size=0.3, shuffle=True)
X_train = train.contents
X_test = test.contents
Y_train = train.category
Y_test = test.category
clf_svc = Pipeline([('vect', CountVectorizer()),
('tfidf', TfidfVectorizer(tokenizer=',', use_idf=True, stop_words="english")),
('clf', OneVsRestClassifier(LinearSVC(), n_jobs=1)),
])
clf_svc = clf_svc.fit(X_train, Y_train)
predicted_svc = clf_svc(X_test)
print(np.mean(predicted_svc == Y_test))
Dataframe (df) 由两列组成:内容(长文本数据)和类别(文本 数据)。内容是抄袭的文本,因此包含数十或数百个单词,类别是单个单词,例如 "A"、"B".
我已经在 Whosebug 中检查了过去的问题,但我无法解决发生的这个错误。
我很高兴知道解决方案或代码本身的问题。
任何建议和答案将不胜感激。
提前致谢。
删除步骤 ('vect', CountVectorizer())
或使用 TfidfTransformer
而不是 TfidfVectorizer
,因为 TfidfVectorizer
需要字符串数组作为输入,而 CountVectorizer()
returns 出现矩阵(即数字矩阵)。
默认 TfidfVectorizer(..., lowercase=True)
将尝试 "lowercase" 所有字符串,因此出现 “AttributeError: lower not found”
错误消息。
另外,参数 tokenizer
需要一个可调用(函数)或 None
,所以不要指定它。