比较有关主题的问题(值与行)的分布



我有一个ldamodel和一些数据(目前50k问题)。当我运行模型时,它会制作主题,并将每个问题都放在主题中。在此示例中有20个主题。

对于每个问题,我都可以在主题上找到分布,因为大多数问题都不适合100%至1个主题。

我想做的是将每个问题与其他问题进行比较以寻找相似性,以便我可以选择几乎相同的问题。

我提取了一小部分问题,并在那里分发:

words = {'00': [0,0,35,0,0,0,0,0,0,0,],'01': [0,0,20,0,0,0,0,0,0,0,],
'02': [0,15,0,0,0,0,0,0,0,0,],'03': [0,0,0,0,0,0,5,0,0,0,],
'04': [0,0,0,0,0,0,28,0,0,0,],'05': [0,0,0,0,97,0,0,0,0,0,],
'06': [19,0,39,0,0,0,0,0,0,0,],'07': [0,0,0,25,0,0,41,0,56,38,],
'08': [0,0,0,54,0,0,0,0,0,0,],'09': [0,0,0,0,0,0,0,0,34,0,],
'10': [0,0,0,16,1,0,0,0,0,0,],'11': [0,0,0,0,0,99,0,0,0,0,],
'12': [79,0,0,0,0,0,0,35,0,0,],'13': [0,57,0,0,0,0,0,0,0,0,],
'14': [0,0,0,0,0,0,0,0,0,0,], '15': [0,0,0,0,0,0,0,0,0,0,],
'16': [0,0,0,0,0,0,0,23,0,54,],'17': [0,21,0,0,0,0,0,36,0,0,],
'18': [0,0,0,0,0,0,23,0,0,0,],'19': [0,0,0,0,0,0,0,0,0,0,]}
dfwords = pd.DataFrame.from_dict(words)

目前,我有一个循环将每个问题与其他问题进行比较。它在所有其他问题" j"上循环每个问题" i",并计算每个主题" k"的分数差异。对于每个问题" j"都有一些差异" k",分数最低的问题看起来最相似。

df4 = pd.DataFrame(np.zeros((len(Question), len(Question)))) 
for i in range(len(Question)):
    df3 = pd.DataFrame(np.zeros((len(Question), 1)))
    df3.rename(columns={0:str(i)}, inplace=True)
    for j in range(len(Question)):
        indnum = 0
        for k in range(Topic_num):
            indnum+=abs((dfwords.iat[j, k]-dfwords.iat[i, k]))
        df3.iat[j,0]=indnum
    df4[i] = df3[str(i)]

它起作用,但这确实是蛮力,我敢肯定,这样做有很多更聪明的方法,但是目前我无法弄清楚它们。我为每个主题都有XY坐标,所以我想对此做些事情,但我不确定如何。

必须更聪明才能预先50k乘以50k乘以20次比较,并且使其更易于访问,然后比50k乘以50k桌子。

谁能帮助我这样做,也许只是将我指向正确的方向?任何帮助确实会被化为

我切换到numpy并取得了更好的性能。

对我有用的示例:

pattern = np.random.randint(0,10,size=(20,numCols))
for i in range(pattern.shape[0]):
    for j in range(pattern.shape[0]):
        differ = sum(abs(pattern[i,:] - pattern [j,:]))
        if j == 0:
            tempnp = np.array([[differ]])
        else:
            tempnp = np.append(tempnp,[[differ]],axis=1)
        sum(abs(pattern[i,:] - pattern [j,:]))
    if i == 0:
        finalnp = np.array(tempnp)
    else:
        finalnp = np.append(finalnp,tempnp,axis=0)

,但我仍然感觉到这可以经常优化。

相关内容

  • 没有找到相关文章

最新更新