我有大约 20k 个包含 60 - 150 个单词的文档。在这 20K 份文档中,有 400 份文档的相似文档是已知的。这400个文档作为我的测试数据。
目前我正在删除这 400 个文档,并使用剩余的 19600 个文档来训练 doc2vec。然后我提取训练数据和测试数据的向量。现在,对于每个测试数据文档,我找到它与所有 19600 个训练文档的余弦距离,并选择余弦距离最小的前 5 个。如果标记的相似文档出现在前 5 个文档中,则认为它是准确的。准确率% = 准确记录数/记录总数。
我找到类似文档的另一种方法是使用 doc2Vec 最相似的方法。然后使用上面的公式计算准确度。
上面两个精度不匹配。随着每个时期,一个增加,另一个减少。
我正在使用此处给出的代码:https ://medium.com/scaleabout/a-gentle-introduction-to-doc2vec-db3e8c0cce5e 。用于训练 Doc2Vec。
我想知道如何调整超参数,以便我可以使用上述公式获得准确度。我应该使用余弦距离来查找最相似的文档还是应该使用 gensim 的最相似函数?
我在数据框中有 100 个按日期排序的浮动列。
ID Date C1 C2 ....... C100
1 02/06/2019 32.09 45.06 99
1 02/04/2019 32.09 45.06 99
2 02/03/2019 32.09 45.06 99
2 05/07/2019 32.09 45.06 99
Run Code Online (Sandbox Code Playgroud)
我需要根据 ID 和日期在累积总和中获得 C1 到 C100。
目标数据框应如下所示:
ID Date C1 C2 ....... C100
1 02/04/2019 32.09 45.06 99
1 02/06/2019 64.18 90.12 198
2 02/03/2019 32.09 45.06 99
2 05/07/2019 64.18 90.12 198
Run Code Online (Sandbox Code Playgroud)
我想在不从 C1-C100 循环的情况下实现这一点。
一列的初始代码:
var DF1 = DF.withColumn("CumSum_c1", sum("C1").over(
Window.partitionBy("ID")
.orderBy(col("date").asc)))
Run Code Online (Sandbox Code Playgroud)
我在这里发现了一个类似的问题,但他手动为两列做了这个:Spark 中的累积总和