向量化字符串

Posted

技术标签:

【中文标题】向量化字符串【英文标题】:Vectorise a string 【发布时间】:2018-07-27 14:53:57 【问题描述】:

我是一个 python 菜鸟,但试图对一个字符串进行矢量化却没有运气。到目前为止,我从 URL 中的文章中提取数据,现在我试图对那篇文章进行分类,但到目前为止它不起作用。

(不断收到错误:raise AttributeError(attr + " not 找到”)AttributeError: 未找到下层)

似乎也没有任何帮助。

    url = input("Paste the webiste containing the article you want to analise here: ");
print "Analysing Webpage"
#Gets the URL from the extension
#Goose loaded
g = Goose()
#Extract the text and feed it to the classifier
article = g.extract(url=url)
article = article.cleaned_text
article = clean(article)
article =str(article)
print "Vectorising Text"
article = article.split();
vect = CountVectorizer(min_df=0., max_df=1.0)
X = vect.fit_transform(article)
X.toarray()
X = vect.transform(X).toarray()
print X
print "Predicting Political Bias"
loaded_model = pickle.load(open("text_clf_svm.pkl", 'rb'))
predicted_svm = loaded_model.predict(X)
print predicted_svm

非常欢迎任何形式的帮助或指示,并表示感谢 =)

【问题讨论】:

【参考方案1】:

您似乎对文本应用了 fit_transform。这导致与您/某人训练分类器的 X 矩阵不同。您需要同时“对齐”。

在您的情况下,您的 X 矩阵中有“下”这个词,但模型已经在没有这个词的矩阵上进行了训练。

在您的情况下,您可以使用 CountVectorizer 模型来训练模型并且您只需应用 transform,或者您应该使用 fit_transform 但在完整的语料库上训练模型并在以后的生产中使用它。

希望对你有帮助

问候, 尼古拉斯

【讨论】:

以上是关于向量化字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何消除对这个循环向量化的数组边界检查?

SKLearn 朴素贝叶斯:在 tfidf 向量化后添加特征

Pandas之字符串操作

Pandas之字符串操作

R中真正快速的词ngram向量化

scikit-learn 文本矢量化器的正则表达式/“token_pattern”