2015-02-23 20 views
4

當我在PyPI中搜索「XML解析」時,根據「權重」列出匹配結果。當我將鼠標放在「重量」上時,它會顯示「按字段(名稱,摘要,關鍵字,描述,作者,維護者)加權的搜索項的出現次數」。PyPI中的搜索結果中的「權重」有助於選擇包裹嗎?

  • 什麼是「按字段加權(名稱,摘要,關鍵字,描述,作者,維護者)」是什麼意思?

  • 理想的情況下,做了包較高的排名很可能比一個包排名較低?

謝謝。

+0

它是關於如何選擇一個包一封來自PyPI。 – Tim 2015-02-23 23:47:27

回答

4

有趣的問題!我克隆了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社區,以及各種其他貢獻者」=
  • 維護者:(空)=
  • 總共= 8 + 4 + 4 + 2 + 0 + 0 = 18

而且的確是搜索結果頁面上的得分。

因此,要獲得最好的成績,你就必須與每個字段匹配所需的搜索詞(又名「keyword stuffing」)。如果你想發佈一個軟件包,我不建議你嘗試遊戲系統。評分算法很簡單,因爲它依賴於人們的誠實。如果每個人都試圖在這些字段中添加額外的關鍵字來獲得更高的分數,那將會是一團糟,並最終給出更糟糕的搜索結果。

+0

謝謝。是否有質量和用戶評分或類似的軟件包,以便它能幫助我選擇哪一個類似的軟件? – Tim 2015-02-24 00:50:34

+1

不,pypi沒有用戶包的評分。 Pypi向您顯示了下載次數,並且有一些網站可以讓您查看下載次數來查看軟件包的受歡迎程度:http://pypi-ranking.info/alltime除此之外,我會看看:有多少顆星/它在github/bitbucket上的追隨者,文檔有多好,是否有測試,是否有活躍的開發人員,是否有當前版本等。然後嘗試使用該軟件包以查看其效果如何。 – 2015-02-24 00:58:12

-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())