RAKE与GENSIM

时间:2016-11-05 08:12:51

标签: python rake information-retrieval gensim cosine-similarity

我正在尝试计算相似度。首先,我使用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]

0 个答案:

没有答案