【问题标题】:What does "weight" on search results in PyPI help in choosing a package?PyPI 中搜索结果的“权重”对选择包有什么帮助?
【发布时间】:2015-02-23 23:36:53
【问题描述】:

当我在PyPI 中搜索“XML 解析”时,匹配的结果按“权重”列出。当我将鼠标悬停在“权重”上时,它会显示“按字段(名称、摘要、关键字、描述、作者、维护者)加权的搜索词的出现”。

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

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

谢谢。

【问题讨论】:

  • 这是关于我如何从 PyPI 中挑选包的。

标签: python pypi


【解决方案1】:

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

./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>

然后基于此我搜索“分数”,这导致我找到了search 函数。在该函数中,它定义了赋予不同列的权重:

    columns = [
        ('name', 4),      # doubled for exact (case-insensitive) match
        ('summary', 2),
        ('keywords', 2),
        ('description', 1),
        ('author', 1),
        ('maintainer', 1),
    ]

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

在您的示例中,对于“XML 解析”,顶部包是 Products.ParsedXML。分数是这样计算的:

  • 名称:“Products.ParsedXML”= 4 + 4 = 8
  • 总结:“解析后的 XML 允许您...” = 2 + 2 = 4
  • 关键字:“parsedxml xml zope2”= 2 + 2 = 4
  • 描述:“解析的 XML 允许您...” = 1 + 1 = 2
  • 作者:“Zope 社区和其他各种贡献者”= 0
  • 维护者:(空)= 0
  • 总计 = 8 + 4 + 4 + 2 + 0 + 0 = 18

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

因此,要获得尽可能高的分数,您需要让每个字段都与所需的搜索词匹配(又名“keyword stuffing”)。如果你正在考虑发布一个包,我不建议你尝试玩这个系统。评分算法很简单,因为它依赖于诚实的人。如果每个人都试图在这些字段中填充额外的关键字以获得更高的分数,那将是一团糟,最终会得到更差的搜索结果。

【讨论】:

  • 谢谢。是否有质量和用户评分或类似的包,以便它可以帮助我从类似的包中选择哪一个?
  • 不,pypi 没有用户包的评级。 Pypi 向您显示下载计数,并且有一些网站可以让您查看下载计数以了解软件包的受欢迎程度:pypi-ranking.info/alltime 除此之外,我会查看:它在 github/bitbucket 上有多少星/关注者,文档有多好,是否有测试,是否有活跃的开发人员,是否有当前版本等。然后对包进行试验,看看它的工作情况。
【解决方案2】:
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())

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2014-12-04
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多