星期二, 五月 29, 2007

笑话

一兄弟上厕所,结果误入女厕,进去之后发现没有小便池,感觉不对,幸好女厕内没 有人。他便若无其事地走出来。正在开门的时候,遇到一mm进来,那mm和他打一照面,脸一红,头一低,转身钻男厕去了

一兄得便秘,在厕所里久久不能如便,正在他极力努力的时候,看一哥们风一样的冲进厕所,进了他旁边的位置,刚进去就传来一真狂风暴雨,那兄羡慕的对那哥们说:哥们好羡慕你呀,   那哥们说:羡慕啥,裤子还没脱呢~~

某大学新楼落成一雕塑:一位少女左手捧一本书,右手高擎一只象征和平的鸽子.该校外公开向各学生征集名称,结果许多人的标语不谋而合——读书顶个鸟用!

星期三, 五月 23, 2007

自然醒?

不知道怎么搞得,今天早晨居然六点多点就睡不着了,这是不是也是睡了一个自然醒?呵呵
现在有点瞌睡了,小休息一下。

星期五, 五月 18, 2007

史上最大变革! Google突然换新界面

美国时间5月16日上午,Google公司在其公司总部举行了一次名为“Searchology”(搜索学)的新闻发布会。会上,公司宣布自诞生以来Google主页页面的最大一次变革,新页面被他们命名为“universal search model”(通用搜索模式)。Google公司搜索产品及用户体验副总裁Marissa Mayer在会上的演讲中透露了新页面的样式。很简单,和从前非别列出各种搜索结果相异,新的搜索结果页面将同时列出网页、图片、新闻和其他结果,首个结果页面将综合各个门类的最佳结果。
有趣的是,这一概念的来源还要牵扯到Britney Spears。对,就是那个小甜甜布兰妮。早在2001年,Marissa Mayer本人就曾经展示过一张样品页面,显示出“Britney Spears”的搜索结果,在网页结果右侧包括了新闻、图片和Google GroUPS的相关内容。今天在发布会上,Mayer表示:“那张Britney Spears的页面确实是目前通用搜索模式的起源,但显而易见的,这次引入它绝对是Google历史上最大的一次架构和界面的变革!” 为了新的通用搜索模式,Google有超过100名工程师花费了几年的努力,而今天展示的新主页页面仅仅是第一步。Google创始人之一Sergey Brin表示公司过半的开发力量都投入到了这一项目中来。 未来,除了图片、新闻、图书、视频及地图搜索结果会被同时列出外,还会有更大规模的融合。公司希望能够让用户通过一次搜索找到他(或她)想要的任何东西。 “举例来说,用户搜索星球大战人物Darth Vader时,可能希望了解有关于这个人物及其演员的所有信息,而不仅仅是这部电影。Google因此将会在搜索结果中列出各种各样的信息,包括电影的恶搞版视频,Darth Vader的剧照,乔治卢卡斯最新电影的新闻报道,以及关于演员James Earl Jones的网站等等。这些结果全部按照与搜索信息的相关性排序。” 在会上,Google公司还发布了许多小的革新,包括页面顶部的导航栏、分列页面左右的分类栏目等等。公司没有透露新版页面的上线日期,但预计就在近几周内,我们就能看到新风格的Google搜索页面。

星期四, 五月 17, 2007

《新结婚时代》观后感

这几天看了一部电视连续剧《新结婚时代》,其实在家的时候就看了几集,那时候感觉挺好看,但是没有看完就来了学校,很遗憾。其几天看到同学在看就马上下载下来看完。
总体来说,很好看,不仅幽默、搞笑,而且很有现实意义,推荐大家看一下。通过这部连续剧使我明白了两个道理:
1、结婚其实是两家人的事,而不仅仅是两个人的事。
2.门当户对是非常重要的。
电视连续剧里面虽然对这两点演的过于夸张了一点,但是确实是现实生活存在的问题。 这就是理想化生活与现实生活的差距吧。

星期二, 五月 15, 2007

NBA-勇士

以前因为姚明个人的原因一直爱看火箭的比赛(但不是爱看火箭的打法,呵呵),由于科比的原因也比较喜欢看湖人的比赛。其他队的比赛一般是不看的。
在火箭被淘汰后,以为已经自己不会再看NBA的比赛了,但是突然发现自己开始喜欢上了勇士的比赛,至少超过了湖人的比赛,甚至超过了火箭,呵呵。和太阳队一样,勇士在老尼尔森的带领下崇尚快攻,但每个人打的更有激情,更有活力,更有观赏性,喜欢这样的比赛,不想火箭那样,死气沉沉的。
现在勇士已经1:3落后于爵士队了,但是输了的那几战都是最后几秒才决定的,唉,太可惜了,要是勇士再创造一个奇迹,淘汰掉爵士队,然后下一轮对阵太阳,那样多好,两个快攻的比赛。
期待中!!!也在祝福中!

星期日, 五月 13, 2007

母亲,您辛苦了!

每年五月的第二个星期天是母亲节,今天又是母亲节。
有许多人、许多事,经历了转身便会忘记,但在我们的心灵深处永远不会忘记您,我的母亲,永远不会因为岁月的流逝而消减对母亲那深深的爱。
希望能在这样节日里对母亲说声:妈妈,您辛苦了,节日快乐!
也祝福天下所有的母亲们节日快乐,幸福安康!

星期六, 五月 12, 2007

Blogspot被封杀及其访问方法

5月11日,Google Blogger似乎无法访问了,唉,可怜的Blogspot,刚刚能正常访问一个月,现在又不正常了。我立刻对此进行了测试,得出的结论是BlogSpot的IP地址72.14.207.190目前无法访问。
测试的截图如下所示:



最后一个IP为202.97.35.49,经过查询为“全国 (电信骨干路由器) 电信”,因此可以判断BlogSpot无法访问不是因为Google服务器坏了。
  就我记忆中,近年来blogspot封了又解,解了又封。

  下面是我记录的Blogspot的解封和被封的历史:
  2003年-2006年8月,被封。
  2006年8月9日,解封。
  2006年10月26,被封,11月22日,解封
  2007年3月20日,被封,3月28日,解封。
  3月29日,被封。4月1日,解封。
  4月5日,被封,4月15日,解封。
  5月11日,再次被封。
  目前,要想正常访问Blogspot,可以采用的方法:编辑WINDOWS\system32\drivers\etc\hosts 文件,然后加入72.14.219.190 xxx.blogspot.com ,其中xxx是你的用户名,即可访问到你自己的BlogSpot了。
  大家可以预测一下什么时候Blogspot能解封。

Google的Blog Search开通Ping服务功能

做为一个快速成长的Blog搜索服务,Google的Blog Search开通Ping服务功能。
  这个Ping服务主要用于Blog更新通知使用,可以将Blog更新的消息快速通知给Google,以便于Google索引Blog的内容。
  目前使用Ping服务功能有两种方法,一种是手动Ping,一种是自动Ping.
  手动Ping的地址是http://blogsearch.google.com/ping.每次你更新Blog后可以访问这个地址,并提交你的Blog.
  当然,更多人喜欢发布完日志后,自动通知Google服务器。目前在WordPress或MovableType中的ping服务器地址中,添加这个地址:http://blogsearch.google.com/ping/RPC2 ,可以完成自动Ping功能。如果想添加更多的Ping服务器地址,请参考这篇文章《RSS工具和资源汇总》。
  希望FeedBurner也能将Google的Ping服务添加到其系统中。

获得系统时间

唉,伤心呀!本来以为昨天那个gettimeofday()函数可以解决问题,但是经过测试还是和clock一样,当程序运行的时间比较长时,他的计算结果还是错误的。白白等了快3个小时。上网搜索了一下,别人也出现过这类问题,但是没有找到解决的方法,难道真是bug?
今天又找了一种方法,获得系统的时间,不过这种方法只能精确到s,现在也只能这样了,再等上他3个小时看看,呵呵。
下面是linux下获得系统时间的方法介绍:
#include //C语言的头文件
#include //C语言的I/O
void main()
{time_t now; //实例化time_t结构
struct tm *timenow; //实例化tm结构指针
time(&now);//time函数读取现在的时间(国际标准时间非北京时间),然后传值给
nowtimenow = localtime(&now);//localtime函数把从time取得的时间now换算成你电脑中的时间(就是你设置的地区)
printf("Local time is %s\n",asctime(timenow));//上句中asctime函数把时间转换成字符,通过printf()函数输出}
注释:time_t是一个在time.h中定义好的结构体。
而tm结构体的原形如下:
struct tm
{ int tm_sec;//seconds 0-61
int tm_min;//minutes 1-59
int tm_hour;//hours 0-23
int tm_mday;//day of the month 1-31
int tm_mon;//months since jan 0-11
int tm_year;//years from 1900
int tm_wday;//days since Sunday, 0-6
int tm_yday;//days since Jan 1, 0-365
int tm_isdst;//Daylight Saving time indicator
};

星期五, 五月 11, 2007

程序运行时间的函数

前几天一直用c语言下的clock()这个函数来计算串行和并行程序运行的时间,发现当运行的时间比较少的时候,串行clock计算的时间是正确的,但是当运行的时间比较长的时候(比如几个小时的时候),发现相减的结果有时候是负数,有时候即使不是负数,但是结果也是肯定不对的,Google了一下,没有找到原有,难道是溢出造成的?奇怪!
然后下午只能用其他的函数来计算程序运行的时间,突然发现用clock来计算并行程序运行的时间的时候,得倒的结果也是错误的,唉,郁闷呀,好了好几天测的结果都得重新测试了。
下面记录一下linux下这个计算程序结果的方法,经过测试发现,这个方法不仅可以用在串行算法中,用在并行算法中得倒的结果也是正确的。下面就是用这个方法测试程序结果的一个实例:
首先是这个方法的函数和数据结果
#include
int gettimeofday(struct timeval *tv,struct timezone *tz);
strut timeval
{ long tv_sec; /* 秒数 */
long tv_usec; /* 微秒数 */
};
下面就是实例:
gettimeofday将时间保存在结构tv之中.tz一般我们使用NULL来代替.
#include
#include
#include
void function()
{
unsigned int i,j;
double y;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
y=sin((double)i);
}
main()
{
struct timeval tpstart,tpend;
float timeuse;
gettimeofday(&tpstart,NULL);
function(); gettimeofday(&tpend,NULL);
timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec;
timeuse/=1000000;
printf("Used Time:%fn",timeuse);
exit(0);
}

星期四, 五月 10, 2007

保护眼睛的方法

本来以为昨天晚上能睡个好觉,结果倒是一会儿就睡着了,可是早晨7点20就醒了,熬了一会儿7点40就起床了。好久没有这么早起床了。
保护你的眼睛,请更改电脑屏幕颜色(对长期电脑前工作者大有帮助!) 我一个朋友前一段时间因为常常加班导致眼睛过度疲劳得了干眼症 ,医生建议她电脑屏幕 不要用白色,因为白色对眼睛的刺激是最大的 。像我们这样整天对着电脑,也应该注意一 下。所以我就来向大家介绍一下怎样将电脑屏幕由刺眼的白色改为淡绿色,让大家在工作的 同时,尽可能的将电脑对我们眼睛的伤害降到最低!      
设置方法:打开控制面板中的"显示"选择外观(appearance)-高级(advanced),然后在 项目(items)那栏选窗口(windows),再点颜色(color)   -其它颜色(others),然后把Hue(色调)设为85,Sat(饱和度)设为90,Lum(亮度)设为 205。然后单击添加到自定义颜色(Add to custom colors),按“确定”...一直确定。      把窗口设成绿色之后,再来把IE的网页背景也变成养眼的绿色吧:打开IE,点击工具 (TOOLS),点INTERNET选项(INTERNET OPTIONS),点   右下角的辅助功能(Assessibility),然后勾选不使用网页中指定的颜色(ignore colors specified on web pages),然后点“确定”退出。     
 OK,现在你就会发现你的屏幕已经变成淡淡的绿色了 。

星期三, 五月 09, 2007

调试最终通过

今天虽然忙碌了整整一天,但是过得很充实(调试了一整天的程序)。昨天的程序虽然通过,但是还有错误,但是今天是真正的通过了。特高兴,呵呵。而且有种成就感。
以前的程序都是根据一篇英文的论文写的一个算法,但是今天突然发现完全根据那篇论文写的程序,得倒的结果非常不理想,和论文上的实验结果存在很大的差别,不知道是自己没有没有真正理解了论文的思想还是论文的数据有造假的嫌疑,呵呵(这句话夸张了点)。
今天对数据进行了仔细分析,对原有算法的思想稍微改了一下,发现结果好了很多。不知道这点改进能不能算一个创新,不知道能不能当作论文的一个创新点,那也不管了,就这样写了,呵呵。这样看来创新不是坐着想就能想出来的,是通过自己的动手去发现问题并解决问题的时候得到的。明天开始测试数据,开始准备写小论文。
祝所有正在看此文章的朋友们也能在学习、工作上有所突破,晚上睡个好觉。呵呵。

星期二, 五月 08, 2007

调试通过

调试了很久的程序,今天下午终于运行正常了,在这里留个纪念吧,不过还有点小小的问题,呵呵。
下一步应该改善一下程序了,使他的运行效率更高,而且还得想想能有什么改进的地方,也就是创新吧。 想想ing ...。
希望能有所突破吧,要努力了。

星期六, 五月 05, 2007

矩阵运算和文本处理中的分类问题

我在大学学习线性代数时,实在想不出它除了告诉我们如何解线性方程外,还能有什么别的用途。关于矩阵的许多概念,比如特征值等等,更是脱离日常生活。后来在数值分析中又学了很多矩阵的近似算法,还是看不到可以应用的地方。当时选这些课,完全是为了混学分的学位。我想,很多同学都多多少少有过类似的经历。直到后来长期做自然语言处理的研究,我才发现数学家们提出那些矩阵的概念和算法,是有实际应用的意义的。
在自然语言处理中,最常见的两类的分类问题分别是,将文本按主题归类(比如将所有介绍亚运会的新闻归到体育类)和将词汇表中的字词按意思归类(比如将各种体育运动的名称个归成一类)。这两种分类问题都可用通过矩阵运算来圆满地、同时解决。为了说明如何用矩阵这个工具类解决这两个问题的,让我们先来来回顾一下我们在余弦定理和新闻分类中介绍的方法
分类的关键是计算相关性。我们首先对两个文本计算出它们的内容词,或者说实词的向量,然后求这两个向量的夹角。当这两个向量夹角为零时,新闻就相关;当它们垂直或者说正交时,新闻则无关。当然,夹角的余弦等同于向量的内积。从理论上讲,这种算法非常好。但是计算时间特别长。通常,我们要处理的文章的数量都很大,至少在百万篇以上,二次回标有非常长,比如说有五十万个词(包括人名地名产品名称等等)。如果想通过对一百万篇文章两篇两篇地成对比较,来找出所有共同主题的文章,就要比较五千亿对文章。现在的计算机一秒钟最多可以比较一千对文章,完成这一百万篇文章相关性比较就需要十五年时间。注意,要真正完成文章的分类还要反复重复上述计算。
在文本分类中,另一种办法是利用矩阵运算中的奇异值分解(Singular Value Decomposition,简称 SVD)。现在让我们来看看奇异值分解是怎么回事。首先,我们可以用一个大矩阵A来描述这一百万篇文章和五十万词的关联性。这个矩阵中,每一行对应一篇文章,每一列对应一个词。 在上面的图中,M=1,000,000,N=500,000。第 i 行,第 j 列的元素,是字典中第 j 个词在第 i 篇文章中出现的加权词频(比如,TF/IDF)。读者可能已经注意到了,这个矩阵非常大,有一百万乘以五十万,即五千亿个元素。
奇异值分解就是把上面这样一个大矩阵,分解成三个小矩阵相乘,如下图所示。比如把上面的例子中的矩阵分解成一个一百万乘以一百的矩阵X,一个一百乘以一百的矩阵B,和一个一百乘以五十万的矩阵Y。这三个矩阵的元素总数加起来也不过1.5亿,仅仅是原来的三千分之一。相应的存储量和计算量都会小三个数量级以上。 三个矩阵有非常清楚的物理含义。第一个矩阵X中的每一行表示意思相关的一类词,其中的每个非零元素表示这类词中每个词的重要性(或者说相关性),数值越大越相关。最后一个矩阵Y中的每一列表示同一主题一类文章,其中每个元素表示这类文章中每篇文章的相关性。中间的矩阵则表示类词和文章雷之间的相关性。因此,我们只要对关联矩阵A进行一次奇异值分解,w 我们就可以同时完成了近义词分类和文章的分类。(同时得到每类文章和每类词的相关性)。
现在剩下的唯一问题,就是如何用计算机进行奇异值分解。这时,线性代数中的许多概念,比如矩阵的特征值等等,以及数值分析的各种算法就统统用上了。在很长时间内,奇异值分解都无法并行处理。(虽然 Google 早就有了MapReduce 等并行计算的工具,但是由于奇异值分解很难拆成不相关子运算,即使在 Google 内部以前也无法利用并行计算的优势来分解矩阵。)最近,Google 中国的张智威博士和几个中国的工程师及实习生已经实现了奇异值分解的并行算法,我认为这是 Google 中国对世界的一个贡献。