PyPI中搜索结果的“权重”对选择包有什么帮助?

2024-05-15 22:42:00 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在PyPI中搜索“XML parse”时,匹配的结果根据“weight”列出。当我把鼠标移到“权重”上时,它显示“按字段(名称、摘要、关键字、描述、作者、维护者)加权的搜索项的出现”。在

  • “按字段加权(名称、摘要、关键字、描述、作者、维护者)”是什么意思?

  • 理想情况下,排名较高的软件包是否最有可能优于排名较低的软件包?

谢谢。在


Tags: 名称pypiparse情况维护者作者关键字xml
2条回答

有趣的问题!我克隆了pypi repository并搜索“weight”,这给了我这一行:

./templates/index.pt:15: <th tal:condition="exists:data/scores"><u title="Occurrence of search term weighted by field (name, summary, keywords, description, author, maintainer)">Weight*</u></th>

然后基于此,我搜索“scores”,这将我引向^{}函数。在该函数中,它定义了赋予不同列的权重:

^{pr2}$

因此,如果你的搜索词出现在包的名称中,它会得到4分,如果它出现在摘要中,它会得到2分,依此类推。它计算每个术语的这个值,然后将它们相加。在

在您的示例中,对于“XML parse”,最上面的包是Products.ParsedXML。分数的计算方法如下:

  • 姓名:“产品.ParsedXML“=4+4=8
  • 摘要:“解析的XML允许您…”=2+2=4
  • 关键词:“parsedxml-zope2”=2+2=4
  • Description:“解析的XML允许您…”=1+1=2
  • 作者:“Zope社区,以及其他各种贡献者”=0
  • 维护者:(空)=0
  • 总计=8+4+4+2+0+0=18

18的确是搜索结果页面上的分数。在

所以,为了得到最好的分数,你需要让每个字段都匹配所需的搜索词(AKA“keyword stuffing”)。如果你想发布一个软件包,我不建议你试着去玩这个系统。计分的算法很简单,因为它依赖于人们的诚实。如果每个人都试图在这些字段中添加额外的关键字以获得更高的分数,那将是一场混乱,最终会导致更糟糕的搜索结果。在

jobskills = {'java': 10, 'python': 20, 'jquery': 5}

candidateskills = ['python', 'java','angular']

foundskills={k:jobskills[k] for k in candidateskills if k in jobskills}

print sum(foundskills.values())

相关问题 更多 >