2007-10-22

cindoo收录网站的原则

很多人注意到cindoo并不索引所有的网站,这是因为,我们注意到当今的网络上,最不缺的就是信息。而且cindoo不准备像google那样,做一
个找到所有网站的引擎,而是把一些比较有用的信息组合起来供大家观看。

这个就像很多门户网站的新闻专题一样,比如在cindoo可以搜nba,姚明什么的,里面有关于他们的很多内容。大家完全可以把我们的姚明空间看作一个
姚明的专题。和门户网站相比,我们来源很广,而且有很多不同类型的信息(新闻,博客,视频,BBS)

所以cindoo和google baidu是不一样的,他们之间的功能没有重合的地方,cindoo注重新的信息,google baidu比较注重
静态的信息。google baidu比较适合于想找到某个问题的人。而cindoo适合于那些对某个领域关心的人。比如你对nba关心,你就可以搜索
nba,各个球队,在里面你们肯定可以找到很多你们感兴趣的信息。

在cindoo中,我们只收录那些比较可靠的信息来源,这种可靠性来自大家的口碑,如果很多人觉得他好,才会被收录。
所以在cindoo中,是不会有垃圾网站的

2007-09-25

chickenfoot模拟浏览器点击

chickenfoot是firefox的一个插件,它通过javascript脚本,可以模拟用户在网页上的行为。比如点击,输入,等等。大家可以试试,我用了一下,感觉很好。嘿嘿

2007-09-21

SIGIR 2007

Hierarchical Classification for Automatic Image Annotation
Jianping Fan

Alternatives to Bpref
Tetsuya Sakai

Laplacian Optimal Design for Image Retrieval
Xiaofei He, Deng Cai

Federated Text Retrieval From Uncooperative Overlapped Collections
Milad Shokouhi, Justin Zobel

A New Approach for Evaluating Query Expansion: Query-document Term Mismatch
Tonya Custis, Khalid Al-Kofahi

Fast Generation of Result Snippets in Web Search
Andrew Turpin, Yohannes Tsegay, David Hawking, Hugh E. Williams

Updating Collection Representations For Federated Search
Milad Shokouhi, Mark Baillie, Leif Azzopardi

HITS hits TREC: Exploring IR evaluation results with network analysis
Stefano Mizzaro, Stephen Robertson

Latent Concept Expansion Using Markov Random Fields
Donald Metzler, Bruce Croft

Query Performance Prediction in Web Search Environments
Yun Zhou, Bruce Croft

Indexing Confusion Networks for Morph-based Spoken Document Retrieval
Ville Turunen, Mikko Kurimo

Reliable Information Retrieval Evaluation with Incomplete and Biased Judgements
Stefan Buettcher, Charles Clarke, Peter Yeung, Ian Soboroff

New Event Detection Based on Indexing-tree and Named Entity
Kuo ZHANG, JuanZi LI, Gang WU

A Time Machine for Text Search
Klaus Berberich, Srikanta Bedathur, Thomas Neumann, Gerhard Weikum

Compressed Permuterm Index
Paolo Ferragina, Rossano Venturini

Detecting, Categorizing and Clustering Entity Mentions in Chinese Text
Wenjie Li, Donglei Qian, Chunfa Yuan, Qin Lu

FRank: A Ranking Method with Fidelity Loss
Ming-Feng Tsai, Tie-Yan Liu, Tao Qin, Hsin-Hsi Chen, Wei-Ying Ma

A Regression Framework for Learning Ranking Functions Using Relative Relevance Judgments
Zhaohui Zheng, Hongyuan Zha, Keke Chen, Gordon Sun

History Repeats Itself: Re-Finding Queries in a Major Search Engine's Logs
Jaime Teevan, Eytan Adar, Rosie Jones, Michael Potts

Random Walks on the Click Graph
Nick Craswell, Martin Szummer

Towards Automatic Extraction of Event and Place Semantics from Flickr Tags
Tye Rattenbury, Nathaniel Good, Mor Naaman

Clustering of Documents with Local and Global Regularization
Fei Wang, Changshui Zhang, Tao Li

An InterActive Algorithm For Asking And Incorporating Feature Feedback into Support Vector Machines
Hema Raghavan, James Allan

Efficient Document Retrieval in Main Memory
Trevor Strohman, Bruce Croft

A Boosting Algorithm for Information Retrieval
Jun Xu, Hang Li

How well does result relevance predict session satisfaction?
Scott Huffman, Michael Hochster

A Support Vector Method for Optimizing Average Precision
Yisong Yue, Thomas Finley, Filip Radlinski, Thorsten Joachims

Strategic System Comparisons via Targeted Relevance Judgments
Alistair Moffat, William Webber, Justin Zobel

Topic Segmentation with Shared Topic Detection and Alignment of Multiple Documents
Sun Bingjun, Prasenjit Mitra, Lee Giles, Hongyuan Zha, John Yen

HITS on the Web: How does it Compare?
Marc Najork, Hugo Zaragoza, Michael Taylor

Effective Missing Data Prediction for Collaborative Filtering
Hao Ma, Irwin King, Michael R. Lyu

Feature Selection for Ranking
Xiubo Geng, Tie-Yan Liu, Tao Qin

Interesting Nuggets and Their Impact on Definitional Question Answering
Kian-Wei Kor, Tat Seng Chua

Ranking with Multiple Hyperplanes
Tao Qin, Tie-Yan Liu, Wei Lai, Xu-Dong Zhang, De-Sheng Wang, Hang Li

Building Simulated Queries for Known-Item Topics: An Analysis using Six European Languages
Leif Azzopardi, Maarten de Rijke, Krisztian Balog

CollabSum: Exploiting Multiple Document Clustering for Collaborative Single Document Summarizations
Xiaojun Wan

The Influence of Caption Features on Clickthrough Patterns in Web Search
Charles Clarke, Eugene Agichtein, Susan Dumais, Ryen White

Personalized Query Expansion for the Web
Paul - Alexandru Chirita, Claudiu Firan, Wolfgang Nejdl

Principles of Hash-based Text Retrieval
Benno Stein

An Outranking Approach for Rank Aggregation in Information Retrieval
Mohamed Farah, Daniel Vanderpooten

Deconstructing Nuggets: The Stability and Reliability of Complex Question Answering Evaluation
Jimmy Lin, Pengyi Zhang

DiffusionRank: A Possible Penicillin for Web Spamming
Haixuan Yang, Irwin King, Michael R. Lyu

Investigating the Querying and Browsing Behavior of Advanced Search Engine Users
Ryen White, Dan Morris

Neighborhood Restrictions in Geographic IR
Steven Schockaert, Martine De Cock

A Probabilistic Graphical Model for Joint Answer Ranking in Question Answering
Jeongwoo Ko, Luo Si, Eric Nyberg

Towards Task-based PIM Evaluations
David Elsweiler, Ian Ruthven

Utility-based Information Distillation Over Temporally Sequenced Documents
Yiming Yang, Abhimanyu Lad, Ni Lao, Abhay Harpale, Bryan Kisiel, Monica Rogati, Jian Zhang, Jaime Carbonell, Peter Brusilovsky, Daqing He

A Semantic Approach to Contextual Advertising
Vanja Josifovski, Andrei Broder, Lance Riedel, Marcus Fontoura

Test Theory for Assessing IR Test Collections
David Bodoff, Pu Li

Vocabulary Independent Spoken Term Detection
Jonathan Mamou, Bhuvana Ramabhadran, Olivier Siohan

ESTER: Efficient Search on Text, Entities, and Relations
Holger Bast, Alexandru Chitea, Fabian Suchanek, Ingmar Weber

A Combined Component Approach for Finding Collection-Adapted Ranking Functions based on Genetic Prog
Humberto Almeida, Marcos Goncalves, Marco Cristo, Pavel Calado

Supporting Multiple Information Seeking Strategies in a Single System Framework
Xiaojun Yuan, Nicholas Belkin

Context Sensitive Stemming for Web Search
Fuchun Peng, Nawaaz Ahmed, Xin Li, Yumao Lu

Know your Neighbors: Web Spam Detection using the Web Topology
Carlos Castillo, Debora Donato, Aristides Gionis, Vanessa Murdock, Fabrizio Silvestri

Combining Content and Link for Classification using Matrix Factorization
Shenghuo Zhu, Kai Yu, Yun Chi, Yihong Gong

Evaluating sampling methods for uncooperative collections
Paul Thomas, David Hawking

An Exploration of Proximity Measures in Information Retrieval
Tao Tao, ChengXiang Zhai

Relaxed Online Support Vector Machines for Spam Filtering
D. Sculley, Gabriel Wachman (best student paper)

Robust Classification of Rare Queries Using Web Knowledge
Andrei Broder, Marcus Fontoura, Evgeniy Gabrilovich, Amruta Joshi, Vanja Josifovski, Tong Zhang

Multiple-signal duplicate detection for search evaluation
Scott Huffman, April Lehman, Alexei Stolboushkin, Howard Wong-Toi, Fan Yang, Hein Roehrig

Structured Retrieval for Question Answering
Matthew Bilotti, Paul Ogilvie, Jamie Callan, Eric Nyberg

Robust Evaluation of Information Retrieval Systems
Ben Carterette

On the Robustness of Relevance Measures with Incomplete Judgments
Tanuja Bompada, Chi-Chao Chang, John Chen, Ravi Kumar, Rajesh Shenoy

Cross-Lingual Query Suggestion Using Query Logs of Different Languages
Wei Gao, Cheng Niu, Jian-Yun Nie, Ming Zhou, Jian Hu, Kam-Fai Wong, Hsiao-Wuen Hon

Efficient Bayesian Hierarchical User Modeling for Recommendation Systems
Yi Zhang, Jonathan Koren

Studying the Use of Popular Destinations to Enhance Web Search Interaction
Ryen White, Mikhail Bilenko, Silviu Cucerzan (best paper)

Knowledge-intensive Conceptual Retrieval and Passage Extraction of Biomedical Literature
Wei Zhou, Clement Yu, Neil Smalheiser, Vetle Torvik, Jie Hong

The Impact of Caching on Search Engines
Ricardo Baeza-Yates, Aristides Gionis, Flavio Junqueira, Vanessa Murdock, Vassilis Plachouras, Fabrizio Silvestri

Heavy-Tailed Distributions and Multi-Keyword Queries
Arnd Konig, Surajit Chaudhuri, Liying Sui, Kenneth Church

Improving Text Classification for Oral History Archives with Temporal Domain Knowledge
James Olsson, Douglas Oard

Estimation and Use of Uncertainty in Pseudo-relevance Feedback
Kevyn Collins-Thompson, Jamie Callan

Term Feedback for Information Retrieval with Language Models
Bin Tan, Atulya Velivelli, Hui Fang, ChengXiang Zhai

Enhancing Relevance Scoring With Chronological Term Rank
Adam Troy, Guo-Qiang Zhang

Inverted Index Pruning with Correctness Guarantee
Alexandros Ntoulas, Junghoo-John Cho

A Study of Poisson Query Generation Model for Information Retrieval
Qiaozhu Mei, Hui Fang, ChengXiang Zhai

ARSA: A Sentiment-Aware Model for Predicting Sales Performance Using Blogs
Yang Liu, Jimmy Huang, Aijun An, Xiaohui Yu

A Music Search Engine Built upon Audio-based and Web-based Similarity Measures
Peter Knees, Tim Pohle, Markus Schedl, Gerhard Widmer

Learn from Web Search Logs to Organize Search Results
Xuanhui Wang, ChengXiang Zhai

Using Query Contexts in Information Retrieval
Jing Bai, Jian-Yun Nie, Hugue Bouchard, Guihong Cao

Measuring the Spatial Correlation of Retrieval Functions for Zero- Judgment Performance Prediction
Fernando Diaz

Towards Musical Query-by-Semantic-Description using the CAL500 Data Set
Douglas Turnbull, Luke Barrington, David Torres, Gert Lanckriet

Web Text Retrieval with a P2P Query-Driven Index
Gleb Skobeltsyn, Toan Luu, Ivana Podnar, Martin Rajman, Karl Aberer

Analyzing Feature Trajectories for Event Detection
Qi He, Kuiyu Chang, Ee-Peng Lim

Broad Expertise Retrieval in Sparse Data Environments
Krisztian Balog, Maarten de Rijke, Leif Azzopardi

2007-09-19

提升PHP速度全攻略

PHP的优点之一是速度很快,对于一般的网站应用,可以说是已经足够了。不过如果站点的访问量很高、带宽窄或者其它的因素令服务器产生性能瓶颈的时候,你可能得想想其它的办法来进一步提高PHP的速度了。这篇文章将从几个方面介绍如何做到这一点,从而令用户浏览的时候更加“爽”。

代码优化

  在这里并不想再次告诉你如何写更干净的代码,这一点我想每个人都清楚,在需要速度的时候,你可能已经在PHP源代码的优化上面做了不少的工作,这里所提出的是,这个烦琐的工作可以交由其它工具来完成。这就是Zend Optimizer,此程序可以从Zend Technologies的网站(http://www.zend.com/)免费得到。它的原理很简单,通过检测Zend引擎产生的中间代码,并且优化它来得到更高的执行速度。我认为优化代码是一项颇烦琐的工作,而且优化后的代码可能变得难以理解,尤其是当你放下该PHP程序一段时间后,突然间客户要求你做一些修改时,可能你自己也不懂了;-)。因此我建议你在PHP的源代码较为复杂的时候,用Zend Optimizer来做这个优化的工作,好处是它不会令你的代码变得复杂难懂。

  安装Zend Optimizer是非常简单的。只要根据你使用的平台,下载相关的预编译库,并且在你的php.ini中加入两行,重新启动你的web服务器就行了!

zend_optimizer.optimization_level=15
zend_extension=\"/path/to/ZendOptimizer.so\"
zend_loader.enable=Off

  你可能有点奇怪,不是说两行吗,怎么变成三行了。不过第三行是可选的,看来禁止这个zend_loader将会令优化的速度更快,因此不妨在你的php.ini文件中多加这一行。要注意的是:只有在你不使用Zend Encoder Runtime的时候,才可以禁止zend_loader,关于Zend Encoder Runtime,还会在下文提到。

要更快吗?使用cache(缓冲)吧

  如果你的PHP应用还需要更快的速度,下一个办法是缓冲。要实现这一点,有几种不同的方式。我自己就试用过Zend Cache(评测版本),APC和Afterburner Cache。

  以上提到的都是“缓冲模块”。它们的原理都差不多,在php文件被首次请求的时候,通过将你的PHP源代码的中间代码存储在web服务器的内存中,对于以后同样的请求,都直接提供内存中的“编译”版本。由于它可以令磁盘的访问达到最小化,因此这个方法确实可以极大地提高PHP的性能。更为方便的是,当你的PHP源代码修改时,缓冲的模块可以察觉到这些变化,并且重新载入一样,因此你不必担心客户得到的是旧版本的程序。这些缓冲的模块确实不错,但是我应该选用哪一种呢?下面分别介绍一下:

  Zend Cache是Zend Technologies的一个商业化的产品(它也是免费为我们提供PHP引擎和Zend Optimizer的公司)。它确实不错。在首次运行后,你可以明显察觉到PHP的速度得到了很大的提高,服务器的空闲资源也更多了。缺点是你要付费购买它,但就性价比来说,还是非常值得的。

  Afterburner Cache是Bware Technologies(http://bwcache.bware.it/)提供的免费缓冲模块。当前还只是beta版,它所做的工作看来与Zend Cache差不多,不过性能的提高就比不上Zend Cache,而且现有的版本不能和Zend Optimizer一起工作,不过它是免费的。

  APC(Alternative PHP Cache)是由Community Connect(http://apc.communityconnect.com/)提供的另一个免费模块。它的工作很稳定,速度也有不少的提高,要注意的是,我还没有找到一个官方的测试数据,这些只是在我的应用上作测试,因此不能下一个结论。
Web内容的压缩(令你客户用起来更“爽”)

  经过以上两个的方法,相信你的PHP应用的性能已经得到了很大的提高,现在该从另一个方面来考虑了:下载速度。如果你的应用只是在公司内跑,所有的客户都使用100Mb/s的以太网连接到服务器,这可能不是一个问题,但是如果你的客户中有使用慢速的modem连接的,你就要考虑使用内容压缩这个方法了。根据IETF的规范,大多数的浏览器都支持gzip的内容压缩。这意味着你在将web的内容发给客户的浏览器前,可以先使用gzip进行压缩,浏览器在接收的时候就会自动解压数据,并且令用户看到原来的页面。同样,压缩web页面的内容也有几个不同的方法。

  mod_gzip是Remote Communications(http: //www.phpbuilder.com/columns/www.remotecommunications.com)免费提供的一个Apache模块,它可以压缩静态的web页面。它工作得很好,你只需要将它和apache一起编译就行了(或者将它作为一个DSO使用)。 Remotecommunications的人说它还可以压缩动态的内容,包括mod_php, mod_perl等。不过我尝试了一下,看来并不行。我在mod_gzip的邮件列表中了解到,这个bug将在下一个版本中修正(我想应该是 1.3.14.6f版本)。不过你仍然可以用它作静态内容的压缩。

  不过我们还想压缩动态的内容,因此我们必须找另外的办法。一个办法是使用class.gzip encode.php(http://leknor.com/code/),只要在你的PHP脚本中的开头和结尾调用这个PHP类,就可以压缩你的页面内容。如果整个站点都需要这样的压缩,你可以在你的php.ini文件中的auto_prepend和auto_append中调用这些函数。它工作得很好,不过在负载很重的站点上,它明显会带来一点的系统开销。要详细了解它是如何工作的,可以看一下它的类代码(你至少需要在编译PHP时加入zlib支持)。作者在里面的说明也非常详细,你可以得到任何需要了解的东西。

  在最近,我也看到了一篇关于PHP输出缓冲的文章。它说的是PHP4.0.4推出了一种新的输出缓冲的处理手段--ob_gzhandler,它的作用和上面介绍的类相同,但区别是你只要在你的php.ini中使用以下的句法就行了:

output_handler = ob_gzhandler ;

  这样将激活PHP的输出缓冲功能,并且压缩所有它发送的东西。出于某些特别的原因,如果你不想在这里设置的话,只在需要的地方才改变这个默认设置的话(不压缩),只要在需要压缩的PHP源码目录中,修改一下.htaccess文件就行了,使用的句法如下:

php_value output_handler ob_gzhandler

... 或者直接在你的PHP代码中调用它,以下面的方式:

ob_start(\"ob_gzhandler\");

  这个输出缓冲处理的方法很好,并且不会为服务器带来额外的系统开销。我十分建议你使用这种方法。它的改变可以用以下的例子说明,如果客户使用的是28.8K的modem的话,经过这个处理,他将会认为突然间换成了一个ISDN接入一样。要注意的一点是:Netscape Communicator并不支持图象的压缩,所以将显示不出来。因此除非你的客户全部使用Internet Explorer,否则你必须禁止压缩jpeg和gif图象。其它文件的压缩应该没有问题,但是我建议你最好测试一下,特别是浏览器使用了不常见的插件或者是少人用的浏览器。

其它有用的东西...

  Zend Technologies的在线商店在今年1月24开通了,并且售卖一些与PHP相关的有趣产品。包括前面提到的Zend Cache,Zend Encoder(简单说来,是PHP代码的编译器,可以产生编译的类,这样你就可以售卖给顾客而不用担心泄露源代码。在需要运行这些类的web服务器上,将要使用Zend Encoder Runtime来解码),Zend Ide(一个为PHP而设的集成化开发环境,带有很多强大的性能),还有为PHP开发者提供的支持服务。

结论

  使用这篇文章提到的技术,你将可以极大地提高站点的性能,不过请注意以下几点:

1.瓶颈或许不在PHP,你需要考察应用中的每个对象(例如数据库)
2.一个web服务器的性能都是有限制的,因此,不要认为性能不好就是PHP的原因,也可能是访问量很大,你的服务器需要升级了,或者考虑使用负载均衡的系统(将会花很多钱)
3.不要认为内容压缩不重要,在100Mb/s的局域网中,你的PHP应用或许性能很好,但要考虑到使用慢速modem的用户。

2007-09-15

Mathon广告过滤规则发现

今天发现,Mathon过滤的广告是根据url过滤的
比如url中含有单独的ad字符串,就会被过滤
比如 http://xxx.xx.xxx/ad/xxx
或者 http://xxx.xx.xxx/ad.html
等等都被会过滤

不过 http://xxx.xx.xxx/xxadxx/xxx
不会被过滤

2007-09-14

blogspot抽风了

看来昨天能访问是抽风的表现,还得我白高兴了一场。

2007-09-13

CINDOO 新维度 新媒体

http://www.cindoo.com/


终于解封了

不知道下次什么时候封。

不过还是欢迎大家访问我们的网站 http://www.cindoo.com/
嘿嘿

2007-08-02

我们的网站

http://www.cindoo.com

做了一年了,终于有点样子了,大家去看看吧

2007-06-23

Dense Matrix Eigen System

稠密矩阵特征值和特征向量的计算

稠密矩阵特征值计算一般分为两个步骤:
  1. 将矩阵A转化为Hessenberg矩阵H,A = Q'HQ,对于稠密矩阵,他的Hessenberg阵是三对角阵。
  2. 对Hessenberg阵H运用QR方法,求出H的特征值,H的特征值就是A的特征值。
  3. 用逆迭代的算法,对于一个给定的特征值,计算它对应的特征向量。

1.将矩阵A转化为Hessenberg矩阵H
这一步是整个算法最耗时的部分,一般来说有3种算法可以将A转化为Hessenberg矩阵。
  1. HouseHolder变换
  2. Givens变换
  3. Lanczos方法,这一方法主要针对大型稀疏矩阵
2.对Hessenberg阵H运用QR方法,求出H的特征值
这一步一般就是用经典的QR方法,主要Hessenberg阵在QR的迭代中保持Hessenberg阵的形式

3.用逆迭代的算法,对于一个给定的特征值,计算它对应的特征向量
对于一个给定的特征值t:
  1. (A - tI) y = b, b是一个随机矩阵,解这个方程得出y
  2. b = y / |y|,t = t + 1/(b * y)
  3. 最终b收敛与特征向量,t收敛与特征值

2007-06-12

blogspot 应该好好解决一下中国人无法访问的问题了

中国是一个特殊的国家,那些所谓的美国文化在我们的地盘上行不通。
Google要进入中国,就要适应中国!

2007-06-10

Face Detection

This week, I modified my face detection program and made it faster and more accurate. I test some old photos and the result is very good. Following are some examples:






2007-06-07

人脸检测

用Adaboost做的,还有一些缺点。主要是训练机太小。500张人脸图片。





2007-06-02

六一

本来这个blog不写技术无关的事。但这件事太重要,必须写一下。就是俺和Jane已经love一周年啦。
嘿嘿嘿。Jane就是我旁边的照片里的那个人,嘿嘿。她的Blog旁边也有。

嘿嘿嘿,哈哈哈,嘻嘻嘻

2007-05-21

HTML Parser 结果

这里贴出HTML Parser的结果。将一个HTML文档转化为树结构。为了表示树结构,我用了缩进的表示方法,一个节点的子节点比它缩进更多。

2007-05-20

HTML Parser : CSS Parser

现在已经可以将HTML解析成DOM,现在的任务是视觉上的,就是解析CSS,从而获得每一段文本的位置和字体,颜色等信息。这一步也不是很困难。

其实我认为HTML Parser中最困难的是Javascript的解析,这个难度和写一个编译器差不多了,我感觉我可能搞不定。可以找找这方面的开放源代码。

其实,如果把HTML,CSS,JavaScript都解析了,也就离做一个浏览器差不多了,嘿嘿

2007-05-18

HTML Parser 0.0

I have finish the simple html parser, in this parser, I convert html document to a Tree. Like Javascript, I design following functions in my C++ HTML Parser Library:
  1. getElementById
  2. innerHTML

已经初步完成了HTML Parser, 可以将HTML文档解析成一棵树。为了使用方便,我参照了JavaScript DOM的设计方法,给出了以下函数:

  1. 为了获得文档中的某个节点,可以用 getElementByID
  2. 为了获得某个节点的html代码,可以用 innerHTML

HTML Parser的编写还在继续中,现在主要是测试大量的文档,因为HTML Parser的最大困难是容错。

HTML 解析

这个问题烦了我们很久了,目标就是将HTML解析成DOM,这方面的C++开源代码几乎没有,只有借用firsfox的解释器。但是firefox的规模太大,用起来很不方便。

对这个问题我不爽了很久了,我决定不再不爽下去了,我准备花点时间把它彻底解析了。HTML解析的最大难度,在于HTML标准的高度不规范,它的解释器需要写的高度容错。这个很有挑战。

2007-05-16

HTML Tree : HtmlParser

最近在研究HTML解析,这方面的C++的库太少了,只发现了一个HTML_Tree。正在研究中,这个库将HTML文档解析成一棵树。

这个月买了几本书

  1. 模式分析的核方法
  2. C++并行与分布式编程
  3. 西方哲学史
  4. 裸猿
  5. 文明与野蛮
  6. 三国志

嘿嘿嘿,准备补习一下社科方面的知识,嘿嘿嘿。

2007-05-14

基于链接的排名欺诈发现

SIGKDD 2006 : Site level noise removal for search engine

这篇文章介绍了在网站级别上的欺诈网站的发现,通过去除欺诈的链接,避免通过pagerank算法提高排名。文章分析了链接欺诈的方式:
  1. 建立两个网站,然后在这两个网站之间建立大量的链接,这样就可以同时提升两个网站的排名。如果两个网站之间的链接超过一定的数量,删去两个网站间的所有链接。
  2. 指向一个网站的大多数链接来自另一个网站。
  3. 指向一个网站的链接大多来自于一个相互联系紧密的网站集合。

2007-05-08

Graph Cluster(图的聚类)




基于图的可视化的那个软件,完成的图的顶点的聚类,这是一个图的基本的算法。

2007-05-06

放假归来

嘿嘿,五一长假快结束了,我也从家里回到北京了,嘿嘿

2007-04-25

图的可视化

我准备把那个Graph可视化的软件做的更强大一点,下面是一个动画:

耐心的等一下...

2007-04-22

python 爬虫

我把上次写得python的爬虫写得更快了。使用了多线程,可以同时爬5个网站。同时用了配置文件,在配置爬虫的时候只需要修改配置文件就可以了。
下面是配置文件的样子,现在1个小时可以爬10000个网页,和C++的爬虫相比还是很慢,但是对于小的搜索引擎是足够了,嘿嘿。



我现在将berkeley db加入到系统中,基本上已经是一个小型的引擎了。
python与berkeleyDB的接口是bsddb,关于它的讨论可以从Google上获得。

2007-04-17

简单数据库设计

最近准备做一个简单的数据库,我们知道数据库的最基本的作用是查找,就是给一个key,返回一个value。其实就是相当于C++中的map。但是由于数据库的存储量巨大,不可能把所有的数据放到内存中,所以我们要做一个基于文件的map

我用C++定义了这个数据格式。目前已经写出了第一个板本,速度还行。只是目前需要将索引表完全放在内存中,这样耗费的内存还比较大,这一点需要改进。我感觉STL的map比较耗费内存。所以准备写一个不怎么耗内存的map,嘿嘿。

2007-04-13

拼音输入法

最近在做一个拼音输入法,其实是个作业,不过我想把它做的完美一点,嘿嘿。
我做了一个联想的算法,主要用的是3元语法模型,效果还行,下面是一些结果,嘿嘿!

[input] : aersitongbenchangbisaidadebucuo
a er si tong ben chang bi sai da de bu cuo
阿 尔 斯 通 体 长 比 赛 大 的 不 错
[input] : aersitongbengchangbisaidadebucu
o
a er si tong beng chang bi sai da de bu cuo
阿 尔 斯 通 平 常 比 赛 大 的 不 错
[input] : wofaxianyigeguilv
wo fa xian yi ge gui lv
我 发 现 一 个 规 律
[input] : aiyinsitan
ai yin si tan
爱 因 斯 坦
[input] : niudunshiyingguozhumingdewulixuejia
niu dun shi ying guo zhu ming de wu li xue jia
牛 不 是 英 国 注 明 的 物 理 学 家
[input] : niudun
niu dun
牛 顿
[input] : haohaoxuexi
hao hao xue xi
好 好 学 习
[input] : tiantianxiangshang
tian tian xiang shang
天 天 向 上
[input] : maozhuxishiwomendelinxiu
mao zhu xi shi wo men de lin xiu
毛 主 席 是 我 们 的 林 秀
[input] : maozhuxishiwomendelingxiu
mao zhu xi shi wo men de ling xiu
毛 主 席 是 我 们 的 领 袖
[input] : gaigekaifangyilaiwomenqudelechangzudejinbu
gai ge kai fang yi lai wo men qu de le chang zu de jin bu
改 革 开 放 以 来 我 们 取 得 了 长 足 的 进 步
[input] : haolabiekule
hao la bie ku le
好 落 别 哭 了
[input] : guowuyuanzongliwenjiabaojintiandidaribenkaishiduiribendeyouhaofangwen
guo wu yuan zong li wen jia bao jin tian di da ri ben kai shi dui ri ben de you hao fang wen
国 务 院 总 理 温 家 宝 今 天 的 大 日 本 开 始 对 日 本 的 友 好 访 问
[input] : weishenbu
wei shen bu
为 什 不
[input] : weishengbu
wei sheng bu
卫 生 部
[input] : weishengbufayanrenjintianshuowomenguojiajiangtuijinquanmiandeyiliaogaige
wei sheng bu fa yan ren jin tian shuo wo men guo jia jiang tui jin quan mian de yi liao gai ge
卫 生 不 发 言 人 今 天 说 我 们 国 家 将 推 进 全 面 的 医 疗 改 革
[input] : jintiandekaoyanshitibijiaojiandan
jin tian de kao yan shi ti bi jiao jian dan
今 天 的 考 验 是 提 比 较 简 单

2007-04-10

图像检索

最近作了一个大作业,图像检索。主要是基于简单的颜色和纹理特征的。下面是一些效果图,做得和粗糙,嘿嘿。

2007-04-07

社会网络

我们通过一定的技术,获取了大量的实体之间的关系。给出几个种子词语,我们可以生成一张图,显示他们的关系。下面贴出一些图给大家看看:

种子 :诸葛亮 李世民 李白

种子:毛泽东 爱因斯坦

种子:毛泽东 胡志明 金日成 卡斯特罗

2007-03-31

信息过滤 和 时间检测

最近主要的工作是信息过滤和新闻的时间检测。

新闻的时间检测比较容易,主要是考虑的情况要全面,别的就没有什么了。

信息过滤还是比较复杂。首先要过滤掉色情的词。然后对于政治的东西,需要检测出文章的感情色彩,是对当前政府持否定态度的还是肯定的。最后还要对那种纯粹骂人的文章过滤掉。过滤的目的一方面是符合法律的要求,另一方面是大家的时间都宝贵,没空听你胡说八道。

2007-03-26

WWW 2007 论文

Track: Browsers and User Interfaces

Track: Data Mining

Track: E* Applications

Track: Industrial Practice & Experience

Track: Performance and Scalability

Track: Pervasive Web and Mobility

Track: Search

Track: Security, Privacy, Reliability and Ethics

Track: Semantic Web

Track: Technology for Developing Regions

Track: Web Engineering

Track: Web Services

Track: XML and Web Data

2007-03-20

FreeType + CImg 汉字渲染引擎

在一幅图像上显示一个汉字,看似很简单,其实如果不用所谓的WinAPI,还不是很简单。
首先我们需要处理字库文件,FreeType是一个开源的字库软件,可以读取Microsoft的TrueType矢量字库。如果要处理汉字,一般使用Unicode编码。

有了字库处理包,我们还需要一个强大的图像开发库。OpenCV是一个不错的选择,但是这个库从安装到使用都不是很方便。为此我选用了CImg的库,这个库如此简单,以至于它只有一个头文件。其他什么都没有。而且CImg是完全基于C++的,使用了template技术。而且它支持几乎所有的文件格式,这是很多做图像的人所希望的。

下面这个字使用上面的两个库画出来的:

2007-03-19

汉字编码 C++

我用C++基于STL写了一个汉字编码的处理库。
可以实现 编码转换,自动编码检测。
重载了wstring的函数,使用很方便。

需要的可以和我联系:xlvector@gmail.com

目前只支持UTF-8和GBK编码。

UTF-8编码

UTF-8编码和Unicode编码其实没有区别,只是为了方便机器识别和移植,换了一种表现方式。也就是说Unicode和GBK之间的转换不需要用转换表,而是写一个程序就行了。

关于UTF-8和Unicode的介绍,可以看这儿

关于如何由Unicode编码为UTF-8的方法网上很多,下面转载一个:

UTF-8 有一下特性:

  • UCS 字符 U+0000 到 U+007F (ASCII) 被编码为字节 0x00 到 0x7F (ASCII 兼容). 这意味着只包含 7 位 ASCII 字符的文件在 ASCII 和 UTF-8 两种编码方式下是一样的.
  • 所有 >U+007F 的 UCS 字符被编码为一个多个字节的串, 每个字节都有标记位集. 因此, ASCII 字节 (0x00-0x7F) 不可能作为任何其他字符的一部分.
  • 表示非 ASCII 字符的多字节串的第一个字节总是在 0xC0 到 0xFD 的范围里, 并指出这个字符包含多少个字节. 多字节串的其余字节都在 0x80 到 0xBF 范围里. 这使得重新同步非常容易, 并使编码无国界, 且很少受丢失字节的影响.
  • 可以编入所有可能的 231个 UCS 代码
  • UTF-8 编码字符理论上可以最多到 6 个字节长, 然而 16 位 BMP 字符最多只用到 3 字节长.
  • Bigendian UCS-4 字节串的排列顺序是预定的.
  • 字节 0xFE 和 0xFF 在 UTF-8 编码中从未用到.

下列字节串用来表示一个字符. 用到哪个串取决于该字符在 Unicode 中的序号.

U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

xxx 的位置由字符编码数的二进制表示的位填入. 越靠右的 x 具有越少的特殊意义. 只用最短的那个足够表达一个字符编码数的多字节串. 注意在多字节串中, 第一个字节的开头"1"的数目就是整个串中字节的数目.

例如: Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为:

11000010 10101001 = 0xC2 0xA9

而字符 U+2260 = 0010 0010 0110 0000 (不等于) 编码为:

11100010 10001001 10100000 = 0xE2 0x89 0xA0

这种编码的官方名字拼写为 UTF-8, 其中 UTF 代表 UCS Transformation Format. 请勿在任何文档中用其他名字 (比如 utf8 或 UTF_8) 来表示 UTF-8, 当然除非你指的是一个变量名而不是这种编码本身.

2007-03-18

汉字编码

最近在写一个通用的类解决不同汉字编码的字符串的问题。这个问题困扰我们已久。这次终于下决心彻底解决这个问题。
sigh,为什么要有那么多种编码。全世界都统一起来多好,嘿嘿。

2007-02-28

HTML DOM

DOM 是 Document Object Model 的简称。DOM将文档组织成树状模型。从而将不同的文档表示成统一格式,便于文档的解析。DOM在XML解析中应用很多,其实HTML也是可以转变为DOM的。如下图所示:



把HTML直接去除标记,转化为ASCII文档,丢失了这种层次结构,损失了部分信息。而DOM是一个无损的HTML文档表示方法。可以方便的解决HTML在内存中的表示问题。

2007-02-07

设计模式 -- 单件 Singleton

目前C++中的一个主要问题就是数据的传递。传统的 C++有3种数据传递的方式:传值,传引用,传指针。对于小的对象,不如int,double,传值是很快的。但是对于大的对象,比如字符串,含有数据的类等等,传值时要拷贝对象,但是拷贝大的对象是很慢的。

对于这个问题,可以传指针,但这是C中的方法,而且指针容易造成内存泄露。C++中的解决方案是引用。但是引用也有问题,会造成类的设计比较复杂,函数的参数过多。

于是就有单件的设计模式。单件可以实现传值的语义。他其实封装了传指针,最简单的单件实现很简单( 可见 Modern C++ Design ),他只创建一个对象,如果对象没有创建,则创建,否则就返回创建好的对象( 这就是单的意思吧,在内存中只保留一个对象 )

在设计时,凡是含有大量数据的类,都可以设计成一个单件。这样可以最大的减少拷贝的代价。

Modern C++ Design是C++设计模式中比较著名的一本书,Loki是C++设计模式的一个库。

2007-02-05

Grpah and PageRank

自从PageRank算法产生以来,它已经被用到越来越多的地方。一般来说,有Graph的地方就有PageRank。

PageRank是一个基于图的排名算法,这一算法很像选举政治,一切实体的地位由投票决定。

有了图的rank算法,现在的主要问题就是如何把我们需要rank的东西转化为Graph,现在这个是很多人研究的领域。
  1. WebPage通过url形成page之间的关系,从而构成图,最早的pagerank就是基于WebPage的排名提出的
  2. 实体Entity之间通过在一张网页或者一篇文章中co-occurence产生联系,这方面比较著名的研究是 polyphonet an advanced social network extraction system from the web 一文。
  3. 文本的图表示,我前面也说过,可以建立句子的图,或者词的图
  4. 还有语义网络...
总之,Graph-based表示比以前的向量表示前进了一步,他更多的保留了物体的信息。和向量模型一样,Graph模型也需要解决以下问题。
  1. 模型的建立,特征提取。
  2. 模型的匹配,也就是模型的相似度计算,这涉及到分类器的设计。

2007-01-29

互联网创业什么要注意什么?

转载自 http://www.douban.com/group/topic/1410869

2006年是youtube被收购,结果中国出来200多个tube。现在一些还在做吧,出来了一个flickr,结果中国也出来一堆xlickr。相信其中一些能够做好,但不是每一家公司。
  
互联网创业的诱惑在于:是个人就可以开始做,危险在于:竞争太强,因为谁都可以做,残酷在于:市场上只有第一,也许有第二,基本上没有第三第四。所以,在互联网上创业,需要注意几点:
  1. 注意大个子,如果微软或Google想做这件事情,那你要认真考虑还做不做;
  2. 注意自己的局部优势,要是在自己的一亩三分地还没有优势,那就要考虑自己对准的市场是不是太大?
  3. 注意自己的市场,是不是没有成长潜力,要是是一个萎缩中的市场,你当然要考虑了;
  4. 注意自己产品的可用性和价值,没有这个,什么都不用说了;
  5. 注意自己的竞争策略,为什么自己能够在竞争中存在下去?什么?没有竞争?那再想想看自己的妙主意真得有市场吗?为什么全世界都没有想到,答案很可能是:那根本不是好主意。

2007-01-28

文档的图表示

在信息检索和搜索中,对文本的处理是至关重要的.在文本处理中,文本的表示是第一步.传统的文本表示方法是将文本表示成关键词集合,也就是一个一维向量.这一表示有很多的优点.但是他在文本处理中,过多的损失的文本的信息,所以目前有一种文本的图表示方法.

这一表示方法不仅考虑图中的关键词,而且考虑关键词之间的关系.也就是将文本表示成一个关键词的图(Graph),在图表示中,主要的就是图的顶点和边。

顶点 :关键词
边 :2个顶点之间有一条边,那么这两个顶点的关键词,在文本中的距离小于N。

也就是说两个关键词之间的联系取决于两个词在图中的距离。这个距离定义为词在分词序列中的距离。

转换到新版了

嘿嘿嘿,终于转换到Blogger的新版了。

2007-01-21

amule

Linux 下的 emule,用了一下,感觉不错。

2007-01-20

在FC6上设置yum的国内镜像更新源

转载自:http://blog.csdn.net/calories/archive/2006/12/08/1435526.aspx

刚装了FC6,由于在教育网,无法使用yum默认的国外更新源,因此需要将其设置为国内镜像站点。在网上找了一圈,发现清华的 ftp://ftp3.tsinghua.edu.cn这个更新源不错。参考网上的一些方法,设置yum更新源步骤如下:

1. /etc/yum.repos.d/下的已有更新源(repo文件)的enable改为0。为了方便起见,可以直接 mv /etc/yum.repos.d /etc/yum.repos.d.bak重命名,这样就让系统找不到原有的repo文件了。

2. 修改/etc/yum.conf文件,添加如下内容:
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

[extras]
name=Fedora Extras $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/extras/6/i386
enabled=1

[updates]
name=Fedora Core $releasever - $basearch - Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[core]
name=Fedora Core $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

3. 经过上述步骤后,就可以使用速度较快的国内镜像站点作为yum更新源了。

2007-01-18

比较著名的web2.0网站

http://www.web2logo.com
上面这个网站记录了现在网上比较著名的web2.0网站。