2011年4月25日星期一

第四周 4/18~4/25

这周,事情比较多,在课题上花的时间少了。
针对推荐算法,做了点调研。

在这过程中,接触到了“无觅网”,一个社会化新闻分享与推荐的网
按他的说法是,“利用人工智能的技术,根据你喜欢的网页,在众多的网页中找出你感兴趣的内容
但真正用下来,不是很理想。
关键字提取或是主题提取技术做的比较粗糙。有的关键字,根本就无关于文章。
推荐的文章也很没新意,在文章来源上也没做好工作。

与课题的相同点
这个思路跟之前预想的课题功能基本一样,同样是提取主题词、关键字,基于这个基础做个简单的个性化推荐算法。

不同点
对比无觅网,信息来源很不同。
无觅网是从internet上找文章;课题中,从信息来源来说,是比较单一的。
来源只有用户关注博友的信息,除非添加诸如推荐用户一些活跃博友的功能。

从这个角度来看,本课题只是运用推荐算法来达到过滤的作用。
还有一点,微博信息只有140个字,提取关键字方面还是有很大帮助的。

为什么是基于微博,而不是基于人人。
这要从微博是什么谈起。
微博只是个提供信息的平台。
80/20法则貌似蛮时髦的,听说能让文章增色不少,套用在这里也合适。
In short,就我观察下来的情况。
一直是名人、某某组织织微博,大量用户做的事情,只有看、转发、吐槽下,而这不算有效信息。
再说,信息不对等。名人的微博只有十几二十的关注,被关注则至少是上万的。
所以说微博只是个提供信息的平台。
使用过滤系统还是有可行性的。

2011年4月21日星期四

谈谈无觅网

逛网站,找有价值的文章,很开心的事情。
昨日在找课题资料的时候,看到了一个叫“无觅网”的文章推荐网站,感觉蛮有趣的,将自己的心得分享下。


界面上蛮简约,很容易亲近。
想法上,非常合我口味。


但实际使用上,总归会有些不满意。
当时也对他们提了点意见:
网站上的推荐文章都提不起我的兴趣,一直都是互联网的东西,很虚无。
现阶段我喜欢文化文学方面的文章,或是数学、数据分析这类的文章。
算是遇到“冷启动”问题吧。
是不是应该现在把关注的人都删了,可又找不到相似的用户,或者我还不知道怎么找。
注册网站的时候,也没有问我喜欢什么,就是一堆用户让我选择。


今天上班无聊,一直用这个网刷文章看,有点失望。
只是简单得通过提取文章关键字,以关键字来代表一篇文章。
通过比对候选文章的关键字,以期得到推荐文章。
虽然不知道原理,但就我用下来的感觉是这样的。





前面看了篇关于人人的文章,之后就给我推荐这了。。。。这样我算是喜欢还是不喜欢看人人的新闻呢???


















此外,除了基于文章本身来推荐之外,还有好友推荐。
找到个口味类似的好友,很重要。
但是大多数使用这个网站的用户好像都是IT从业者,行业类型太单调,这是个很严重的问题。
不然按照好友推荐模式,推荐给用户的永远只是IT新闻。
弥补的措施算是名人堂吧,不过补足有限。



总而言之,用户太少,引发信息单调;关键字提取或是主题提取还是不容易搞啊。
用户量大了,才能体现数据之美吧。

2011年4月18日星期一

课题第三周 4.11~4.17

  困境
课题陷入困难,发现之前基于语料库的设计有严重的弊端:
即使有一个非常全面的语料库,但也没有计算资源来得到比如某个单词出现的数量这种看似简单的问题。
更何况自己收集的语料库,一定存在数据存储和数据缺失片面的问题。
以上感想是基于一本叫《beautiful data》中第十四章中关于语料库的描述所发。
需要另辟蹊径了。


进展
接触了下新浪微博API,将课题与新浪微博契合的问题算是解决了。
初步用ASP.NET写了些网页,主要是提取用户信息和提取微博信息。
提取微博信息是关键,在此基础再加上对文本进行关键字提取的方法。
之前的关键字提取设想遇到困难,根据微博信息的形式,我做出如下决定:
1.         有些以组织形式发布的微博信息是“【主题】内容”这种形式的,这样只需提取“【】”内的内容。
2.         更多的是个人用户,没有如上形式,只能对全局内容进行提取。
3.         提取的方式:中文分词库选出文本中的名词,动词,形容词等比较有代表性的词(“的”这样的词算是停用词,不予考虑),计算在文本中的词频;还有对于名词、形容词,应该给予两种不同的权重,名词更重;得到比重大的几个关键字。

展望
上述工作还算是可行,但是课题做得非常空洞。
一直上网,豆瓣的推荐算法和各种电子商务网站的商品推荐给人很好的印象,这种推荐从另一种程度上也算是一种过滤系统,只给你想要的资源。
是不是也应该给用户对微博信息“喜欢”和“不喜欢”的操作,之前在学校的时候也学过《模式识别》课,知道点比如“贝叶斯分类器”对信息进行分类的算法。
微博信息的表现形式就是几个关键字。
关键字就是特征,有多少关键字,就是多少维的特征向量。
比较棘手的,是随着不断获取微博信息,关键字是不断增加的。
这些只是初步设想,可行性上还没考虑过,最近也会看这方面的书。



2011年4月10日星期日

课题第二周记录 4.4~4.10

关于自然语言处理的知识实在太多,看着看着偏离了原来的课题需要了。

根据已有的知识,我对课题做了三方面的分析:
  • 构建语料库
  • 过滤系统
  • 情感强度分析

关于构建微博语料库,这是为过滤系统服务的。语料库,简单来说就是把文本资料收集在一起。
借鉴北大语料库,其实是个全文检索系统,我想依据已有的积累:中科院ICTCLAS分词库和LUCENE搜索引擎库能完成。欠缺的是语料的来源,这点上Python应该能帮上忙吧???

如果有可能的话,可以靠过滤系统来得到语料库,而语料库通过本身的不断扩大,提供更精准的过滤系统算法参数,我想这算是个自学习的过程。

至于在已有的语料库中进行分类要靠数据挖掘和模式识别的知识了,这是后话。

过滤系统的关键在于提取主题、关键字。在这方面只知道根据词频来提取关键字的方法,这种方面的硬伤就是需要一个现有的语料库来提供先验知识,比如某单词在全局的统计概率。根据这个来做个雏形,先找个好点语料库!
进一步需要看些文献??

至于情感强度分析,这个看情况再做了,最简单的就是积极、消极、中性三值判断了。

跟老师与研究生学长的讨论,先把过滤系统做出个雏形来。在讨论过程中,说道了词汇知识库 什么的,要去研究下。
至于与新浪微博相契合,应该看看@Python发烧友的FaWave的原理,先放下这部分。
另外网购了本书《统计自然语言处理》,对我的扫盲工作做得很好。

课题第一周记录 3.28~4.2

最近迷上新浪微博,正好本课题又有关微博信息,就选了这个题目。
做了下调研,看到了一些关于中文歧义的笑话,比如《佟大为妻子生下一女婴》——跟帖:佟大是谁啊?这么厉害!能生孩子!” ,被中文分词所吸引。

看了很多文章,然而对这方面的理论和知识都不熟悉,初看文章都是各种算法和基于统计的数学模型,发现给自己挖了个大坑。

找到哈工大的在线分词系统,对上面这段笑话能正确分出;而后在研究生学长的推荐下,看了下中科院的中文分词库,蛮实用的。

要不是有这些现成的系统,课题后续工作很难做下去的,从头做起也是件吃力不讨好的事情。
在这调研的过程中,学到很多知识,虽然对这个课题不大有帮助。



  •    找到了好几个非常不错的博客,了解很多知名IT公司的起源与计算机历史
  •  一系列关于数学的文章,数学这么有趣
  •    懂了索引系统的原理,找到个全文搜索引擎



这个课题的领域是在自然语言处理之下的,而自然语言处理又是个交叉学科,融合了很多其他的专业知识,知识浩瀚呢。

虽然不一定能把课题做得很好,但在这段过程中也算积累了一些旁门左道的知识。不然也没机会接触这些东西。尽力而为,做完这个课题。