我正在尝试计算相似度。首先,我使用RAKE库从已爬网作业中提取关键字。然后我将每个作业的关键字放入单独的数组中,然后将所有这些数组合并到documentArray中。
documentArray = ['愤怒 命令,自信,渐近,适应性,真实性,攻击性,分析的 思维,分子生物学,分子生物学,分子生物学 生物学,分子生物学,分子生物学,硕士,英语,分子 生物学,伊斯兰堡,伊斯兰堡区,伊斯兰堡首都 土,巴基斯坦,,拉瓦尔品第,拉瓦尔品第,旁遮普,巴基斯坦'&#34], ['竞争性补偿,化验设计,积极态度,定期 基础,激励他人,会议相关,改善国家,旅行,博士 学位,会议论文摘要,福利待遇,日常基础,科学 论文,申请说明']
queryStr ='体外,生物化学,PCR,Western 印迹,神经科学,分子生物学,细胞 生物学,免疫组织化学,显微镜,动物 模型,演示文稿,免疫沉淀,细胞生物学,硕士学位 学位,学士学位,,,,,'
然后我写了以下GENSIM代码,
班Gensim:
def __init__(self): print("Init") def calculateGensimSimilarity(self, texts, query): dictionary = corpora.Dictionary(texts) corpus = [dictionary.doc2bow(text) for text in texts] lsi = models.LsiModel(corpus, id2word=dictionary, num_topics=2) lda = models.LdaModel(corpus, id2word=dictionary, num_topics=2) index_lsi = similarities.MatrixSimilarity(lsi[corpus]) index_lda = similarities.MatrixSimilarity(lda[corpus]) vec_bow = dictionary.doc2bow(query.lower().split()) vec_lsi = lsi[vec_bow] vec_lda = lda[vec_bow] print("LSI Model") sims_lsi = index_lsi[vec_lsi] print("LDA Model") print(sims_lsi) sims_lda = index_lda[vec_lda] print(sims_lda)
打印LSA得分为0,LDA得分为90%+匹配。请告诉我错误的地方以及如何修改以计算正确的余弦相似度。
LSA分数[0。0.] LDA评分[0.94234258 0.9477495]