Machine learning 如何将TFIDF功能与其他功能组合

Machine learning 如何将TFIDF功能与其他功能组合,machine-learning,nlp,text-analysis,Machine Learning,Nlp,Text Analysis,我有一个典型的NLP问题,我必须将新闻分为假新闻和真新闻 我创建了两组功能: A) 二元项频率逆文档频率 B) 使用pattern.en()获得的每个文档大约有20个相关特征,如文本的主观性、极性、停止词、动词、主语、语法关系等 对于单个预测,将TFIDF功能与其他功能结合起来的最佳方式是什么? 非常感谢大家。我不确定您在技术上是在问如何在代码中组合两个对象,还是在理论上之后要做什么,所以我将尝试回答这两个问题 从技术上讲,TFIDF只是一个矩阵,其中行是记录,列是特征。因此,要进行组合,您可以

我有一个典型的NLP问题,我必须将新闻分为假新闻和真新闻

我创建了两组功能:

A) 二元项频率逆文档频率

B) 使用pattern.en()获得的每个文档大约有20个相关特征,如文本的主观性、极性、停止词、动词、主语、语法关系等

对于单个预测,将TFIDF功能与其他功能结合起来的最佳方式是什么?
非常感谢大家。

我不确定您在技术上是在问如何在代码中组合两个对象,还是在理论上之后要做什么,所以我将尝试回答这两个问题

从技术上讲,TFIDF只是一个矩阵,其中行是记录,列是特征。因此,要进行组合,您可以将新功能作为列附加到矩阵的末尾。如果您使用sklearn执行此操作,那么您的矩阵可能是稀疏矩阵(来自Scipy),因此您必须确保您的新功能也是稀疏矩阵(或使其他功能密集)


这将为你提供训练数据,就如何处理这些数据而言,这就有点棘手了。你的特征来自一个双随机数频率矩阵,它是稀疏的(我这里不是说数据结构,我只是说你会有很多0),它是二进制的。而您的其他数据是密集和连续的。这将在大多数机器学习算法中按原样运行,尽管预测可能由密集变量控制。然而,通过一点功能工程,我在过去使用树状结构构建了几个分类器,这些树状结构将术语频率变量与其他一些更密集的变量相结合,并给出增强的结果(例如,一个分类器,它查看推特个人资料并将其分类为公司或个人)。通常,当我至少可以将密集变量存储到二进制(或分类,然后热编码到二进制)中,这样它们就不会占主导地位时,我会发现更好的结果

请将您的脚本添加到我制作的地方,并将脚本代码添加到您如何使用它。对带有代码的网页的引用不足。1) 这可能会随着时间的推移而改变,2)太多的代码涉及不同的主题。。。。你想让我选择你根据这些和你的问题中的几行代码。。。。不会发生的!对不起,也许我解释错了。我的问题是理论问题,我对脚本代码不感兴趣…是的。。那你就要被标记了。。。。如果您添加了代码来显示某些内容,然后阐述了您的观点并提出了问题,那么这将毫无问题地被接受(因此规则会随着时间的推移而改变)。现在它可能会被否决…:-(请参见此处:非常感谢您的回答。然后将pattern.en fetures添加到TFIDF功能中(只生成一个大阵列)在结果矩阵上使用单一分类模型可能不是一个好主意。最好的方法是使用两个不同的分类器:一个分类器a用于特征TFIDF,一个分类器B用于通过pattern.en生成的特征。然后,我使用第三个集成分类器将这两个预测值组合为随机林,以获得最终结果。对吗?好主意,我没有试过,你有证据证明经常能得到更好的结果吗?我可以看出,通过分离特征,你可以避免我上面列出的问题,但是你失去了密集和稀疏之间的关系。例如,可能一个具有正极性的二元图是真实新闻的关键指标,而具有负极性的二元图是假的,但两者都是f单独的特征是弱相关的。一个组合分类器可以捕捉到这一点,但分离不会。我会尝试两种方法,然后让你知道。目前我已经尝试指导两个分类器。基于TFIDF的分类器提供了优异的结果,而基于“pattern.en”的分类器与之前的结果相比,给出了更糟糕的结果。非常感谢您的回答。