C语言一个简单的问题:输入一段文本,计算其中每个单词的出现频率:下面是代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言一个简单的问题:输入一段文本,计算其中每个单词的出现频率:下面是代码相关的知识,希望对你有一定的参考价值。
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
char text[100];
char word[100][20];
int index=0;
int nword=0;
int count[100]=0;
int j=0;
int i=0;
printf("Please input some words:");
scanf("%[^*]",text);
fflush(stdin);
while(text[index]!='\0')
if(text[index]==' ' )
index++;
else
word[nword][j++]=text[index++];
if(text[index]==' ' && nword==0 )
count[nword]++;
nword++;
index++;
j=0;
if(text[index]==' ' && nword>0)
j=0;
for(i=0;i<nword;i++)
if(strcmp(word[nword],word[i])==0)
count[i]++;
else
count[nword]++;
nword++;
for(i=0;i<nword;i++)
printf("%s : %d \n",word[i],count[i]);
getch();
我知道这个程序写的很差,但我不明白哪里错了,请大家帮帮忙,谢谢了
3,将网站的域名作跳转,跳转到百度,新浪,163,sohu等门户网站,重新提交后就可以了,
4,注册百度的联盟,加入百度的代码,在重新提交.
急不来的
通常的步骤是:
- 提交到百度,正常情况是1个月后将你的网站添加到搜索引擎的index
- 整理你的页面,让你的页面变得search engine friend,你可以到这个网站去看看有一些建议
- 到处去做你的网站的连接(提高搜索引擎访问你的网站的速度)
如何让百度收录百度给站长的建站指南
如何使您的站点被百度有效收录
给每个网页加上与正文相关的标题。如果是网站首页,则标题建议使用站点名称或者站点代表的公司/机构名称;其余内容页面,标题建议做成正文内容的提炼和概括。这可以让您的潜在用户快速的访问到您的页面。
请不要在标题中堆积与正文无关的关键词。
确保每个页面都可以通过一个文本链接到达。百度无法识别Flash中的链接,这些单元上的链接所指向的网页,百度就无法收录了。
页面间的链接,尽量使用平实的超链,而不是重定向跳转。使用自动跳转的页面,可能会被百度丢弃。
尽量少使用frame和iframe框架结构。
如果是动态网页,请控制一下参数的数量和URL的长度。百度更偏好收录静态网页。
在同一个页面上,不要有过多链接。在那些站点地图类型的页面上,请把重要的内容给出链接,而不是所有细枝末节。链接太多,也可能会导致无法被百度收录。
什么样的站点会受到百度欢迎
站点应该是面向用户的,而不是面向搜索引擎的。一个受到用户欢迎的站点,最终也会受到搜索引擎欢迎;反过来,如果您的站点做了很多针对百度的优化,但却给用户带来大量负面体验,那么,您的站点最终可能还是会受到百度的冷落。
百度更喜欢有独特内容的网页,而不是简单抄袭和重复互联网上已有内容的网页。对于已经被重复了千百遍的内容,百度可能会不予收录。
请谨慎使用您的站点链接。与一些垃圾站点做友情链接,很可能会使您的网站受到负面影响。因此,当有人很热情的要求您为他的站点提供友情链接时,请审视以下两点:
一,对方的站点在他那个领域是否是高质量的?站长间所谓的流量以及排名,很多都是用欺骗手段获取的,无法保持长久。
二,对方要求的链接名称是否和对方网站地位相称?用一个涵盖范围广泛的关键词来做一个内容非常局限的网站的链接名称,很可能会使您的网站受到负面影响。
经常保持内容更新。经常有新内容产生的站点,百度是会注意到,并且大力欢迎,而且会频繁造访。
网站登录问题
我的网站更新了,可是百度收录的内容还没更新怎么办?
答:百度会定期自动更新所有网页(包括去掉死链接,更新域名变化,更新内容变化)。因此请耐心等一段时间,您的网站上的变化就会被百度察觉并修正。
怎样使我的网站被百度收录?
答:百度免费自动收录您的站点。如果您希望百度尽快收录,可以到网站登录提交您的网址;只需提交网站首页,内部页面百度会自动抓取。
从提交到被收录,大约需要多久?
答:通常需要1-4周时间。
我不想让百度收录我的站点,该怎么办?
答:百度尊重和遵守robots协议,您可以写一个robots文件限制您的网站全部或部分不被百度收录。详情参见禁止搜索引擎收录的办法。
我的站点为什么在百度中搜不到?
答:可能的原因如下:
您可能还没向百度提交您的网站;
您已经登录了网站,但由于时间短,百度还未收录;
如果百度检测到您的网站无法访问,您的站点就有可能被百度暂时删除;
如果您的网站内容有不符合中国法律的地方,则无法被百度收录;
如果您的站点页面结构复杂,则可能无法被百度收录(详见如何使您的站点被百度有效收录);
如果您的网站被百度判别为垃圾站点,则可能被百度拒绝收录或者随时删除(详见百度关于垃圾网站的处理)。
如果您的网站的首页在百度搜索不到,则可能是由于您的网站不稳定使首页被判别为死链接导致丢失。您的网站稳定后,首页会重新在百度中被搜索到。 百度并不允诺能收录所有站点。如果有上述回答无法说明的问题,也可以发信到webmaster@baidu.com询问。
我的站点在百度搜索结果中排名下降了,该怎么办?
答:排序变动很正常。一般情况下,只要您不断提高网站内容质量,让更多的用户喜欢您的网站,成为您的忠实用户,您的网站在百度的排名一般就不会很差。
百度关于垃圾网站的处理
如果您的站点中的网页,做了很多针对搜索引擎而非用户的处理,使得:用户从搜索结果中看到的内容与页面实际内容完全不同,或者站点质量与站点在搜索结果中的排名极不相称,从而导致用户产生受欺骗感觉,那么,您的网站就有可能被百度丢弃。
如果您的站点上的网页,大量都是复制自互联网上的高度重复性的内容,那么,您的站点也有可能被百度丢弃。
所以,当您的网站从百度消失,请先审视一下自己的站点有无问题。有任何意见,也可以反馈到webmaster@baidu.com。您也可以向百度投诉搜索中遇到的垃圾网站或者网页,帮助百度保持搜索结果的质量。
让百度等搜索引擎收录您的网站当您发现在以下搜索引擎里,无法搜索到您或者您客户的网站时,您就打开以下登录口,填好申请表提交,等这些网站的工作人员审核通过后,您的网站就可以在上面搜索到了。
怎样才能让百度及时更新网站的收录数据?你有没有发现搜索引擎已经很久没有收录你的网站了,有没有方法能让搜索引擎及时更新你的网站收录数据,不知道那么就跟我来吧!(此处以百度搜索引擎为例)
1.在百度搜索引擎输入:site: (此处就是你网站的网址)得到网站收录数据.
百度一下,找到相关网页29600篇,用时0.001秒
2.在百度最底下找到
1 [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页 每10页点下去,一直点到最后一页,当出现
提示:为了提供最相关的结果,我们省略了一些内容相似的条目,点击这里可以看到所有搜索结果。 再点击提示上的连接. 3.最后再次输入:site:,是不是发现比原来少了很多页数了?不要害怕,已经达到让百度更新收录数据的目的了.一天以后就会发现重新收录更多了!
注意:如果你的网站有新的内容,而又未被收录的话,经验证会有有明显效果的。什么?没有新内容??那就增加你的网站内容吧…………
怎样避免被搜索引擎视为作弊 >一个网站要想成功注册,它起码应具备两个条件,一是网站本身要有较好的内容和设计,二是网站没有作弊行为。这里所谓的“作弊”,是指采用一些特殊的、有悖常规的网页设计手法,以期提高网站排名的行为。如何设计好网站,相关的资料很多,本文就不废话了。这里主要谈谈后者,即在提高网站排名的同时,如何避免被搜索引擎视为作弊而拒绝注册。 那么,在搜索引擎看来,哪些行为算作弊呢?这里罗列了一下,从中你可看到,现在有些人还视为“密技”的东西,其实已经过时了。
>
> 堆砌页面关键字:为了增加某个词汇在网页上的出现频率,而故意重复它。这是有人常用的花招,不过,现在很多搜索引擎都能识破它。它们通过统计网页单词总数,判断某个单词出现的比例是否正常。一旦超过“内定标准”,就对你的网页说“ByeBye”了。
>
> 放置隐形文本:所谓的“鬼页法”。为了增加关键字数量,网页中放一段与背景颜色相同的、包含密集关键字的文本,访客看不到,可搜索引擎却能找到,过去一度还真能提高网站排名,但现在,主要搜索引擎都能识别出来,照样玩不通了。
>
> 安插微型文本:与“鬼页法”相似,只是文本更些�更分散、更隐蔽。但是,对于敏感的搜索引擎来说,仍然是枉费心机。
>
> 网页重定向:使用META刷新标记、CGI程序、Java、javascript或其它技术,当用户点击一个链接时,自动跳到另一个网页。有人正是用这种方法,欺骗人们进入并不想去的地方。因此,有些搜索引擎(如Infoseek),对此类网页也很反感,一般不予登记。
>
> 滥用Meta标记关键字:有人为增加关键字的出现次数,在语句中,重复关键字,或者加入与网站内容毫不相关的热门词汇。这种作弊行为,大部分搜索引擎也能识破。
>
> 滥用门户网页:门户网页(也称“桥页”),是指为了获得好的排名,而专门针对各搜索引擎排序算法设计的网页。尽管今天,多数搜索引擎并不反对这种作法。但俗话说:“物极必反。”建立太多具有相近关键字的门户网页,会招致搜索引擎的反感而无法成功注册。
>
> 连续注册:有人为加大保险系数,在一天之内,将一个网页重复提交给同一个搜索引擎,其实,这种作法适得其反。
>
> 重复注册:有人以为,将一个网页简单复制成多个网页,然后,给它们安上不同的名字,并分别予以注册,会增大访问量,结果,搜索引擎会认为你在滥用它,而拒绝登记你的网站。
>
> 偷换网页:是指一个网页成功注册并获得较好排名后,用另一个内容无关的网页(如产品广告)来替换它的行为。
>
> 张冠李戴:上面提到的门户网页,只适用于Altavista这类自动登录的搜索引擎,如果提交给Yahoo这类人工分类的目录式搜索引擎,它就会认为你在作弊。
>
>
突破页数限制:一些搜索引擎允许每个用户每天或每周提交的网页数量是有限制的。例如,Altavista每天允许10页;HotBot允许每天50页;Excite允许每周25页;Infoseek允许每天50页(但使用e-mail注册,没有页数限制)。请注意,这并不是说,搜索引擎每天或每周只能为你登录以上页数,而只是允许你提交的页数。还不明白?那就举个例吧,对于Excite而言,每周只允许你提交25页,如果你的网站有1000页,那该怎么办呢?就提交25页即可!余下的Excite会自己检查到,并将编入索引中。如果你强行突破这个限制,那么,搜索引擎就会认为你在作弊,反而不予注册。
>
> 上面这些条款似乎很明显、很容易区分,但有时我们却可能不知不觉犯上。例如,你有一个网页,背景是白色,在这个网页上,你设计了一个表格,其背景为蓝色、文字为白色,这种设计应该说也是完全正常的,但如果你到搜索引擎Infoseek去注册,它却不理你。为什么呢?它认为你在作弊!在Infoseek看来,表格中的白色文本,实际是置于白色的网页背景上,也就是说,网页文本与背景颜色相同,这就符合“鬼页法”的作弊特征。而这一点,可能你自己根本没有意识到。还有一例,有时因设计需要,或者网站已迁移到其它地方,通常我们会用到网页重定向,但对于Infoseek等搜索引擎而言,这也是不可容忍的作弊行为。另外,Infoseek等搜索引擎还要求,不要在多个网页上布置指向同一个网页的链接。例如,很多人喜欢在各个网页放上“返回主页”的链接,其实就属于这种情况。这种司空见惯的设计,居然也被看成作弊,真是太苛刻了。不过,对此Infoseek在真正执行时,似乎也并不是很严格,一些这样设计的网页,它照样登录了(你也碰碰运气?)。总体上说,这些限制都是为了对付真正的作弊者,使搜索引擎的检索结果更加准确有效,但事实上,的确也错怪了一些好人。如果万一你碰上这种情况怎么办,搜索引擎到底会怎样处罚你呢?
>
> 跟不少网主一样,笔者以前对此不甚了解,以为自己的某个网页违项,会导致整个网站被封杀。其实,事实并非如此!因为运作搜索引擎的人也知道,有时他们搜索引擎判定的“作弊”,实际是一种正常合法的设计,只是因为搜索引擎自身还不够“聪明”,无法准确判断是故意作弊,还是偶然巧合。所以,他们通常不会因为某网页象在作弊,就拒绝登记整个网站,而只是对有违规嫌疑的网页进行处罚——降低排名或不予登记,而其它的合法网页不会受到影响。此时,你只需将这个网页修改,并重新注册即可。除非你有意作弊,肆无忌惮违反上述多项规则,或者由于你提交的大量垃圾网页,对搜索结果造成明显不良影响,那么,你的整个网站将被永远踢出门外。当然,也有个别搜索引擎(如HotBot)政策更加宽松,甚至对故意作弊者,也没有永远拒绝登记的规定。只要它认为你没有攻击或侵害到它,一般不会删掉你整个网站的索引,不过,这个尺度掌握在人家手里,劝你还是别去试它的耐性。
>
> 作为一名网主,明白了哪些行为是作弊,你就应该在允许范围内,去探索如何获得较高排名,以增大网站访问量,让尽可能多的人知道你的产品、服务或了解你本人,只有这样,成功注册才有实际意义。
>
> 使百度有效收录
>
> 百度喜欢结构简单的网页,具有复杂结构的网页可能无法顺利登录百度。您在进行网页设计时应尽量:
>
> 1. 给每个网页加上标题
>
> 网站首页的标题,建议您使用您的网站名称或公司名称,其它网页的标题建议与每个网页内容相关,内容不同的网页不用相同的标题。
>
> 2. 不要把整个网页做成一个Flash或是一张图片
>
> 百度是通过识别网页源代码中的汉字来认识每一个网页的。如果您的整个网页是一个Flash或一张图片,百度在网页中找不到汉字,就有可能不收录您的网页。
>
> 3. 不对网页做重定向
>
> 重定向的网页可能不容易登录百度。
>
> 4.不在网页中使用Frame(框架结构)
>
> 5.不在网页中使用过分复杂的JavaScript
>
> 某些Java Script的内容对于搜索引擎是不可见的,所以不能被识别和登录。
>
> 5.静态网页能更顺利登录百度,动态生成的网页不容易登录百度
>
> ·如果您的网页url中含有如asp、?等动态特征,网页就可能被认为是动态网页。
>
> ·如果您的网站中有很多网页必须做成Frame结构或动态网页,那么建议您至少把网站首页做成简单的网页,并且对网站内的一些重要网页,在首页加上链接。
>
> 6. 不要对搜索引擎进行作弊
>
> 作弊的网站不能登录百度,即使登录后也随时可能被删除。
>
> 作弊网站定义
>
> 对搜索引擎作弊,是指为了提高在搜索引擎中展现机会和排名的目的,欺骗搜索引擎的行为。
>
> 以下行为都可能被认为是作弊:
>
> · 在网页源代码中任何位置,故意加入与网页内容不相关的关键词;
>
> · 在网页源代码中任何位置,故意大量重复某些关键词。即使与网页内容相关的关键词,故意重复也被视为作弊行为;
>
> · 在网页中加入搜索引擎可识别但用户看不见的隐藏文字。无论是使用同背景色文字、超小字号文字、文字隐藏层、还是滥用图片ALT等方法,都属于作弊行为;
>
> · 故意制造大量链接指向某一网址的行为;
>
> · 对同一个网址,让搜索引擎与用户访问到不同内容的网页(包括利用重定向等行为);
>
> · 作弊行为的定义是针对网站而不是网页的。一个网站内即使只有一个网页作弊,该网站也被认为是有作弊行为;
>
> · 有链接指向作弊网站的网站,负连带责任,也会被认为是作弊(但是,作弊网站上链接指向的网站,不算作弊)。
>
> 作弊网站害处
>
> 根据网页的作弊情况,会受到不同程度的惩罚:
>
> · 较轻微的惩罚,是系统在给网页排名时略为降低该网页的排名;
>
> · 较常见的惩罚,是作弊网站的某些关键词(或所有关键词)的排名降到其它任何网站之后;
>
> · 较严厉的惩罚,对于作弊行为和后果特别恶劣的网站,将从百度中消失;
>
> · 特别补充,含恶意代码或恶意插件等用户极端反感内容的网页,虽然不是作弊,但只要用户投诉,一经确认也会被百度拒绝收录;
> = = = = = = = = = = = = = = = = = = = =
致
礼!
simon
mailtonet@163.com
2006-06-07
Google官方确认AdSense有助于网页收录
>Google官方确认AdSense有助于网页收录
>
>Google的网页收录的其中一种途径是通过Googlebot的爬行来实现的,也就是说,Google派出它自己的网络蜘蛛,主动去抓取有价值的网页内容。类似地,Google的AdSense也有自己的bot,它的名字为MediaBot。它会自动去到放置了AdSense广告代码的网页,然后对网页内容进行分析,以投放与网页内容相关的广告。但一直以来都有一个争论,那就是到底AdSense的MediaBot与Googlebot有什么区别?MediaBot在判断广告相关网页的时候,会不会也对这个网站在Google收录及排名等方面有一定的好处呢?也就是说,投放了AdSense广告,会不会有助于改善自己的网站的Google收录及排名呢?
>
> 根据SEJ的消息,Google的一名高级工程师及主管Matt Cutts已经正式确认,AdSense派出来的MediaBot在抓取网页内容后,会把部分结果提交至BigDaddy的数据库里。Matt解释说,这是因为两种bot都在不断地抓取网页,因此为了节省资源,MediaBot会帮Googlebot完成部分网页抓取工作。但Matt同时也给出警告,如果你的网站提供给MediaBot的内容与提供给Googlebot的内容完全不同,那么你就会“有麻烦”。因为Google会认为你在作弊。
>
> 我认为从Matt给出的讯息里可以证明,在网站上投放了AdSense的广告,的确是有助于你的网站被Google收录。比如,收录得更快更多。但并不一定会提高你的网站排名。有这方面经验的朋友应该会想到其它办法,从Matt的话出发。
>来自幻灭的麦克风
搜索引擎原理-网络蜘蛛和ROBOTS
>搜索引擎原理-网络蜘蛛和ROBOTS
>
>一、网络蜘蛛基本原理
>
> 网络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
>
> 对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算,需要 340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。
>
> 在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。
>
广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策略的区别,下图的说明会更加明确。
>
> 由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了访问的层数。例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1层,G、H属于第2层, I属于第3层。如果网络蜘蛛设置的访问层数为2的话,网页I是不会被访问到的。这也让有些网站上一部分网页能够在搜索引擎上搜索到,另外一部分不能被搜索到。对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。
>
> 网络蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页权限的问题,有些网页是需要会员权限才能访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓取(下小节会介绍),但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全**的让搜索者查看,这样就需要给网络蜘蛛提供相应的用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的权限验证。
>
> 网站与网络蜘蛛
>
> 网络蜘蛛需要抓取网页,不同于一般的访问,如果控制不好,则会引起网站服务器负担过重。今年4月,淘宝就因为雅虎搜索引擎的网络蜘蛛抓取其数据引起淘宝网服务器的不稳定。网站是否就无法和网络蜘蛛交流呢?其实不然,有多种方法可以让网站和网络蜘蛛进行交流。一方面让网站管理员了解网络蜘蛛都来自哪儿,做了些什么,另一方面也告诉网络蜘蛛哪些网页不应该抓取,哪些网页应该更新。
>
> 每个网络蜘蛛都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User- agent,用于标识此网络蜘蛛的身份。例如Google网络蜘蛛的标识为GoogleBot,Baidu网络蜘蛛的标识为BaiDuSpider, Yahoo网络蜘蛛的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的,以及读了多少数据等等。如果网站管理员发现某个蜘蛛有问题,就通过其标识来和其所有者联系。下面是博客中)2004年5月15日的搜索引擎访问日志:
>
> 网络蜘蛛进入一个网站,一般会访问一个特殊的文本文件Robots.txt,这个文件一般放在网站服务器的根目录下。网站管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。Robots.txt语法很简单,例如如果对目录没有任何限制,可以用以下两行来描述:
>
> User-agent: *
> Disallow:
>
> 当然,Robots.txt只是一个协议,如果网络蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对于某些页面的访问,但一般的网络蜘蛛都会遵循这些协议,而且网站管理员还可以通过其它方式来拒绝网络蜘蛛对某些网页的抓取。
>
> 网络蜘蛛在下载网页的时候,会去识别网页的html代码,在其代码的部分,会有META标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可以告诉网络蜘蛛本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。
>
> 关于Robots.txt的语法和META Tag语法,有兴趣的读者查看文献[4]
>
> 现在一般的网站都希望搜索引擎能更全面的抓取自己网站的网页,因为这样可以让更多的访问者能通过搜索引擎找到此网站。为了让本网站的网页更全面被抓取到,网站管理员可以建立一个网站地图,即Site Map。许多网络蜘蛛会把sitemap.htm文件作为一个网站网页爬取的入口,网站管理员可以把网站内部所有网页的链接放在这个文件里面,那么网络蜘蛛可以很方便的把整个网站抓取下来,避免遗漏某些网页,也会减小对网站服务器的负担。
>
> 内容提取
>
> 搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网络蜘蛛正确跟踪其它链接有一定影响。
>
> 对于doc、pdf等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松的提取文档中的文本信息和文件其它相关的信息。 参考技术A #include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
int count=0;
int i,j,h,a,k=0;
string words[30][100];
string text[100];
printf("请输入一串英语字符:")
for(i=0;i<100;i++)
scanf("%c",&text[i]);
for(j=0;j<100;j++)
if((text[j]>='a'&&text[j]<='z')||(text[j]>='A'&&text[j]<='Z'))
for(h=0;h<20;h++)
words[k][h]=text[j];//如果确定是连续的字母,则用一个二维数组记录单词,一个单词为一列,不足的用\0补充
else
k++;
printf("您输入的单词个数为:%d",k++);
for(a=0;a<k;a++)
int n=0,m=0,s=0;//这几个变量分别用于记录当前查找在数组里的位置
for(i=0,j=0;i<20,j<100;j++,i++)
if(words[a][i]=text[j])
contine;//如果出现两个字母相同的情况就继续比较下一个字母时候相同直到匹配完成整个单词
if(words[a][i]='\0'&&text[j]='\t')//当单词子字符串到末尾\0而且主句单词也到空格\t的时候说明单词出现过一次
n++;//用以记录单词重复的次数
m=j;//m用以记录单词匹配成功时的数组下表位置
i=0;//子串指向开头,继续与主串下一个字母进行比较
else
i=0;//当句子中的字符出现不一样的情况时,将子串移动至与主串的下一个字母相对处继续比较
m++;//m记录的是当前子串比较到的位置
j=m;
for(i=0;i<20;i++)
printf("%c",words[a][i])//打印出该单词
printf("该单词出现了%d次!",n+1)//加上本来出现的单词算一次,所以是n+1次
附:设计思路
一个单词的结束是以非字母的形式结尾,所以我以此把单词分开,并用二维数组存储用来和原字符串做匹配,匹配成功则记录加一,不成功,则以主串下个字母作为开头继续匹配
但这个程序并不能辨别是否是正确的单词,因为这牵扯到一个数据库的链接问题,所以我不想扯远了,这里面结果会有个单词重复出现的问题,要再用循环解决,但是那样太复杂了所以我没有写
另外,这只是我随手写的程序,没有经过编译器运行,可能复制代码运行有问题,但我的思想方法就是如此,还是希望楼主自己融会贯通吧 参考技术B 我帮你写了一个,看不懂的话加我QQ,
1072288282
你的那个我也看不明白
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define TEXT_SIZE 1024
#define WORD_COUNT 100
#define WORD_LEN 30
//每一种单词一个结点
typedef struct word_node
int count;
char word[WORD_LEN];
s_word;
static int separate(char *p_str_text)
//定义变量
int ret;
s_word arr_word[WORD_COUNT];
int row;
char *token;
char seps[] = ",\t\n"; /* 读文件时的分离符 */
//初始化变量
ret = 0;
token = NULL;
for (row = 0; row < WORD_COUNT; row++)
arr_word[row].count = 0;
memset(arr_word[row].word, 0, WORD_LEN);
//传入的参数检测
if (NULL == p_str_text)
printf("传入的数据有错!\n");
ret = 1;
goto FINISHED;
//从文本中去一个单词一个单词的分离,并统计
token = strtok(p_str_text, seps);
while (NULL != token)
for (row = 0; row < WORD_COUNT; row ++)
if (0 == strcmp(arr_word[row].word, ""))
strcpy(arr_word[row].word, token);
arr_word[row].count ++;
break;
else if (0 == strcmp(arr_word[row].word, token))
arr_word[row].count ++;
break;
token = strtok(NULL, seps);
//显示统计结果
row = 0;
printf("最终结果为>>>>>>>>>> \n");
while(0 != strcmp(arr_word[row].word, ""))
printf("第 %d 类单词是:%s, 一共有 %d 个\n", row + 1, arr_word[row].word, arr_word[row].count);
row ++;
FINISHED:
return ret;
void main(int argc, char argv[])
//定义变量
int ret; //返回值
char *str_text;//保存文本的地址
//初始化变量
str_text = NULL;
ret = 0;
//申请空间来存放文本内容
str_text = (char *)malloc(TEXT_SIZE);
if (NULL == str_text)
printf("申请空间失败\n");
return;
memset(str_text, 0, TEXT_SIZE);
//输入文本
printf("请输入文本:\n");
scanf("%s", str_text);
ret = separate(str_text);
printf("ret = %d\n", ret);
return;
本回答被提问者采纳
自然语言处理之初始-语言模型
文本自然语言处理的一个最最最基本的一个问题:如何用数学符号或公式表示一段文本?如何计算一段文本在某种语言下出现的概率?
语言模型(用概率论的专业术语表示):为长度为m的字符串确定其概率分布P(w1,w2,...wm),其中w1到wm依次表示文本中的各个词语。概率值计算公式如下,
但是有个问题发现没有?加入一个文本超级长,会怎么样?从第三项开始计算难度就会很大。此时,有人提出了n元模型(n-gram model)。那么n元模型是什么呢?它就是在估算条件概率时,忽略距离大于等于n的上文词的影响。则此时
首先,把一段文字抽象成数学表示,用表示输入的句子,n为句子长度,表示字。表示输出的标签(例如:"我/B爱/M你/E"最理想的标签输出:BME)。其中,o表示的就是B、M、E、S这四种标记,λ为诸如“我”“爱”“你”“中”“国”等句子的每个字,包括标点等非中文字符。
当n=0时,即观测独立性假设,就是0阶隐马尔可夫,每个词都是独立的,例如:我爱你->我/B爱/M你/E,此时,标签/M仅和爱有关系
当n=1时,即齐次马尔可夫假设,就是1阶隐马尔可夫,每个词都仅与前一个词有关系,
那么从上面的公式我们可以看到,我们渴望得到的解是,这是不是很熟悉了?条件概率,通过贝叶斯公式即可求解,
此处有一问题,我没明白,可能是太菜了,如果有会的,希望各位在评论区给指点一下,万分感谢!!!问题是:λ是给定的输入,因此计算为常数,可以忽略,因此最大化等价于最大化。我对这个为常熟可忽略不明白。
好,假如我明白了,那么,求可以先求,按照齐次隐马尔可夫假设,则
再求
那么就可求了,即
其中,叫发射概率,叫转移概率。通过设置转移概率为0()
,可排除类似BBB、EM等不合理的组合。
注:在隐马尔可夫中求解的常用方法是Veterbi算法,可参考博客 : https://blog.csdn.net/sailist/article/details/83064985
学过运筹学的同学更好理解一些
以上是关于C语言一个简单的问题:输入一段文本,计算其中每个单词的出现频率:下面是代码的主要内容,如果未能解决你的问题,请参考以下文章
高手指导一下,怎样用C语言编写一个计算单双周的程序,并能显示这是第几周,输入一个日期定为单周,然后自
c语言:计算并输出n,其中n是从键盘上输入的一个不大于10的正整数