Python 如何将额外的列车数据集成到朴素贝叶斯中?

Python 如何将额外的列车数据集成到朴素贝叶斯中?,python,text,scikit-learn,classification,naivebayes,Python,Text,Scikit Learn,Classification,Naivebayes,我用NaiveBayes库(Python)做了一个关于web分类的例子,效果很好(对web页面进行了很好的分类) 实际上我有两个问题。首先, 我只使用网页的内容(文章端)。这没问题,但是,我想要一个具有双重权重效应的综合标题。我可以检索变量列表名为titles[]的页面标题。这是我的classfy代码: x_train = vectorizer.fit_transform(temizdata) classifer.fit(x_train, y_train) 我可以在文章文本中添加标题,但这次

我用NaiveBayes库(Python)做了一个关于web分类的例子,效果很好(对web页面进行了很好的分类)

实际上我有两个问题。首先,

我只使用网页的内容(文章端)。这没问题,但是,我想要一个具有双重权重效应的综合标题。我可以检索变量列表名为titles[]的页面标题。这是我的classfy代码:

x_train = vectorizer.fit_transform(temizdata)
classifer.fit(x_train, y_train) 
我可以在文章文本中添加标题,但这次文章文本和标题的权重相同

在代码中,
temizdata
是我保存网页文章文本的列表。而
y_train
是班级。如何将标题[]与双重加权分类集成

我使用Countvectorizer进行矢量化,并使用NaiveBayes多项式NB分类器

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
vectorizer = CountVectorizer()
classifer = MultinomialNB(alpha=.01)

如果我正确理解了您的问题,那么您希望使用从文本和标题派生的字数统计功能。标题中的特征应比文本特征具有两倍的权重。我认为在这种情况下(如果可能的话)为特征指定优先权重是没有意义的。毕竟,你做机器学习是因为你想让计算机知道哪些功能更重要

我建议您可以尝试两种替代方法:

  • 功能合并从文本主体生成
    x_text_列
    ,从标题生成
    x_title_列
    ,并按如下方式合并:

    x_text_train= text_vectorizer.fit_transform(temizdata)
    x_title_train= title_vectorizer.fit_transform(titledata)
    x_train = np.hstack(x_text_train, x_title_train)
    
    确保对文本和标题使用两个单独的向量器,以便分类器了解文本特征和标题特征之间的差异。如果其中任何一个特征更重要,那么分类器应该解决这个问题

  • 做:像你已经做的那样,在文本上训练一个分类器。培训另一个分类器的标题。最后,在前两个分类器的输出上训练第三个分类器

  • 编辑:

  • 如果您真的希望标题的重要性是文本的两倍,那么您可以训练两个独立的分类器(如在层次分类中),并对其输出进行加权平均(如果输出是类概率)

  • 你使用什么框架?什么是
    矢量器
    分类器
    ?我很抱歉,因为我忘记了@kazemakase。我用了CountVectorizer和NaiveBayes多项式听上去像scikit learn,对吧?编辑:啊,是的:)@kazemakase是的,sckit学习。我只知道这个方法:(我需要关于这个问题的帮助)我可以请你在你的问题中添加
    scikit learn
    标签吗?非常感谢@kazemakase,我会尝试这些方法。我写道“实际上我有两个问题”。第二个问题是:…如果你能看一下,我对你有义务