如何串联两个TF-IDF向量以及可以输入模型的其他特征?

问题描述

我发现适用于我的情况的解决方案如下。希望这对某人有帮助。 如何将由sklearn创建的TF-IDF的输出连接起来,以传递到Keras模型或张量中,然后可以将其输入到密集神经网络中?我正在研究FakeNewsChallenge数据集。任何指导都会有所帮助。

FakeNewsChallenge数据集是这样的:

训练集-[标题,正文,标签]

  • 训练集分为两个不同的CSV(train_bodies,train_stances),并通过BodyID链接。
  • train_bodies-[正文ID(数字),articleBody(文本)]
  • train_stances-[标题(文本),Body ID(数字),姿态(文本)]

测试集-[标题,正文]

  • 测试集分为两个不同的CSV(test_stances_inlabled,test_bodies)
  • Test_bodies-[Body ID,aritcleBody]
  • Test_stances_unlabled-[标题,正文ID]

分发使它变得极其困难:

  • 行-49972
  • 不相关-0.73131
  • 讨论-0.17828
  • 同意-0.076012
  • 不同意-0.0168094

立场-[不相关,讨论,同意,不同意]


我想做的是连接两个单独的TF-IDF向量以及其他特征,然后我可以将它们馈送到某个层,例如密集层。你会怎么做?我

解决方法

在我之前有一条评论回答了问题,但我不再看到该评论。我显然忘记了这种方法,但是在程序的其他区域中使用了它。

您使用numpy.hstack(tup)或numpy.vstack(tup),其中

  • tup-ndarray的序列

    除了第二个轴外,所有阵列的形状都必须相同,但一维阵列可以是任意长度。

它返回一个堆叠的ndarray。

这是一些代码,以防万一。

注意:这里没有余弦相似度计算。随便你怎么做。我正在尝试快速执行此操作,但也要尽可能清晰。希望这对某人有帮助。


def computeTF_IDF(trainX1,trainX2,testX1,testX2):
 vectorX1 = TfidfVectorizer(....)
 tfidfX1 = vectorX1.fit_Trasnsform(trainX1)

 vectorX2 = TfidfVectorizer(....)
 tfidfX2 = vectorX2.fit_Trasnsform(trainX2)

 tfidf_testX1= vec_body.transform(testX1)
 tfidf_testX2 = vec_headline.transform(testX2)
 
 # Optionally,you can insert code from * to ** here from below.

 return vectorX1,tfidfX1,...,tfidf_testX1,tfidf_testX2

# Call TF-IDF function to compute.
trainX1_tfidf,trainX2_tfidf,testX1_tfidf,testX2_tfidf = computeTFIDF(trainX1,testX2)

#*

# Stack matrices horizontally (column wise) using hstack().
trainX_tfidf = scipy.sparse.hstack([trainX1_tfidf,trainX2_tfidf])
testX_tfidf = scipy.sparse.hstack([testX1_tfidf,testX2_tfidf])

# Convert Spare Matrix into an Array using toarray() 
trainX_tfidf_arr = trainX_tfidf.toarray()
testX_tfidf_arr = testX_tfidf.toarray()

# Concatenate TF-IDF and Cosine Similarity using numpy.c_[],# which is just another column stack.
trainX_tfidf_cos = np.c_[trainX_tfidf_arr,cosine_similarity]
testX_tfidf_cos = np.c_[testX_tfidf_arr,cosine_similarity_test]

#**

# You can now pass this to your Keras model. 

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...