Python,NLP-查找包含给定单词列表的顶部文档



我是学习NLP的新手。我正在努力寻找最匹配的简历。

例如,我有一个我正在寻找的技能列表,如["java"、"python"、"SQL"、"API"、…]和一组文档。我想创建一个模型来找到与这些技能最匹配的文档。类似于简历匹配。

我从这个教程开始——从pdf中提取单词作为参考

我能够从pdf中提取文本,删除停止词,执行命名,计算这些关键字在每个文档中出现的次数,我不知道如何从这里开始。

有人能告诉我下一步该怎么做吗?任何教程或参考资料都会很有帮助。

如果你假设"最佳匹配",是与设定技能有"最大交集"的简历,那么你会得到(python(:

import numpy as np
D=[["I","know","python"],["I","know","java"]] # list of Documents
skils=["java"] # list of skils
I=[len(list(set(skils) & set(d))) for d in D]
R = sorted(range(len(I)), key=lambda k: I[k]) # rank of intersection with the skillset
best_resume=R[0]
print (R)

我希望它能有用。祝你好运

我认为您可以使用向量相似性方法。

最匹配的简历是查询(资格关键字(和文本之间的相似性。您可以使用doc2vec或sbert(我最喜欢(来收集前n个最佳结果。

corpus_embeddings = model.encode(YOUR_CV_TEXT, convert_to_tensor=True)
query_1=['java python SQL']
for query in query_1:
query_embedding = model.encode(query_1, convert_to_tensor=True)
cos_scores = util.cos_sim(query_embedding, corpus_embeddings)[0]
top_results = torch.topk(cos_scores, k=5)
print("nn======================nn")
print("Query:", query)
print("nTop 5 most similar sentences in corpus:")
for score, idx in zip(top_results[0], top_results[1]):
print(par_list[idx], "(Score: {:.4f})".format(score))

要了解更多信息,您可以深入了解:语义搜索

最新更新