最近在工作之余的時間在閱讀集體智慧編程這本書,在隨書碼字的過程中遇到的一些問題,就在這里記錄一下:
(注:下面的頁碼針對於英文的非影印版)
chapter1 標題:
沒什么說的,瀏覽下就好。
chapter2 提供推薦:
1.書上的源碼是基於python 2.x,而在3.x中print是被當作一個函數處理,所以要自己加上括號;
2.在P42利用del.icio.us提供的rss訂閱源構建數據集時,這本書發布時間較長的原因,python api pydelicious的
很多接口已經發生了改變,這個實驗我最后跳過了,作了后面的MovieLens,書中數據的下載地址為:
http://grouplens.org/datasets/movielens/;
chapter3 發現群組:
仍然是數據集構建的問題,我們學習的主要重心在於數據的處理部分,而非數據的采集,所以可以采用將數據文件直接下載的方法,
我們將http://kiwitobes.com/clusters/feedlist變更為http://segaran.com/clusters/feelist,之后只要出現kiwitobes直接
替換為segaran就可以了;關於PIL的安裝,不要采用python的easy_install或者pip install,直接下載對應
平台的可執行文件即可,在這里我下載的是PIL-1.1.7.win32-py2.7.exe,直接安裝即可;
chpter4 搜索與排名:
1.關於數據庫sqlite的安裝在python2.x的版本中,是有包含sqlite的,所以大部分情況下自己也無需安裝,具體可以可以在python
的安裝路徑python/Lib/下,如果找到sqlite3就表示可以直接使用,相應的導入包的語句變更為import sqlite3 as sqlite即可
2.在P85的部分是沒有介紹函數addlinkref,有需要的同學需要自己到隨書源碼包中去查看
3.在calculatepagerank(self,iterations)函數中,初始化pagerank表時,書中的源碼和隨書源碼是不同的,但書中源碼的效率
較高
4.代碼輸出結果不同:
a.創建的searchindex.db,書中是27mb左右,自己生成的是22mb左右,這個原因主要是一些鏈接的失效
b.P103未訓練之前getresult函數產生的結果應該是0.076,后面經過多次訓練,以及本身數據集不同的原因,輸出結果不同
是正常的現象。
c.需要注意一點,一般在創建好數據庫和表時,第一次必須執行一次產生隱藏層節點的函數,generatehiddennode(wordids,urlids)
在nn.py中
在searchengine.py中