0

我试图理解这篇论文,但我真的在努力完成一些步骤。
我添加了一些让我感到困惑的片段,但整个代码都可以在这里找到

基本上,第一步是计算一个共现矩阵和一个稀有词列表,我对此很好。

然后我们需要一个 NN 列表和一个 NN 矩阵作为自动编码器的输入,并获得我们使用 LSH 的那些。

在这里,据我了解,我们正在为输入数据创建一个 hashsize-bit 哈希,然后我们正在为 co-occ 矩阵的每个值计算一个索引向量。

from lshash import LSHash
lsh = LSHash(hashsize, wordcount)
for i in range(len(cooc_matr)):
lsh.index(cooc_matr[i])

然后我们正在创建 NN 列表和矩阵:

friendslist = []
sim_matr = []
for i in range(len(rarewords)):
   result = lsh.query(cooc_matr[rarewords[i]], num_results=friends, 
                                           distance_func='euclidean')
   length = len(result)
   fri = []
   sim = []
   for j in range(length):
        fri.append(str(np.array(result[j][0])))
        sim.append(float(result[j][1]))
   if length < friends:
        count = friends - length
        for i in range(count):
            fri.append(str(8))
            sim.append(-1)
   friendslist.append(fri)
   sim_matr.append(sim)

这段代码有两点我不明白:首先,查询所有罕见词的每个共现值是什么意思(lsh.query(cooc_matr[rarewords[i]], num_results=friends,distance_func='euclidean'))。
其次,我完全不知道这个循环的目的是什么:

for i in range(count):
     fri.append(str(8))
     sim.append(-1)
friendslist.append(fri)
sim_matr.append(sim)

以及为什么将 a 附加str(8)fri列表中。

如果您能帮助我理解,我将不胜感激。如果你觉得我的问题很愚蠢,我很抱歉,但我只是这件事的初学者。

4

0 回答 0