お詫びと訂正
              
本書の掲載内容に下記の誤りがございました。読者の皆様、および関係者の方々にご迷惑をおかけしましたことをお詫び申し上げます。 
特別企画「[速習]レコメンドエンジン」 Part 3「大規模データを用いたレコメンデーション」
P.130 リスト2 2~3行目
| 誤 | 
typedef vector<pair<int, int> > SparseVec;Svec;
typedef SparseVec::iterator Svec::iterator sit;
  
 
 | 
| 正 | 
typedef vector<pair<int, float> SparceVec;
typedef SparceVec::iterator sit;
  
 
 | 
P.130 リスト3 3行目
| 誤 | 
vector<SparceVec> vector<Svec> userLog;
  
 
 | 
| 正 | 
vector<SparceVec> userLog;
  
 
 | 
P.130 リスト3 9行目(// il1とil2の内積を計算する、の次行)
| 誤 | 
float calcInp(sparceVec& calcInp(Svec& il1, sparceVec& Svec& il2){
  
 
 | 
| 正 | 
float calcInp(sparceVec& il1, sparceVec& il2){
  
 
 | 
P.130 リスト3 下から9~11行目
| 誤 | 
float norm inp = sqrt(calcInp(itemLog[i], itemLog[i]));
calcInp(itemLog[i], itemLog[i]);
norms.push_back(norm);norms.push_back(sprt(inp));
  
 
 | 
| 正 | 
float norm = sqrt(calcInp(itemLog[i], itemLog[i]));
norms.push_back(norm);
  
 
 | 
P.131 リスト4 5行目
P.132 図3
| 誤 | 
 
 | 
| 正 | 
  | 
本件に関しまして、コメントを頂戴したid:thorikawa様、関係者の方々、まことにありがとうございました。
(WEB+DB PRESS編集部)