做《Programing Collective Intelligence》中chapter 2.Making Recommendation的实例,有3个问题花了好长时间:

1. 遇到报错"UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence"。看了http://www.tuicool.com/articles/nEjiEv这篇文章confirm了是编解码的问题,明显Python是用gbk解码数据文件的,而数据文件是用其他方式编码。用Notepad++能看到文件是encoding in ANSI,是用ANSI编码的。http://zhidao.baidu.com/link?url=JWUp5uFuU0lhUXVclozgbZybW9jVu8SfYbUHqQyGakr-27hhoy5xYrMSgtjuMEHZQLDy2HEe-DN6SKmekbUE2q这篇知道里提及open()有encoding这个argument可以设置解码方式,于是把encoding设置成utf-8,把数据文件u.item也在notepad里保存成encoding in utf-8。结果呢,还是不行,还是报gbk给您解不了码。后来就用help(open)查open这个属性到底怎么用,没道理啊,设成utf-8怎么还gkb在解啊。终于,才知道,当encoding=utf-8时只能解码用utf-8编码的text file,而我的数据文件是item类型(具体item是个什么文件类型,不详)。就用notepad把.item另存为.txt,这才可以顺利解码读取数据文件了。

2. 第二个问题是在用pydelicious API时报了很多invalid syntax的错,因为里面有许多语法没有见过,没法下判断,没法针对性去搜solution,就先放放了。

3. 第三个遇到的是keyerror,http://scnjl.iteye.com/blog/905177这篇文章提到“用dict[key]这个读取会报KeyError异常”,在知道不是数据不是自己操作有问题,果断用了try..except pass把异常pass掉,证明也没用影响结果。

除了上述python程序语法上的问题,其实关于做推荐的逻辑还没有好好看透,只是先把程序代码抄下来走通了,还要再程序再看上几遍。

Ch2.Making Reconmmendation in PCI的更多相关文章

  1. Linux mips64r2 PCI中断路由机制分析

    Linux mips64r2 PCI中断路由机制分析 本文主要分析mips64r2 PCI设备中断路由原理和irq号分配实现方法,并尝试回答如下问题: PCI设备驱动中断注册(request_irq) ...

  2. 【转】PCI学习笔记

    1.PCI设备编号    每一个PCI device都有其unique PFA(PCI Fcntion Address)    PFA由 bus number.device number.functi ...

  3. PCI Express(六) - Simple transactions

    原文地址:http://www.fpga4fun.com/PCI-Express6.html Let's try to control LEDs from the PCI Express bus. X ...

  4. PCI Express(五) - Xilinx wizard

    原文地址:http://www.fpga4fun.com/PCI-Express5.html Xilinx makes using PCI express easy - they provide a ...

  5. 基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序

    原文地址:http://www.cnblogs.com/jacklu/p/6139347.html 正如前几篇博客所说,使用WDF开发PCIe驱动程序是我本科毕业设计的主要工作.在读研的两年,我也分别 ...

  6. Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作

    2 Mongodb CRUD 操作 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mong ...

  7. PCI在linux系统中注册与注销示例

    1. pci_driver结构struct pci_driver {    struct list_head node;    const char *name;    const struct pc ...

  8. KVM 介绍(4):I/O 设备直接分配和 SR-IOV [KVM PCI/PCIe Pass-Through SR-IOV]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  9. PCI Express(四) - The transaction layer

    原文出处:http://www.fpga4fun.com/PCI-Express4.html 感觉没什么好翻译的,都比较简单,主要讲了TLP的帧结构 In the transaction layer, ...

随机推荐

  1. 资源 之 4.2 内置Resource实现(拾)

    4.2  内置Resource实现 4.2.1  ByteArrayResource ByteArrayResource代表byte[]数组资源,对于"getInputStream" ...

  2. 扩展Date的DateDiff方法--日期差

    Date.prototype.DateDiff = function(after){ var diffDay; var beforeDate = new Date(this).format(" ...

  3. hdu 1021

    刚开始直接按题意来写,WA了,唉,果然经验不够..然后开始找规律,本来一看到这种题,第一反应就是规律题,然后看看题意,貌似没啥规律哦!就像当时学DP一样,总是想当然被智商压制了啊喂! #include ...

  4. SPSS中变量的度量标准

    在SPSS中,每一个变量都有一个度量标准,这些度量标准说明变量的含义和属性,会对后续的分析产生影响. 1.名义:名义表示定类变量,定类变量表示事物的类别,只能计算频数和频率,各类别之间没有大小.顺序. ...

  5. Qt之加载QSS文件

    简述 Qt中关于样式的使用很常见,为了降低耦合性(与逻辑代码分离),我们通常会定义一个QSS文件,然后编写各种部件(例如:QLable.QLineEdit.QPushButton)的样式,最后使用QA ...

  6. Junit4入门

    eclipse自带junit包,可右键直接新建junit类 静态引入:import static org.junit.Assert.* assert.*是类,静态引入会引入assert里的所有静态方法 ...

  7. SO修改

    FUNCTION Z_SD_SALESORDER_CHANGE1. *"----------------------------------------------------------- ...

  8. 《Play for Java》学习笔记(二)基本的CRUD应用

    注解:  CRUD——Create,Retrieve, Update, Delete 文件结构

  9. Can't connect to local MySQL server through socket 问题解决

    Fedora8启动mysql 报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/m ...

  10. 经典DP 二维换一维

    HDU 1024  Max Sum Plus Plus // dp[i][j] = max(dp[i][j-1], dp[i-1][t]) + num[j] // pre[j-1] 存放dp[i-1] ...