导航:首页 > 净水问答 > 极限算法挑战赛敏感词大文本过滤

极限算法挑战赛敏感词大文本过滤

发布时间:2022-12-31 03:38:05

A. 沃森超级计算机的赛前轶事

2009年12月,弗里德曼和其他制作人员第一次见到“沃森”,当时这台超级电脑与两名人类选手展开对决。“沃森”采用IBM POWER7服务器,能够将所处理的任务实现最优化。IBM表示参加挑战的“沃森”必须快速处理所有任务。此外,这台超级电脑还采用了一系列专利技术,能够让任务和数据处理与信息实时分析同时进行。
法鲁西指出《危险》的本质就是要让技术朝着正确的方向发展。他说:“这档节目涉及的领域很广,会提出各种各样的问题,是我们希望参加的挑战之一。这项挑战是对选手信心的一种考验,你必须在确信答案正确后才回答,此外,你还不得不快速给出答案。”
IBM表示“沃森”采用的技术能够在医疗卫生等很多领域发挥作用,能够帮助提高医生诊断病情的准确性,改进在线自助咨询台,为游客和居民提供相关城市的特定信息,或者通过手机为消费者提供支持。为了备战《危险》,“沃森”曾与前《危险》冠军展开50多次对决。此外,它还参加了《危险》节目组为所有潜在选手准备的测验并顺利通过。
《危险》监制哈里·弗里德曼称,在IBM第一次与《危险》节目组接触时,制作人员均产生浓厚兴趣,但同时也担心观众对“沃森”参加比赛产生分歧,将其视为一个噱头或者花招。他说:“现在态度不同了。这是电脑获取的知识与最优秀的《危险》选手获取的知识之间的一种较量。这是一场重要的比赛,我们都希望参与其中。” 沃森由90台IBM服务器、360个计算机芯片驱动组成,是一个有10台普通冰箱那么大的计算机系统。它拥有15TB内存、2880个处理器、每秒可进行80万亿次运算(这是目前的情况)。这些服务器采用Linux操作系统。IBM为沃森配置的处理器是Power 7系列处理器,这是当前RISC(精简指令集计算机)架构中最强的处理器。它采用45nm工艺打造,拥有八个核心、32个线程,主频最高可达4.1GHz,其二级缓存更是达到了32MB。存储了大量图书、新闻和电影剧本资料、辞海、文选和《世界图书网络全书》(World Book Encyclopedia)等数百万份资料。每当读完问题的提示后,沃森就在不到三秒钟的时间里对自己的数据库挖地三尺,在长达2亿页的漫漫资料里展开搜索。
沃森是基于IBMDeepQA(深度开放域问答系统工程)技术开发的。作为沃森超级电脑基础的DeepQA技术可以读取数百万页文本数据,利用深度自然语言处理技术产生候选答案,根据诸多不同尺度评估那些问题。IBM研发团队为沃森开发的100多套算法可以在3秒内解析问题,检索数百万条信息然后再筛选还原 成 答案输出成人类语言。每一种算法都有其专门的功能。其中一种算法被称为嵌套分解算法,它可以将线索分解成两个不同的搜索功能。
沃森超级计算机与谷歌搜索引擎相比究竟谁更智能?对于这一问题,美国《商业周刊》前科技编辑史蒂芬·贝克尔近日通过分析和比较后认为,沃森超级计算机比谷歌更智能。贝克尔认为,答案很简单,谷歌现在还不能回答问题。谷歌以两种方式信赖于我们人类的大脑:首先,在描述用户的查询请求时,谷歌会让用户像计算机一样去思考,挑选出三或四个最符合计算机意图的消息,形成一个查询结果列表。其次,谷歌会将用户引导到与所查询的答案类似的答案上去,让用户花更多的脑力去发现所需要查询的确切答案。而沃森超级计算机则是自己处理所有问题。它必须要解码复杂的英语,穷尽所有可能的答案,并选择其中一个,最终判定它是否足够符合要求。 对计算机沃森来说,挑选出合适的语境是一项艰巨任务,尤其是在充满暗示和恶作剧的游戏里,而且它还必须确定答案的可靠性以及它是不是需要冒险去猜。沃森需要识别人类的语言,并从中分析微妙的含义,讽刺口吻、谜语、构词断句、诗篇线索等等这些逻辑和线索,并通过一系列的数据比对和模拟人类的联想能力得出精准的答案,再反向用人类的语言回答出来。此外,沃森还能模仿人类针对问题进行策略考虑,例如问题的挑选、是否略过不擅长的题目,还会模仿人类的口吻搞笑整个过程仅有计算机和软件算法完成,没有工程师参与(这种快速问答,其实也参与不了),也与互联网断开因此计算机不能作弊,必须自己想。
领导设计沃森 的IBM 研究团队的科学家David Ferrucci 博士表示:经过四年的努力,我们的科学团队相信沃森已经能够快速理解《危险边缘》问题的内容,分析它需要获得的信息,得到精确的答案,并给出可信的回答。沃森会估计《危险边缘》节目组剩下的奖金数额、自己比其他对手落后或领先多少、自己在特定类别的题目上的表现,及时调整自己的信息级别。如果沃森落后对手太多,它的信心级别会较低,例如40%,这时它仍会继续努力;不过在领先对手时它也会想:我已经领先那么多了,为什么还要冒险呢?因此,即使它的信心值是75%,它也有可能会选择不回答。
在开发沃森的四年间,研发团队主要以两种方式评估这套系统。首先,他们以成批的方式(如每次3000个问题)进行大规模测试以评估系统性能,实施错误分析,提高系统性能。基于这种多问题的表现可以从统计学角度作出重要的性能评估;其次,该团队评估沃森的第二个方式是,与《危险边缘》以前的参赛选手进行陪练比赛。在2009年冬天,他们与曾经出现在《危险边缘》的选手进行了79场比赛,在刚刚过去的秋天,沃森与获得过《危险边缘》比赛冠军的选手进行了55场对决。这些陪练比赛让研发团队对沃森的性能有了深入认识。 《危险边缘》是哥伦比亚广播公司益智问答游戏节目,已经经历了数十年历史。该节目的比赛以一种独特的问答形式进行,问题设置的涵盖面非常广泛,涉及到历史、文学、艺术、流行文化、科技、体育、地理、文字游戏等等各个领域。根据以答案形式提供的各种线索,参赛者必须以问题的形式做出简短正确的回。与一般问答节目相反,《危险边缘》以答案形式提问、提问形式作答。参赛者需具备历史、文学、政治、科学和通俗文化等知识,还得会解析隐晦含义、反讽与谜语等,而电脑并不擅长进行这类复杂思考。
沃森的设计初衷则是要理解更为复杂的词句、语言和人类知识。IBM科学家、沃森团队的负责人大卫·费鲁奇(David Ferrucci)表示,利用《危险边缘》去开发计算机系统将推动技术向正确的方向发展。他表示: 节目会问各种问题。这同时涉及到信心,当你认为你的答案不正确时不要回答。你还需要很快地做出判断。IBM表示,赢得《危险边缘》比赛并不是主要目的。通过沃森的技术,医生可以更快地诊断病例,法律工作者也可以更快地研究案例。《危险边缘》执行制片人哈里·弗里德曼(Harry Friedman)表示:这些很重要,我们希望成为其中的一部分。 北京时间2011年2月17日,人机大战最终成绩出炉:电脑沃森狂胜人类。由IBM和美国德克萨斯大学联合研制的超级电脑“沃森”(Watson)在美国最受欢迎的智力竞猜电视节目《危险边缘》中击败该节目历史上两位最成功的选手肯-詹宁斯和布拉德-鲁特,成为《危险边缘》节目新的王者。
在第三天的比赛中,IBM的超级电脑沃森获得了41413美元的分数,而两位人类选手肯·詹宁斯(Ken Jennings)和布拉德·拉特(Brad Rutter)分别仅获得了19200美元和11200美元。
将三个比赛日的成绩相加即可得出最后的总成绩,沃森也是大幅领先于人类,最终成绩上,沃森达到了77147美元,肯·詹宁斯排名第二,但只获得了24000美元,而布拉德·拉特获得了21600美元,排名第三。
在第三比赛日的比赛中,沃森一路领先,以至于在进入最终的Final Jeopardy环节前,人类选手超过沃森的几率已经几乎不存在了。
在Final Jeopardy中,排名第二的肯·詹宁斯已经放弃追赶沃森,而选择保住第二的位子,因此他仅赌了1000美元,排名第三的布拉德·拉特则放手一搏,压上了他所能赌的最大赌注——5600美元,而沃森再一次暴露了他是非人类的本质,赌了17973美元,这和人类正常赌的整数大相径庭。 美国哥伦比亚大学医疗中心和马里兰大学医学院已与IBM公司签订合同,两所大学的医疗人员将利用沃森更快、更准确地诊病、治病。它的海量信息库中存有许多发表在期刊上的专业论文,可以让医生利用最新科研成果治疗病人。
想要让沃森真正成为医生的得力助手,还需要对它进行改进。医生需要的不只是一个答案。而且有时病人提供的信息不准确或相互矛盾,这就需要医生利用丰富的经验进行判断。IBM研发小组接下来的挑战是,让沃森多提供一些假设情况,研发小组至少还需要两年才能完成这一任务。 ?14年前,IBM研发的计算机“深蓝”(Deep Blue)战胜了国际象棋冠军卡斯帕罗夫;现在,这家公司以创始人Thomas J. Watson名字命名的计算机,继续着对人类智能极限的挑战。
IBM长于制造各种复杂的机器,除了服务器还有这种智能计算机(小型机的集群),它看起来可不仅仅就像那句有点讽刺意味的流行语说的那样—IBM,不是个生产哲学的公司吗?
在1960年代人工智能的技术研发停滞不前数年后,科学家便发现如果以模拟人脑来定义人工智能那将走入一条死胡同。现在,“通过机器的学习、大规模数据库、复杂的传感器和巧妙的算法,来完成分散的任务”是人工智能的最新定义,这早已经取代了曾经甚嚣尘上的“重建大脑”。
按照这个定义,沃森在人工智能上被认为又迈出了一步。“深蓝只是在做非常大规模的计算,它是人类数学能力的体现,”IBM中国研究院资深经理潘越告诉《第一财经周刊》,他同时参与沃森项目,负责提供数据支持。“当涉及到机器学习、大规模并行计算、语义处理等领域,沃森了不起的地方在于把这些技术整合在一个体系架构下来理解人类的自然语言。”
如果这些解释有点晦涩难懂的话,那么可以参看一下《危险边缘》的游戏规则,你便知道沃森的价值何在。
《危险边缘》是哥伦比亚广播公司一档长盛不衰的电视问答节目,自1964年开始播出,最精彩的地方在于游戏里的问题包罗万象,几乎涵盖了人类文明的所有领域。它的规则是答对问题可以获得奖金,答错就会倒扣。
对人类来说,规则很简单,但对沃森来说,则意味着众多挑战。首先沃森必须要听懂主持人的自然语言,这是深蓝不具备的;其次是沃森需要分析这些语言,比如哪些是反讽,哪些是双关,哪些是连词,随后根据关键字判断题目的意思,沃森进行相关搜索,并评估各种答案的可能性;最后选择三个可能性最高的答案,当其中一个可能性超过50%后,程序启动,沃森按下抢答器。
这些得以实现靠的是90台IBM服务器、360个计算机芯片驱动以及IBM研发的DeepQA系统。IBM为沃森配置的处理器是Power 750系列处理器,这是当前RISC(精简指令集计算机)架构中最强的处理器—这些得以支持沃森最终得出可靠答案的时间不超过3秒钟。
沃森主打的是小型机的并行运算。IBM在大型机上的地位很难撼动—在小沃森(创始人老沃森的儿子)执掌IBM时期,IBM投入约60亿美元,这笔超过当年NASA的研发经费,最终把日本的NEC与法国的克雷排挤出去,奠定了IBM在大型机市场的垄断地位。
“在IBM的内部员工培训上流传着一句笑话,那便是在大型机领域,有97%的市场份额来自IBM,剩下的3%来自淘汰的IBM二手大型机。”IBM服务器销售部门前负责人告诉《第一财经周刊》。
IBM试图把大型机上的优势带入到小型机领域。沃森主打的正是IBM的销售新星90台小型机的并行运算,“IBM小型机的运算速度是突出的,”上述IBM员工评价说,“因为它把大型机的CPU研发优势直接移植到小型机上来了。”
IBM是为数不多的可以有能力独立开发小型机CPU的厂家,IBM还将这些技术出售给了除英特尔以外的芯片制造商。
现在,在小型机市场上,IBM与HP的市场比例大致为2:1,另外一家小型机公司SUN则现在主要针对低端市场。
此外,IBM的全球研发团队的某种模式也加大了沃森赢得比赛的可能。
这些团队分工极为细致,比如以色列海法团队负责深度开放域问答系统工程的搜索过程,日本东京负责沃森在问答中将词意和词语连接,IBM中国研究院和上海分院则负责以不同的资源给沃森提供数据支持,还有专门研究算法的团队以及研究策略下注的博弈团队等。
“我们就好像是每个不同的虚拟部队,每个人只做自己最擅长与熟悉的那部分。”潘越称。
事实上这便是IBM的特色,它一直遵循工业时代的成功模式,比如这种制造企业更为擅长的流水线模式,并且通过给员工分级打分的奖惩制度,让它的各个团队都更有效率。
这些研发天才开发的DeepQA系统保证了沃森可以具备崭新的人机交互模式,比如可以理解并分析自然语言,事实上,对自然语言的理解也一直是IBM研究机构在人工智能上的强项。
这很像科幻电影里的桥段—为了隐秘的机器人开发计划,在全球招募天赋异秉的人士。所不同的是,IBM的意义显然更为实际。
此前,基于深蓝研发的AIX操作系统让IBM在商业运用与政府部门中取得了大量的订单,IBM也希望可以将沃森的DeepQA系统运用于医疗服务、咨询等领域之中。
“沃森的优势是给出准确与可靠的答案,因此可以为医生提供更适合病人的解决方案。“潘越称,“在医疗领域的应用将是沃森商用最主要的领域。”
沃森项目如果想在医疗行业推行的话,还需要面临法律层面的问题,IBM一位研究员称,“如果沃森诊断出错,而医生又听从了错误的诊断,那么沃森就会面临被患者告上法庭的危险,这对IBM而言是一个正在考虑的应用问题。”
对于IBM来说,沃森未来不仅要继续挑战人类智能的极限,还要帮助这家公司去同亚马逊、谷歌、微软们竞争,争夺未来科技制高点的主导权。

B. 增加数据会使svm算法分类效果更好吗

数据仓库,数据库或者其它信息库中隐藏着许多可以为商业、科研等活动的决策提供所需要的知识。分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势的模型。分类方法(Classification)用于预测数据对象的离散类别(Categorical Label);预测方法(Prediction )用于预测数据对象的连续取值。
分类技术在很多领域都有应用,例如可以通过客户分类构造一个分类模型来对银行贷款进行风险评估;当前的市场营销中很重要的一个特点是强调客户细分。客户类别分析的功能也在于此,采用数据挖掘中的分类技术,可以将客户分成不同的类别,比如呼叫中心设计时可以分为:呼叫频繁的客户、偶然大量呼叫的客户、稳定呼叫的客户、其他,帮助呼叫中心寻找出这些不同种类客户之间的特征,这样的分类模型可以让用户了解不同行为类别客户的分布特征;其他分类应用如文献检索和搜索引擎中的自动文本分类技术;安全领域有基于分类技术的入侵检测等等。机器学习、专家系统、统计学和神经网络等领域的研究人员已经提出了许多具体的分类预测方法。下面对分类流程作个简要描述:
训练:训练集——>特征选取——>训练——>分类器
分类:新样本——>特征选取——>分类——>判决
最初的数据挖掘分类应用大多都是在这些方法及基于内存基础上所构造的算法。目前数据挖掘方法都要求具有基于外存以处理大规模数据集合能力且具有可扩展能力。下面对几种主要的分类方法做个简要介绍:
(1)决策树
决策树归纳是经典的分类算法。它采用自顶向下递归的各个击破方式构造决策树。树的每一个结点上使用信息增益度量选择测试属性。可以从生成的决策树中提取规则。
(2) KNN法(K-Nearest Neighbor)
KNN法即K最近邻法,最初由Cover和Hart于1968年提出的,是一个理论上比较成熟的方法。该方法的思路非常简单直观:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。因此,采用这种方法可以较好地避免样本的不平衡问题。另外,由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。另外还有一种Reverse KNN法,能降低KNN算法的计算复杂度,提高分类的效率。
该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
(3) SVM法SVM法即支持向量机(Support Vector Machine)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方法是建立在统计学习理论基础上的机器学习方法。通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。该方法只需要由各类域的边界样本的类别来决定最后的分类结果。
支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称为最大边缘(maximum margin)算法。待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果。
(4) VSM法VSM法即向量空间模型(Vector Space Model)法,由Salton等人于60年代末提出。这是最早也是最出名的信息检索方面的数学模型。其基本思想是将文档表示为加权的特征向量:D=D(T1,W1;T2,W2;…;Tn,Wn),然后通过计算文本相似度的方法来确定待分样本的类别。当文本被表示为空间向量模型的时候,文本的相似度就可以借助特征向量之间的内积来表示。
在实际应用中,VSM法一般事先依据语料库中的训练样本和分类体系建立类别向量空间。当需要对一篇待分样本进行分类的时候,只需要计算待分样本和每一个类别向量的相似度即内积,然后选取相似度最大的类别作为该待分样本所对应的类别。
由于VSM法中需要事先计算类别的空间向量,而该空间向量的建立又很大程度的依赖于该类别向量中所包含的特征项。根据研究发现,类别中所包含的非零特征项越多,其包含的每个特征项对于类别的表达能力越弱。因此,VSM法相对其他分类方法而言,更适合于专业文献的分类。
(5) Bayes法
Bayes法是一种在已知先验概率与类条件概率的情况下的模式分类方法,待分样本的分类结果取决于各类域中样本的全体。
设训练样本集分为M类,记为C={c1,…,ci,…cM},每类的先验概率为P(ci),i=1,2,…,M。当样本集非常大时,可以认为P(ci)=ci类样本数/总样本数。对于一个待分样本X,其归于cj类的类条件概率是P(X/ci),则根据Bayes定理,可得到cj类的后验概率P(ci/X):
P(ci/x)=P(x/ci)·P(ci)/P(x)(1)
若P(ci/X)=MaxjP(cj/X),i=1,2,…,M,j=1,2,…,M,则有x∈ci(2)
式(2)是最大后验概率判决准则,将式(1)代入式(2),则有:
若P(x/ci)P(ci)=Maxj〔P(x/cj)P(cj)〕,i=1,2,…,M,j=1,2,…,M,则x∈ci
这就是常用到的Bayes分类判决准则。经过长期的研究,Bayes分类方法在理论上论证得比较充分,在应用上也是非常广泛的。
Bayes方法的薄弱环节在于实际情况下,类别总体的概率分布和各类样本的概率分布函数(或密度函数)常常是不知道的。为了获得它们,就要求样本足够大。另外,Bayes法要求表达文本的主题词相互独立,这样的条件在实际文本中一般很难满足,因此该方法往往在效果上难以达到理论上的最大值。
神经网络分类算法的重点是构造阈值逻辑单元,一个值逻辑单元是一个对象,它可以输入一组加权系数的量,对它们进行求和,如果这个和达到或者超过了某个阈值,输出一个量。如有输入值X1, X2, , Xn 和它们的权系数:W1, W2, , Wn,求和计算出的 Xi*Wi ,产生了激发层 a = (X1 * W1)+(X2 * W2)++(Xi * Wi)++ (Xn * Wn),其中Xi 是各条记录出现频率或其他参数,Wi是实时特征评估模型中得到的权系数。神经网络是基于经验风险最小化原则的学习算法,有一些固有的缺陷,比如层数和神经元个数难以确定,容易陷入局部极小,还有过学习现象,这些本身的缺陷在SVM算法中可以得到很好的解决。

C. 《极限挑战》中江一燕的表现怎么样

还行吧,节目而已,不要当真。

而江一燕,应该是个被宠爱的小女人性格,感性浪漫喜欢被人照顾,有些小鸟依人,更适合大男子主义一点,精明能干,又宠爱她,能给她安全感的男人。 这种性格,说不好听点,的确是矫情。

王迅是小心翼翼过生活,不去害人也不争不抢,希望自己平平安安就知足了。江一燕在看清渤哥不会选她后,认为一直选择自己的王迅很老实,同时分高可以满足她的高要求。

总之,综艺而已,当真你就输了,大家怎么看呢?

D. 弯道速度极限值的算法

速度极限看弯道半径和仰角,静摩擦力系数,向心力和地面摩擦力的大小。一般看mgsinα和μmgcosα的大小。当向内相对滑动时,摩擦力向外,向心力为两者的差,此时向心力最小;当向外相对滑动时,摩擦力向内,向心力为两者的和,此时向心力最大,则速度也最大。
向心力是指古典力学里当物体沿着圆周或者曲线轨道运动时,指向圆心(曲率中心)的合外力作用力。“向心力”一词是从这种合外力作用所产生的效果而命名的。这种效果可以由弹力、重力、摩擦力等任何一力而产生,也可以由几个力的合力或其分力提供。
因为圆周运动属于曲线运动,在做圆周运动中的物体也同时会受到与其速度方向不同的合外力作用。对于在做圆周运动的物体,向心力是一种拉力,其方向随着物体在圆周轨道上的运动而不停改变。此拉力沿着圆周半径指向圆周的中心,所以得名“向心力”。向心力指向圆周中心,且被向心力所控制的物体是沿着切线的方向运动,所以向心力必与受控物体的运动方向垂直,仅产生速度法线方向上的加速度。因此向心力只改变所控物体的运动方向,而不改变运动的速率,即使在非匀速圆周运动中也是如此。非匀速圆周运动中,改变运动速率的切向加速度并非由向心力产生。

E. 抖音违禁词有哪些

抖音直播违禁词如下:
1、不文明用语不要说。
2、疑似欺骗用户的词语不要说。内
3、刺容激消费的词语不要说。
4、暴力色情类词语不要说。
5、化妆品虚假宣传用语不要说。
6、医疗相关用语。
抖音(Tik Tok)是由今日头条推出的一款短视频分享APP,于2016年9月上线,是一个专注于年轻人音乐短视频创作分享的社区平台。抖音应用人工智能技术为用户创造多样的玩法,用户可以通过这款软件选择歌曲,拍摄音乐短视频,形成自己的作品。抖音2016年9月上线,一直磨刀磨到今年春节后可能感觉跑通了才大举压上资源,产品优秀的数据表现又让头条很快决定将各种流量明星BD推广资源全力导向这个可以提升公司品相的新项目。抖音很快成为头条战略级产品。当然,头条最核心的算法优势也用到了抖音上,一开始就在产品层面加入算法推荐模型保证内容分发效率。

F. 数学的来历(100字)

“数学”的由来

古希腊人在数学中引进了名称,概念和自我思考,他们很早就开始猜测数学是如何产生的。虽然他们的猜测仅是匆匆记下,但他们几乎先占有了猜想这一思考领域。古希腊人随意记下的东西在19世纪变成了大堆文章,而在20世纪却变成了令人讨厌的陈辞滥调。 在现存的资料中,希罗多德(Herodotus,公元前484--425年)是第一个开始猜想的人。他只谈论了几何学,他对一般的数学概念也许不熟悉,但对土地测量的准确意思很敏感。作为一个人类学家和一个社会历史学家,希罗多德指出,古希腊的几何来自古埃及,在古埃及,由于一年一度的洪水淹没土地,为了租税的目的,人们经常需要重新丈量土地;他还说:希腊人从巴比伦人那里学会了日晷仪的使用,以及将一天分成12个时辰。希罗多德的这一发现,受到了肯定和赞扬。认为普通几何学有一个辉煌开端的推测是肤浅的。

柏拉图关心数学的各个方面,在他那充满奇妙幻想的神话故事《费德洛斯篇》中,他说:

故事发生在古埃及的洛克拉丁(区域),在那里住着一位老神仙,他的名字叫赛斯(Theuth),对于赛斯来说,朱鹭是神鸟,他在朱鹭的帮助下发明了数,计算、几何学和天文学,还有棋类游戏等。

柏拉图常常充满了奇怪的幻想,原因是他不知道自己是否正亚里士多德最后终于用完全概念化的语言谈论数学了,即谈论统一的、有着自己发展目的的数学。在他的《形而上学》(Meta-physics)第1卷第1章中,亚里士多德说:数学科学或数学艺术源于古埃及,因为在古埃及有一批祭司有空闲自觉地致力于数学研究。亚里士多德所说的是否是事实还值得怀疑,但这并不影响亚里士多德聪慧和敏锐的观察力。在亚里士多德的书中,提到古埃及仅仅只是为了解决关于以下问题的争论:1.存在为知识服务的知识,纯数学就是一个最佳的例子:2.知识的发展不是由于消费者购物和奢华的需要而产生的。亚里士多德这种“天真”的观点也许会遭到反对;但却驳不倒它,因为没有更令人信服的观点.

就整体来说,古希腊人企图创造两种“科学”的方法论,一种是实体论,而另一种是他们的数学。亚里士多德的逻辑方法大约是介于二者之间的,而亚里士多德自己认为,在一般的意义上讲他的方法无论如何只能是一种辅助方法。古希腊的实体论带有明显的巴门尼德的“存在”特征,也受到赫拉克利特“理性”的轻微影响,实体论的特征仅在以后的斯多葛派和其它希腊作品的翻译中才表现出来。数学作为一种有效的方法论远远地超越了实体论,但不知什么原因,数学的名字本身并不如“存在”和“理性”那样响亮和受到肯定。然而,数学名称的产生和出现,却反映了古希腊人某些富于创造的特性。下面我们将说明数学这一名词的来源。

“数学”一词是来自希腊语,它意味着某种‘已学会或被理解的东西’或“已获得的知识”,甚至意味着“可获的东西”, “可学会的东西”,即“通过学习可获得的知识”,数学名称的这些意思似乎和梵文中的同根词意思相同。甚至伟大的辞典编辑人利特雷(E.Littre 也是当时杰出的古典学者),在他编辑的法语字典(1877年)中也收入了“数学”一词。牛津英语字典没有参照梵文。公元10世纪的拜占庭希腊字典“Suidas”中,引出了“物理学”、“几何学”和“算术”的词条,但没有直接列出“数学”—词。

“数学”一词从表示一般的知识到专门表示数学专业,经历一个较长的过程,仅在亚里士多德时代,而不是在柏拉图时代,这一过程才完成。数学名称的专有化不仅在于其意义深远,而在于当时古希腊只有“诗歌”一词的专有化才能与数学名称的专有化相媲美。“诗歌”原来的意思是“已经制造或完成的某些东西”,“诗歌”一词的专有化在柏拉图时代就完成了。而不知是什么原因辞典编辑或涉及名词专有化的知识问题从来没有提到诗歌,也没有提到诗歌与数学名称专有化之间奇特的相似性。但数学名称的专有化确实受到人们的注意。

首先,亚里士多德提出, “数学”一词的专门化使用是源于毕达哥拉斯的想法,但没有任何资料表明对于起源于爱奥尼亚的自然哲学有类似的思考。其次在爱奥尼亚人中,只有泰勒斯(公元前640?--546年)在“纯”数学方面的成就是可信的,因为除了第欧根尼·拉尔修(Diogenes Laertius)简短提到外,这一可信性还有一个较迟的而直接的数学来源,即来源于普罗克洛斯(Proclus)对欧几里得的评注:但这一可信性不是来源于亚里士多德,尽管他知道泰勒斯是一个“自然哲学家”;也不是来源于早期的希罗多德,尽管他知道塞利斯是一个政治、军事战术方面的“爱好者”,甚至还能预报日蚀。以上这些可能有助于解释为什么在柏拉图的体系中,几乎没有爱奥尼亚的成份。赫拉克利特(公元前500--?年)有一段名言:“万物都在运动中,物无常往”, “人们不可能两次落进同一条河里”。这段名言使柏拉图迷惑了,但赫拉克赖脱却没受到柏拉图给予巴门尼德那样的尊敬。巴门尼德的实体论,从方法论的角度讲,比起赫拉克赖脱的变化论,更是毕达哥拉斯数学的强有力的竞争对手。

对于毕达哥拉斯学派来说,数学是一种“生活的方式”。事实上,从公元2世纪的拉丁作家格利乌斯(Gellius)和公元3世纪的希腊哲学家波菲利(Porphyry)以及公元4世纪的希腊哲学家扬布利科斯(Iamblichus)的某些证词中看出,似乎毕达哥拉斯学派对于成年人有一个“一般的学位课程”,其中有正式登记者和临时登记者。临时成员称为“旁听者”,正式成员称为“数学家”。

这里“数学家”仅仅表示一类成员,而并不是他们精通数学。毕达哥拉斯学派的精神经久不衰。对于那些被阿基米德神奇的发明所深深吸引的人来说,阿基米德是唯一的独特的数学家,从理论的地位讲,牛顿是一个数学家,尽管他也是半个物理学家,一般公众和新闻记者宁愿把爱因斯坦看作数学家,尽管他完全是物理学家。当罗吉尔·培根(Roger Bacon,1214--1292年)通过提倡接近科学的“实体论”,向他所在世纪提出挑战时,他正将科学放进了一个数学的大框架,尽管他在数学上的造诣是有限的,当笛卡儿(Descartes,1596--1650年)还很年轻时就决心有所创新,于是他确定了“数学万能论”的名称和概念。然后莱布尼茨引用了非常类似的概念,并将其变成了以后产生的“符号”逻辑的基础,而20世纪的“符号”逻辑变成了热门的数理逻辑。

在18世纪,数学史的先驱作家蒙托克莱(Montucla)说,他已听说了关于古希腊人首先称数学为“一般知识”,这一事实有两种解释:一种解释是,数学本身优于其它知识领域;而另一种解释是,作为一般知识性的学科,数学在修辞学,辩证法,语法和伦理学等等之前就结构完整了。蒙托克莱接受了第二种解释。他不同意第一种解释,因为在普罗克洛斯关于欧几里得的评注中,或在任何古代资料中,都没有发现适合这种解释的确证。然而19世纪的语源学家却倾向于第一种解释,而20世纪的古典学者却又偏向第二种解释。但我们发现这两种解释并不矛盾,即很早就有了数学且数学的优越性是无与伦比的。

G. 数学的来历

http://ke..com/view/1284.html?wtp=tt

数学是研究数量、结构、变化以及空间模型等概念的一门学科。通过抽象化和逻辑推理的使用,由计数、计算、量度和对物体形状及运动的观察中产生。数学家们拓展这些概念,为了公式化新的猜想以及从合适选定的公理及定义中建立起严谨推导出的真理。
数学属性是任何事物的可量度属性,即数学属性是事物最基本的属性。可量度属性的存在与参数无关,但其结果却取决于参数的选择。例如:时间,不管用年、月、日还是用时、分、秒来量度;空间,不管用米、微米还是用英寸、光年来量度,它们的可量度属性永远存在,但结果的准确性与这些参照系数有关。
数学是研究现实世界中数量关系和空间形式的科学。简单地说,是研究数和形的科学。由于生活和劳动上的需求,即使是最原始的民族,也知道简单的计数,并由用手指或实物计数发展到用数字计数。
基础数学的知识与运用总是个人与团体生活中不可或缺的一块。其基本概念的精炼早在古埃及、美索不达米亚及古印度内的古代数学文本内便可观见。从那时开始,其发展便持续不断地有小幅的进展,直至16世纪的文艺复兴时期,因著和新科学发现相作用而生成的数学革新导致了知识的加速,直至今日。
今日,数学被使用在世界上不同的领域上,包括科学、工程、医学和经济学等。数学对这些领域的应用通常被称为应用数学,有时亦会激起新的数学发现,并导致全新学科的发展。数学家亦研究没有任何实际应用价值的纯数学,即使其应用常会在之后被发现。
创立于二十世纪三十年代的法国的布尔巴基学派认为:数学,至少纯粹数学,是研究抽象结构的理论。结构,就是以初始概念和公理出发的演绎系统。布学派认为,有三种基本的抽象结构:代数结构(群,环,域……),序结构(偏序,全序……),拓扑结构(邻域,极限,连通性,维数……)。
编辑本段词源
数学(mathematics;希腊语:μαθηματικά)这一词在西方源自于古希腊语的μάθημα(máthēma),其有学习、学问、科学,以及另外还有个较狭意且技术性的意义-“数学研究”,即使在其语源内。其形容词μαθηματικός(mathēmatikós),意义为和学习有关的或用功的,亦会被用来指数学的。其在英语中表面上的复数形式,及在法语中的表面复数形式les mathématiques,可溯至拉丁文的中性复数mathematica,由西塞罗译自希腊文复数τα μαθηματικά(ta mathēmatiká),此一希腊语被亚里士多德拿来指“万物皆数”的概念。
(拉丁文:Mathemetica)原意是数和数数的技术。
我国古代把数学叫算术,又称算学,后来才改为数学。
编辑本段历史
奇普,印加帝国时所使用的计数工具。数学,起源于人类早期的生产活动,为中国古代六艺之一,亦被古希腊学者视为哲学之起点。数学的希腊语μαθηματικός(mathematikós)意思是“学问的基础”,源于μάθημα(máthema)(“科学,知识,学问”)。
数学的演进大约可以看成是抽象化的持续发展,或是题材的延展。第一个被抽象化的概念大概是数字,其对两个苹果及两个橘子之间有某样相同事物的认知是人类思想的一大突破。 除了认知到如何去数实际物质的数量,史前的人类亦了解了如何去数抽象物质的数量,如时间-日、季节和年。算术(加减乘除)也自然而然地产生了。古代的石碑亦证实了当时已有几何的知识。
更进一步则需要写作或其他可记录数字的系统,如符木或于印加帝国内用来储存数据的奇普。历史上曾有过许多且分歧的记数系统。
从历史时代的一开始,数学内的主要原理是为了做税务和贸易等相关计算,为了了解数字间的关系,为了测量土地,以及为了预测天文事件而形成的。这些需要可以简单地被概括为数学对数量、结构、空间及时间方面的研究。
到了16世纪,算术、初等代数、以及三角学等初等数学已大体完备。17世纪变量概念的产生使人们开始研究变化中的量与量的互相关系和图形间的互相变换。在研究经典力学的过程中,微积分的方法被发明。随着自然科学和技术的进一步发展,为研究数学基础而产生的集合论和数理逻辑等也开始慢慢发展。
数学从古至今便一直不断地延展,且与科学有丰富的相互作用,并使两者都得到好处。数学在历史上有着许多的发现,并且直至今日都还不断地发现中。依据Mikhail B. Sevryuk于美国数学会通报2006年1月的期刊中所说,“存在于数学评论数据库中论文和书籍的数量自1940年(数学评论的创刊年份)现已超过了一百九十万份,而且每年还增加超过七万五千份的细目。此一学海的绝大部份为新的数学定理及其证明。”
编辑本段中国数学历史
数学古称算学,是中国古代科学中一门重要的学科,根据中国古代数学发展的特点,可以分为五个时期:萌芽;体系的形成;发展;繁荣和中西方数学的融合。
中国古代数学的萌芽
原始公社末期,私有制和货物交换产生以后,数与形的概念有了进一步的发展,仰韶文化时期出土的陶器,上面已刻有表示1234的符号。到原始公社末期,已开始用文字符号取代结绳记事了。
西安半坡出土的陶器有用1~8个圆点组成的等边三角形和分正方形为100个小正方形的图案,半坡遗址的房屋基址都是圆形和方形。为了画圆作方,确定平直,人们还创造了规、矩、准、绳等作图与测量工具。据《史记·夏本纪》记载,夏禹治水时已使用了这些工具。
商代中期,在甲骨文中已产生一套十进制数字和记数法,其中最大的数字为三万;与此同时,殷人用十个天干和十二个地支组成甲子、乙丑、丙寅、丁卯等60个名称来记60天的日期;在周代,又把以前用阴、阳符号构成的八卦表示八种事物发展为六十四卦,表示64种事物。
公元前一世纪的《周髀算经》提到西周初期用矩测量高、深、广、远的方法,并举出勾股形的勾三、股四、弦五以及环矩可以为圆等例子。《礼记·内则》篇提到西周贵族子弟从九岁开始便要学习数目和记数方法,他们要受礼、乐、射、驭、书、数的训练,作为“六艺”之一的数已经开始成为专门的课程。
春秋战国之际,筹算已得到普遍的应用,筹算记数法已使用十进位值制,这种记数法对世界数学的发展是有划时代意义的。这个时期的测量数学在生产上有了广泛应用,在数学上亦有相应的提高。
战国时期的百家争鸣也促进了数学的发展,尤其是对于正名和一些命题的争论直接与数学有关。名家认为经过抽象以后的名词概念与它们原来的实体不同,他们提出“矩不方,规不可以为圆”,把“大一”(无穷大)定义为“至大无外”,“小一”(无穷小)定义为“至小无内”。还提出了“一尺之棰,日取其半,万世不竭”等命题。
而墨家则认为名来源于物,名可以从不同方面和不同深度反映物。墨家给出一些数学定义。例如圆、方、平、直、次(相切)、端(点)等等。
墨家不同意“一尺之棰”的命题,提出一个“非半”的命题来进行反驳:将一线段按一半一半地无限分割下去,就必将出现一个不能再分割的“非半”,这个“非半”就是点。
名家的命题论述了有限长度可分割成一个无穷序列,墨家的命题则指出了这种无限分割的变化和结果。名家和墨家的数学定义和数学命题的讨论,对中国古代数学理论的发展是很有意义的。
中国古代数学体系的形成
秦汉是封建社会的上升时期,经济和文化均得到迅速发展。中国古代数学体系正是形成于这个时期,它的主要标志是算术已成为一个专门的学科,以及以《九章算术》为代表的数学著作的出现。
《九章算术》是战国、秦、汉封建社会创立并巩固时期数学发展的总结,就其数学成就来说,堪称是世界数学名著。例如分数四则运算、今有术(西方称三率法)、开平方与开立方(包括二次方程数值解法)、盈不足术(西方称双设法)、各种面积和体积公式、线性方程组解法、正负数运算的加减法则、勾股形解法(特别是勾股定理和求勾股数的方法)等,水平都是很高的。其中方程组解法和正负数加减法则在世界数学发展上是遥遥领先的。就其特点来说,它形成了一个以筹算为中心、与古希腊数学完全不同的独立体系。
《九章算术》有几个显著的特点:采用按类分章的数学问题集的形式;算式都是从筹算记数法发展起来的;以算术、代数为主,很少涉及图形性质;重视应用,缺乏理论阐述等。
这些特点是同当时社会条件与学术思想密切相关的。秦汉时期,一切科学技术都要为当时确立和巩固封建制度,以及发展社会生产服务,强调数学的应用性。最后成书于东汉初年的《九章算术》,排除了战国时期在百家争鸣中出现的名家和墨家重视名词定义与逻辑的讨论,偏重于与当时生产、生活密切相结合的数学问题及其解法,这与当时社会的发展情况是完全一致的。
《九章算术》在隋唐时期曾传到朝鲜、日本,并成为这些国家当时的数学教科书。它的一些成就如十进位值制、今有术、盈不足术等还传到印度和阿拉伯,并通过印度、阿拉伯传到欧洲,促进了世界数学的发展。
中国古代数学的发展
魏、晋时期出现的玄学,不为汉儒经学束缚,思想比较活跃;它诘辩求胜,又能运用逻辑思维,分析义理,这些都有利于数学从理论上加以提高。吴国赵爽注《周髀算经》,汉末魏初徐岳撰《九章算术》注,魏末晋初刘徽撰《九章算术》注、《九章重差图》都是出现在这个时期。赵爽与刘徽的工作为中国古代数学体系奠定了理论基础。
赵爽是中国古代对数学定理和公式进行证明与推导的最早的数学家之一。他在《周髀算经》书中补充的“勾股圆方图及注”和“日高图及注”是十分重要的数学文献。在“勾股圆方图及注”中他提出用弦图证明勾股定理和解勾股形的五个公式;在“日高图及注”中,他用图形面积证明汉代普遍应用的重差公式,赵爽的工作是带有开创性的,在中国古代数学发展中占有重要地位。
刘徽约与赵爽同时,他继承和发展了战国时期名家和墨家的思想,主张对一些数学名词特别是重要的数学概念给以严格的定义,认为对数学知识必须进行“析理”,才能使数学著作简明严密,利于读者。他的《九章算术》注不仅是对《九章算术》的方法、公式和定理进行一般的解释和推导,而且在论述的过程中有很大的发展。刘徽创造割圆术,利用极限的思想证明圆的面积公式,并首次用理论的方法算得圆周率为 157/50和 3927/1250。
刘徽用无穷分割的方法证明了直角方锥与直角四面体的体积比恒为2:1,解决了一般立体体积的关键问题。在证明方锥、圆柱、圆锥、圆台的体积时,刘徽为彻底解决球的体积提出了正确途径。
东晋以后,中国长期处于战争和南北分裂的状态。祖冲之父子的工作就是经济文化南移以后,南方数学发展的具有代表性的工作,他们在刘徽注《九章算术》的基础上,把传统数学大大向前推进了一步。他们的数学工作主要有:计算出圆周率在3.1415926~3.1415927之间;提出祖(日恒)原理;提出二次与三次方程的解法等。
据推测,祖冲之在刘徽割圆术的基础上,算出圆内接正6144边形和正12288边形的面积,从而得到了这个结果。他又用新的方法得到圆周率两个分数值,即约率22/7和密率355/113。祖冲之这一工作,使中国在圆周率计算方面,比西方领先约一千年之久;
祖冲之之子祖(日恒)总结了刘徽的有关工作,提出“幂势既同则积不容异”,即等高的两立体,若其任意高处的水平截面积相等,则这两立体体积相等,这就是著名的祖(日恒)公理。祖(日恒)应用这个公理,解决了刘徽尚未解决的球体积公式。
隋炀帝好大喜功,大兴土木,客观上促进了数学的发展。唐初王孝通的《缉古算经》,主要讨论土木工程中计算土方、工程分工、验收以及仓库和地窖的计算问题,反映了这个时期数学的情况。王孝通在不用数学符号的情况下,立出数字三次方程,不仅解决了当时社会的需要,也为后来天元术的建立打下基础。此外,对传统的勾股形解法,王孝通也是用数字三次方程解决的。
唐初封建统治者继承隋制,656年在国子监设立算学馆,设有算学博士和助教,学生30人。由太史令李淳风等编纂注释《算经十书》,作为算学馆学生用的课本,明算科考试亦以这些算书为准。李淳风等编纂的《算经十书》,对保存数学经典著作、为数学研究提供文献资料方面是很有意义的。他们给《周髀算经》、《九章算术》以及《海岛算经》所作的注解,对读者是有帮助的。隋唐时期,由于历法的需要,天算学家创立了二次函数的内插法,丰富了中国古代数学的内容。
算筹是中国古代的主要计算工具,它具有简单、形象、具体等优点,但也存在布筹占用面积大,运筹速度加快时容易摆弄不正而造成错误等缺点,因此很早就开始进行改革。其中太乙算、两仪算、三才算和珠算都是用珠的槽算盘,在技术上是重要的改革。尤其是“珠算”,它继承了筹算五升十进与位值制的优点,又克服了筹算纵横记数与置筹不便的缺点,优越性十分明显。但由于当时乘除算法仍然不能在一个横列中进行。算珠还没有穿档,携带不方便,因此仍没有普遍应用。
唐中期以后,商业繁荣,数字计算增多,迫切要求改革计算方法,从《新唐书》等文献留下来的算书书目,可以看出这次算法改革主要是简化乘、除算法,唐代的算法改革使乘除法可以在一个横列中进行运算,它既适用于筹算,也适用于珠算。
中国古代数学的繁荣
960年,北宋王朝的建立结束了五代十国割据的局面。北宋的农业、手工业、商业空前繁荣,科学技术突飞猛进,火药、指南针、印刷术三大发明就是在这种经济高涨的情况下得到广泛应用。1084年秘书省第一次印刷出版了《算经十书》,1213年鲍擀之又进行翻刻。这些都为数学发展创造了良好的条件。
从11~14世纪约300年期间,出现了一批著名的数学家和数学著作,如贾宪的《黄帝九章算法细草》,刘益的《议古根源》,秦九韶的《数书九章》,李冶的《测圆海镜》和《益古演段》,杨辉的《详解九章算法》《日用算法》和《杨辉算法》,朱世杰的《算学启蒙》《四元玉鉴》等,很多领域都达到古代数学的高峰,其中一些成就也是当时世界数学的高峰。
从开平方、开立方到四次以上的开方,在认识上是一个飞跃,实现这个飞跃的就是贾宪。杨辉在《九章算法纂类》中载有贾宪“增乘开平方法”、“增乘开立方法”;在《详解九章算法》中载有贾宪的“开方作法本源”图、“增乘方法求廉草”和用增乘开方法开四次方的例子。根据这些记录可以确定贾宪已发现二项系数表,创造了增乘开方法。这两项成就对整个宋元数学发生重大的影响,其中贾宪三角比西方的帕斯卡三角形早提出600多年。
把增乘开方法推广到数字高次方程(包括系数为负的情形)解法的是刘益。《杨辉算法》中“田亩比类乘除捷法”卷,介绍了原书中22个二次方程和 1个四次方程,后者是用增乘开方法解三次以上的高次方程的最早例子。
秦九韶是高次方程解法的集大成者,他在《数书九章》中收集了21个用增乘开方法解高次方程(最高次数为10)的问题。为了适应增乘开方法的计算程序,奏九韶把常数项规定为负数,把高次方程解法分成各种类型。当方程的根为非整数时,秦九韶采取继续求根的小数,或用减根变换方程各次幂的系数之和为分母,常数为分子来表示根的非整数部分,这是《九章算术》和刘徽注处理无理数方法的发展。在求根的第二位数时,秦九韶还提出以一次项系数除常数项为根的第二位数的试除法,这比西方最早的霍纳方法早500多年。
元代天文学家王恂、郭守敬等在《授时历》中解决了三次函数的内插值问题。秦九韶在“缀术推星”题、朱世杰在《四元玉鉴》“如象招数”题都提到内插法(他们称为招差术),朱世杰得到一个四次函数的内插公式。
用天元(相当于x)作为未知数符号,立出高次方程,古代称为天元术,这是中国数学史上首次引入符号,并用符号运算来解决建立高次方程的问题。现存最早的天元术著作是李冶的《测圆海镜》。
从天元术推广到二元、三元和四元的高次联立方程组,是宋元数学家的又一项杰出的创造。留传至今,并对这一杰出创造进行系统论述的是朱世杰的《四元玉鉴》。
朱世杰的四元高次联立方程组表示法是在天元术的基础上发展起来的,他把常数放在中央,四元的各次幂放在上、下、左、右四个方向上,其他各项放在四个象限中。朱世杰的最大贡献是提出四元消元法,其方法是先择一元为未知数,其他元组成的多项式作为这未知数的系数,列成若干个一元高次方程式,然后应用互乘相消法逐步消去这一未知数。重复这一步骤便可消去其他未知数,最后用增乘开方法求解。这是线性方法组解法的重大发展,比西方同类方法早400多年。
勾股形解法在宋元时期有新的发展,朱世杰在《算学启蒙》卷下提出已知勾弦和、股弦和求解勾股形的方法,补充了《九章算术》的不足。李冶在《测圆海镜》对勾股容圆问题进行了详细的研究,得到九个容圆公式,大大丰富了中国古代几何学的内容。
已知黄道与赤道的夹角和太阳从冬至点向春分点运行的黄经余弧,求赤经余弧和赤纬度数,是一个解球面直角三角形的问题,传统历法都是用内插法进行计算。元代王恂、郭守敬等则用传统的勾股形解法、沈括用会圆术和天元术解决了这个问题。不过他们得到的是一个近似公式,结果不够精确。但他们的整个推算步骤是正确无误的,从数学意义上讲,这个方法开辟了通往球面三角法的途径。
中国古代计算技术改革的高潮也是出现在宋元时期。宋元明的历史文献中载有大量这个时期的实用算术书目,其数量远比唐代为多,改革的主要内容仍是乘除法。与算法改革的同时,穿珠算盘在北宋可能已出现。但如果把现代珠算看成是既有穿珠算盘,又有一套完善的算法和口诀,那么应该说它最后完成于元代。
宋元数学的繁荣,是社会经济发展和科学技术发展的必然结果,是传统数学发展的必然结果。此外,数学家们的科学思想与数学思想也是十分重要的。宋元数学家都在不同程度上反对理学家的象数神秘主义。秦九韶虽曾主张数学与道学同出一源,但他后来认识到,“通神明”的数学是不存在的,只有“经世务类万物”的数学;莫若在《四元玉鉴》序文中提出的“用假象真,以虚问实”则代表了高度抽象思维的思想方法;杨辉对纵横图结构进行研究,揭示出洛书的本质,有力地批判了象数神秘主义。所有这些,无疑是促进数学发展的重要因素。
中西方数学的融合
中国从明代开始进入了封建社会的晚期,封建统治者实行极权统治,宣传唯心主义哲学,施行八股考试制度。在这种情况下,除珠算外,数学发展逐渐衰落。
16世纪末以后,西方初等数学陆续传入中国,使中国数学研究出现一个中西融合贯通的局面;鸦片战争以后,近代数学开始传入中国,中国数学便转入一个以学习西方数学为主的时期;到19世纪末20世纪初,近代数学研究才真正开始。
从明初到明中叶,商品经济有所发展,和这种商业发展相适应的是珠算的普及。明初《魁本对相四言杂字》和《鲁班木经》的出现,说明珠算已十分流行。前者是儿童看图识字的课本,后者把算盘作为家庭必需用品列入一般的木器家具手册中。
随着珠算的普及,珠算算法和口诀也逐渐趋于完善。例如王文素和程大位增加并改善撞归、起一口诀;徐心鲁和程大位增添加、减口诀并在除法中广泛应用归除,从而实现了珠算四则运算的全部口诀化;朱载墒和程大位把筹算开平方和开立方的方法应用到珠算,程大位用珠算解数字二次、三次方程等等。程大位的著作在国内外流传很广,影响很大。
1582年,意大利传教士利玛窦到中国,1607年以后,他先后与徐光启翻译了《几何原本》前六卷、《测量法义》一卷,与李之藻编译《圜容较义》和《同文算指》。1629年,徐光启被礼部任命督修历法,在他主持下,编译《崇祯历书》137卷。《崇祯历书》主要是介绍欧洲天文学家第谷的地心学说。作为这一学说的数学基础,希腊的几何学,欧洲玉山若干的三角学,以及纳皮尔算筹、伽利略比例规等计算工具也同时介绍进来。
在传入的数学中,影响最大的是《几何原本》。《几何原本》是中国第一部数学翻译著作,绝大部分数学名词都是首创,其中许多至今仍在沿用。徐光启认为对它“不必疑”、“不必改”,“举世无一人不当学”。《几何原本》是明清两代数学家必读的数学书,对他们的研究工作颇有影响。
其次应用最广的是三角学,介绍西方三角学的著作有《大测》《割圆八线表》和《测量全义》。《大测》主要说明三角八线(正弦、余弦、正切、余切、正割、余割、正矢、余矢)的性质,造表方法和用表方法。《测量全义》除增加一些《大测》所缺的平面三角外,比较重要的是积化和差公式和球面三角。所有这些,在当时历法工作中都是随译随用的。
1646年,波兰传教士穆尼阁来华,跟随他学习西方科学的有薛凤柞、方中通等。穆尼阁去世后,薛凤柞据其所学,编成《历学会通》,想把中法西法融会贯通起来。《历学会通》中的数学内容主要有比例对数表》《比例四线新表》和《三角算法》。前两书是介绍英国数学家纳皮尔和布里格斯发明增修的对数。后一书除《崇祯历书》介绍的球面三角外,尚有半角公式、半弧公式、德氏比例式、纳氏比例式等。方中通所著《数度衍》对对数理论进行解释。对数的传入是十分重要,它在历法计算中立即就得到应用。
清初学者研究中西数学有心得而著书传世的很多,影响较大的有王锡阐《图解》、梅文鼎《梅氏丛书辑要》(其中数学著作13种共40卷)、年希尧《视学》等。梅文鼎是集中西数学之大成者。他对传统数学中的线性方程组解法、勾股形解法和高次幂求正根方法等方面进行整理和研究,使濒于枯萎的明代数学出现了生机。年希尧的《视学》是中国第一部介绍西方透视学的著作。
清康熙皇帝十分重视西方科学,他除了亲自学习天文数学外,还培养了一些人才和翻译了一些著作。1712年康熙皇帝命梅彀成任蒙养斋汇编官,会同陈厚耀、何国宗、明安图、杨道声等编纂天文算法书。1721年完成《律历渊源》100卷,以康熙“御定”的名义于1723年出版。其中《数理精蕴》主要由梅彀成负责,分上下两编,上编包括《几何原本》、《算法原本》,均译自法文著作;下编包括算术、代数、平面几何平面三角、立体几何等初等数学,附有素数表、对数表和三角函数表。由于它是一部比较全面的初等数学网络全书,并有康熙“御定”的名义,因此对当时数学研究有一定影响。
综上述可以看到,清代数学家对西方数学做了大量的会通工作,并取得许多独创性的成果。这些成果,如和传统数学比较,是有进步的,但和同时代的西方比较则明显落后了。
雍正即位以后,对外闭关自守,导致西方科学停止输入中国,对内实行高压政策,致使一般学者既不能接触西方数学,又不敢过问经世致用之学,因而埋头于究治古籍。乾嘉年间逐渐形成一个以考据学为主的乾嘉学派。
随着《算经十书》与宋元数学著作的收集与注释,出现了一个研究传统数学的高潮。其中能突破旧有框框并有发明创造的有焦循、汪莱、李锐、李善兰等。他们的工作,和宋元时代的代数学比较是青出于蓝而胜于蓝的;和西方代数学比较,在时间上晚了一些,但这些成果是在没有受到西方近代数学的影响下独立得到的。
与传统数学研究出现高潮的同时,阮元与李锐等编写了一部天文数学家传记—《畴人传》,收集了从黄帝时期到嘉庆四年已故的天文学家和数学家270余人(其中有数学著作传世的不足50人),和明末以来介绍西方天文数学的传教士41人。这部著作全由“掇拾史书,荃萃群籍,甄而录之”而成,收集的完全是第一手的原始资料,在学术界颇有影响。
1840年鸦片战争以后,西方近代数学开始传入中国。首先是英人在上海设立墨海书馆,介绍西方数学。第二次鸦片战争后,曾国藩、李鸿章等官僚集团开展“洋务运动”,也主张介绍和学习西方数学,组织翻译了一批近代数学著作。
其中较重要的有李善兰与伟烈亚力翻译的《代数学》《代微积拾级》;华蘅芳与英人傅兰雅合译的《代数术》《微积溯源》《决疑数学》;邹立文与狄考文编译的《形学备旨》《代数备旨》《笔算数学》;谢洪赉与潘慎文合译的《代形合参》《八线备旨》等等。
《代微积拾级》是中国第一部微积分学译本;《代数学》是英国数学家德·摩根所著的符号代数学译本;《决疑数学》是第一部概率论译本。在这些译著中,创造了许多数学名词和术语,至今还在应用,但所用数学符号一般已被淘汰了。戊戌变法以后,各地兴办新法学校,上述一些著作便成为主要教科书。
在翻译西方数学著作的同时,中国学者也进行一些研究,写出一些著作,较重要的有李善兰的《《尖锥变法解》《考数根法》;夏弯翔的《洞方术图解》《致曲术》《致曲图解》等等,都是会通中西学术思想的研究成果。
由于输入的近代数学需要一个消化吸收的过程,加上清末统治者十分腐败,在太平天国运动的冲击下,在帝国主义列强的掠夺下,焦头烂额,无暇顾及数学研究。直到1919年五四运动以后,中国近代数学的研究才真正开始。

H. 3D专业名词解释大全

3D API (3D应用程序接口)
Application Programming Interface(API)应用程序接口,是许多程序的大集合。3D API能让编程人员所设计的3D软件只要调用其API内的程序,从而让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。几乎所有的3D加速芯片都有自己专用的3D API,目前普遍应用的3D API有DirectX、OpenGL、Glide、Heidi等。

Direct 3D
微软公司于1996年为PC开发的API,与Windows 95 、Windows NT和Power Mac操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基本上是免费使用的。由于要考虑与各方面的兼容性,DirectX用起来比较麻烦、在执行效率上也未见得最优,在实际3DS MAX的运用中效果一般,还会发生显示错误,不过总比用软件加速快。

OpenGL (开放式图形接口)
是由SGI公司开发的IRIS GL演变而来的复杂3D图形设计的标准应用程序接口。它的特点是可以在不同的平台之间进行移植;还可以在客户机/服务器系统中并行工作。效率远比Direct 3D高,所以是各3D游戏开发商优先选用的3D API。不过,这样一来就使得许多精美的3D游戏在刚推出时,只支持3Dfx公司的VOODOO系列3D加速卡,而其它类型的3D加速卡则要等待其生产厂商提供该游戏的补丁程序。由于游戏用的3D加速卡提供的OpenGL库都不完整,因此,在3DS MAX中也会发生显示错误,但要比Direct 3D强多了!

Heidi
又称为Quick Draw 3D,是由Autodesk公司提出来的规格。它是采用纯粹的立即模式接口,能够直接对图形硬件进行控制;可以调用所有显示卡的硬件加速功能。目前,采用Heidi系统的应用程序包括3D Studio MAX动画制作程序、Auto CAD和3D Studio VIZ等软件。Autodesk公司为这些软件单独开发WHIP加速驱动程序,因此性能优异是非常明显的!

Glide
是由3dfx公司开发的Voodoo系列专用的3D API。它是第一个PC游戏领域中得到广泛应用的程序接口,它的最大特点是易用和稳定。随着D3D和OpenGL的兴起,已逐渐失去了原来的地位。

PowerSGL
是NEC公司PowerVR系列芯片专用的程序接口。

3D特性: Alpha Blending (α混合)
简单地说这是一种让3D物件产生透明感的技术。屏幕上显示的3D物件,每个像素中有红、绿、蓝三组数值。若3D环境中允许像素能拥有一组α值,我们就称它拥有一个α通道。α值的内容,是记载像素的透明度。这样一来使得每一个物件都可以拥有不同的透明程度。比如说,玻璃会拥有很高的透明度,而一块木头可能就没什么透明度可言。α混合这个功能,就是处理两个物件在萤幕画面上叠加的时候,还会将α值列入考虑,使其呈现接近真实物件的效果。

Fog Effect (雾化效果)
雾化效果是3D的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果。它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果,这样可以保证远景的真实性,而且也减小了3D图形的渲染工作量。

Attenuation (衰减)
在真实世界中,光线的强度会随距离的增大而递减。这是因为受到了空气中微粒的衍射影响,而在3D Studio MAX中,场景处于理想的“真空”中,理论上无这种现象出现。但这种现象与现实世界不符,因此为了达到模拟真实的效果,在灯光中加入该选项,就能人为的产生这种效果!

Perspective Correction (透视角修正处理)
它是采用数学运算的方式,以确保贴在物件上的部分影像图,会向透视的消失方向贴出正确的收敛。

Anti-aliasing (抗锯齿处理)
简单地说主要是应用调色技术将图形边缘的“锯齿”缓和,边缘更平滑。抗锯齿是相对来来说较复杂的技术,一直是高档加速卡的一个主要特征。目前的低档3D加速卡大多不支持反锯齿。

I. 大数据爬虫技术有什么功能

1、爬虫技术概述
网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:
(1) 对抓取目标的描述或定义;
(2) 对网页或数据的分析与过滤;
(3) 对URL的搜索策略。

2、爬虫原理
2.1 网络爬虫原理
Web网络爬虫系统的功能是下载网页数据,为搜索引擎系统提供数据来源。很多大型的网络搜索引擎系统都被称为基于 Web数据采集的搜索引擎系统,比如 Google、Bai。由此可见Web 网络爬虫系统在搜索引擎中的重要性。网页中除了包含供用户阅读的文字信息外,还包含一些超链接信息。Web网络爬虫系统正是通过网页中的超连接信息不断获得网络上的其它网页。正是因为这种采集过程像一个爬虫或者蜘蛛在网络上漫游,所以它才被称为网络爬虫系统或者网络蜘蛛系统,在英文中称为Spider或者Crawler。

2.2 网络爬虫系统的工作原理
在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索引。
控制器
控制器是网络爬虫的**控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。
解析器
解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。
资源库
主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、Sql Server等。

Web网络爬虫系统一般会选择一些比较重要的、出度(网页中链出超链接数)较大的网站的URL作为种子URL集合。网络爬虫系统以这些种子集合作为初始URL,开始数据的抓取。因为网页中含有链接信息,通过已有网页的 URL会得到一些新的 URL,可以把网页之间的指向结构视为一个森林,每个种子URL对应的网页是森林中的一棵树的根节点。这样,Web网络爬虫系统就可以根据广度优先算法或者深度优先算法遍历所有的网页。由于深度优先搜索算法可能会使爬虫系统陷入一个网站内部,不利于搜索比较靠近网站首页的网页信息,因此一般采用广度优先搜索算法采集网页。Web网络爬虫系统首先将种子URL放入下载队列,然后简单地从队首取出一个URL下载其对应的网页。得到网页的内容将其存储后,再经过解析网页中的链接信息可以得到一些新的URL,将这些URL加入下载队列。然后再取出一个URL,对其对应的网页进行下载,然后再解析,如此反复进行,直到遍历了整个网络或者满足某种条件后才会停止下来。

网络爬虫的基本工作流程如下:
1.首先选取一部分精心挑选的种子URL;
2.将这些URL放入待抓取URL队列;
3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列;
4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

2.3 抓取策略
在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略:
2.3.1 深度优先遍历策略
深度优先遍历策略是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。我们以下面的图为例:
遍历的路径:A-F-G E-H-I B C D

2.3.2 宽度优先遍历策略
宽度优先遍历策略的基本思路是,将新下载网页中发现的链接直接**待抓取URL队列的末尾。也就是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。还是以上面的图为例:
遍历路径:A-B-C-D-E-F G H I
2.3.3 反向链接数策略
反向链接数是指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人的推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。
在真实的网络环境中,由于广告链接、作弊链接的存在,反向链接数不能完全等他我那个也的重要程度。因此,搜索引擎往往考虑一些可靠的反向链接数。
2.3.4 Partial PageRank策略
Partial PageRank算法借鉴了PageRank算法的思想:对于已经下载的网页,连同待抓取URL队列中的URL,形成网页集合,计算每个页面的PageRank值,计算完之后,将待抓取URL队列中的URL按照PageRank值的大小排列,并按照该顺序抓取页面。
如果每次抓取一个页面,就重新计算PageRank值,一种折中方案是:每抓取K个页面后,重新计算一次PageRank值。但是这种情况还会有一个问题:对于已经下载下来的页面中分析出的链接,也就是我们之前提到的未知网页那一部分,暂时是没有PageRank值的。为了解决这个问题,会给这些页面一个临时的PageRank值:将这个网页所有入链传递进来的PageRank值进行汇总,这样就形成了该未知页面的PageRank值,从而参与排序。
2.3.5 OPIC策略策略
该算法实际上也是对页面进行一个重要性打分。在算法开始前,给所有页面一个相同的初始现金(cash)。当下载了某个页面P之后,将P的现金分摊给所有从P中分析出的链接,并且将P的现金清空。对于待抓取URL队列中的所有页面按照现金数进行排序。
2.3.6 大站优先策略
对于待抓取URL队列中的所有网页,根据所属的网站进行分类。对于待下载页面数多的网站,优先下载。这个策略也因此叫做大站优先策略。
3、爬虫分类
开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?上面说的爬虫,基本可以分3类:
(1)分布式爬虫:Nutch

(2)JAVA爬虫:Crawler4j、WebMagic、WebCollector

(3)非JAVA爬虫:scrapy(基于Python语言开发)
3.1 分布式爬虫
爬虫使用分布式,主要是解决两个问题:
1)海量URL管理
2)网速
现在比较流行的分布式爬虫,是Apache的Nutch。但是对于大多数用户来说,Nutch是这几类爬虫里,最不好的选择,理由如下:
1)Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫。Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的。对精抽取没有太大的意义。也就是说,用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非,有修改Nutch的能力,真的不如自己重新写一个分布式爬虫框架了。
2)Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。如果集群机器数量较少,爬取速度反而不如单机爬虫快。
3)Nutch虽然有一套插件机制,而且作为亮点宣传。可以看到一些开源的Nutch插件,提供精抽取的功能。但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。而且Nutch并没有为精抽取提供相应的插件挂载点。Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text文本)。
4)用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。了解Nutch源码的学**成本很高,何况是要让一个团队的人都读懂Nutch源码。调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。
5)很多人说Nutch2有gora,可以持久化数据到avro文件、hbase、mysql等。很多人其实理解错了,这里说的持久化数据,是指将URL信息(URL管理所需要的数据)存放到avro、hbase、mysql。并不是你要抽取的结构化数据。其实对大多数人来说,URL信息存在哪里无所谓。
6)Nutch2的版本目前并不适合开发。官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。如果想用hbase配合nutch(大多数人用nutch2就是为了用hbase),只能使用0.90版本左右的hbase,相应的就要将hadoop版本降到hadoop 0.2左右。而且nutch2的官方教程比较有误导作用,Nutch2的教程有两个,分别是Nutch1.x和Nutch2.x,这个Nutch2.x官网上写的是可以支持到hbase 0.94。但是实际上,这个Nutch2.x的意思是Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。而且非常不稳定(一直在修改)。
所以,如果你不是要做搜索引擎,尽量不要选择Nutch作为爬虫。有些团队就喜欢跟风,非要选择Nutch来开发精抽取的爬虫,其实是冲着Nutch的名气,当然最后的结果往往是项目延期完成。
如果你是要做搜索引擎,Nutch1.x是一个非常好的选择。Nutch1.x和solr或者es配合,就可以构成一套非常强大的搜索引擎了。如果非要用Nutch2的话,建议等到Nutch2.3发布再看。目前的Nutch2是一个非常不稳定的版本。

3.2 JAVA爬虫
这里把JAVA爬虫单独分为一类,是因为JAVA在网络爬虫这块的生态圈是非常完善的。相关的资料也是最全的。这里可能有争议,我只是随便谈谈。
其实开源网络爬虫(框架)的开发非常简单,难问题和复杂的问题都被以前的人解决了(比如DOM树解析和定位、字符集检测、海量URL去重),可以说是毫无技术含量。包括Nutch,其实Nutch的技术难点是开发hadoop,本身代码非常简单。网络爬虫从某种意义来说,类似遍历本机的文件,查找文件中的信息。没有任何难度可言。之所以选择开源爬虫框架,就是为了省事。比如爬虫的URL管理、线程池之类的模块,谁都能做,但是要做稳定也是需要一段时间的调试和修改的。
对于爬虫的功能来说。用户比较关心的问题往往是:
1)爬虫支持多线程么、爬虫能用代理么、爬虫会爬取重复数据么、爬虫能爬取JS生成的信息么?
不支持多线程、不支持代理、不能过滤重复URL的,那都不叫开源爬虫,那叫循环执行http请求。
能不能爬js生成的信息和爬虫本身没有太大关系。爬虫主要是负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。这些模拟浏览器,往往需要耗费很多的时间来处理一个页面。所以一种策略就是,使用这些爬虫来遍历网站,遇到需要解析的页面,就将网页的相关信息提交给模拟浏览器,来完成JS生成信息的抽取。
2)爬虫可以爬取ajax信息么?
网页上有一些异步加载的数据,爬取这些数据有两种方法:使用模拟浏览器(问题1中描述过了),或者分析ajax的http请求,自己生成ajax请求的url,获取返回的数据。如果是自己生成ajax请求,使用开源爬虫的意义在哪里?其实是要用开源爬虫的线程池和URL管理功能(比如断点爬取)。
如果我已经可以生成我所需要的ajax请求(列表),如何用这些爬虫来对这些请求进行爬取?
爬虫往往都是设计成广度遍历或者深度遍历的模式,去遍历静态或者动态页面。爬取ajax信息属于deep web(深网)的范畴,虽然大多数爬虫都不直接支持。但是也可以通过一些方法来完成。比如WebCollector使用广度遍历来遍历网站。爬虫的第一轮爬取就是爬取种子集合(seeds)中的所有url。简单来说,就是将生成的ajax请求作为种子,放入爬虫。用爬虫对这些种子,进行深度为1的广度遍历(默认就是广度遍历)。
3)爬虫怎么爬取要登陆的网站?
这些开源爬虫都支持在爬取时指定cookies,模拟登陆主要是靠cookies。至于cookies怎么获取,不是爬虫管的事情。你可以手动获取、用http请求模拟登陆或者用模拟浏览器自动登陆获取cookie。
4)爬虫怎么抽取网页的信息?
开源爬虫一般都会集成网页抽取工具。主要支持两种规范:CSS SELECTOR和XPATH。至于哪个好,这里不评价。
5)爬虫怎么保存网页的信息?
有一些爬虫,自带一个模块负责持久化。比如webmagic,有一个模块叫pipeline。通过简单地配置,可以将爬虫抽取到的信息,持久化到文件、数据库等。还有一些爬虫,并没有直接给用户提供数据持久化的模块。比如crawler4j和webcollector。让用户自己在网页处理模块中添加提交数据库的操作。至于使用pipeline这种模块好不好,就和操作数据库使用ORM好不好这个问题类似,取决于你的业务。
6)爬虫被网站封了怎么办?
爬虫被网站封了,一般用多代理(随机代理)就可以解决。但是这些开源爬虫一般没有直接支持随机代理的切换。所以用户往往都需要自己将获取的代理,放到一个全局数组中,自己写一个代理随机获取(从数组中)的代码。
7)网页可以调用爬虫么?
爬虫的调用是在Web的服务端调用的,平时怎么用就怎么用,这些爬虫都可以使用。
8)爬虫速度怎么样?
单机开源爬虫的速度,基本都可以讲本机的网速用到极限。爬虫的速度慢,往往是因为用户把线程数开少了、网速慢,或者在数据持久化时,和数据库的交互速度慢。而这些东西,往往都是用户的机器和二次开发的代码决定的。这些开源爬虫的速度,都很可以。
9)明明代码写对了,爬不到数据,是不是爬虫有问题,换个爬虫能解决么?
如果代码写对了,又爬不到数据,换其他爬虫也是一样爬不到。遇到这种情况,要么是网站把你封了,要么是你爬的数据是javascript生成的。爬不到数据通过换爬虫是不能解决的。
10)哪个爬虫可以判断网站是否爬完、那个爬虫可以根据主题进行爬取?
爬虫无法判断网站是否爬完,只能尽可能覆盖。
至于根据主题爬取,爬虫之后把内容爬下来才知道是什么主题。所以一般都是整个爬下来,然后再去筛选内容。如果嫌爬的太泛,可以通过限制URL正则等方式,来缩小一下范围。
11)哪个爬虫的设计模式和构架比较好?
设计模式纯属扯淡。说软件设计模式好的,都是软件开发完,然后总结出几个设计模式。设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。
至于构架,开源爬虫目前主要是细节的数据结构的设计,比如爬取线程池、任务队列,这些大家都能控制好。爬虫的业务太简单,谈不上什么构架。
所以对于JAVA开源爬虫,我觉得,随便找一个用的顺手的就可以。如果业务复杂,拿哪个爬虫来,都是要经过复杂的二次开发,才可以满足需求。
3.3 非JAVA爬虫
在非JAVA语言编写的爬虫中,有很多优秀的爬虫。这里单独提取出来作为一类,并不是针对爬虫本身的质量进行讨论,而是针对larbin、scrapy这类爬虫,对开发成本的影响。
先说python爬虫,python可以用30行代码,完成JAVA 50行代码干的任务。python写代码的确快,但是在调试代码的阶段,python代码的调试往往会耗费远远多于编码阶段省下的时间。使用python开发,要保证程序的正确性和稳定性,就需要写更多的测试模块。当然如果爬取规模不大、爬取业务不复杂,使用scrapy这种爬虫也是蛮不错的,可以轻松完成爬取任务。

上图是Scrapy的架构图,绿线是数据流向,首先从初始URL 开始,Scheler 会将其交给 Downloader 进行下载,下载之后会交给 Spider 进行分析,需要保存的数据则会被送到Item Pipeline,那是对数据进行后期处理。另外,在数据流动的通道里还可以安装各种中间件,进行必要的处理。 因此在开发爬虫的时候,最好也先规划好各种模块。我的做法是单独规划下载模块,爬行模块,调度模块,数据存储模块。
对于C++爬虫来说,学**成本会比较大。而且不能只计算一个人的学**成本,如果软件需要团队开发或者交接,那就是很多人的学**成本了。软件的调试也不是那么容易。
还有一些ruby、php的爬虫,这里不多评价。的确有一些非常小型的数据采集任务,用ruby或者php很方便。但是选择这些语言的开源爬虫,一方面要调研一下相关的生态圈,还有就是,这些开源爬虫可能会出一些你搜不到的BUG(用的人少、资料也少)
4、反爬虫技术

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,网络以外,几乎每个大型门户网站都有自己的搜索引擎,**小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的。
一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬虫破坏力极强,造成的网站访问压力会非常大,会导致网站访问速度缓慢,甚至无法访问。
一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种一些应用ajax的网站会采用,这样增大了爬取的难度。
4.1 通过Headers反爬虫
从用户请求的Headers反爬虫是最常见的反爬虫策略。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
[评论:往往容易被忽略,通过对请求的抓包分析,确定referer,在程序中模拟访问请求头中添加]
4.2 基于用户行为反爬虫
还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。

J. 如果文件极限压缩的技术还在,网络世界和现实世界会有什么变化

不会有啥影响,现在你去网上找也能找到各种极限压缩的例子,把几个G的文件压缩成几个K或者几M,但对于单个文件的压缩比是没有太多意义,不适用别的。压缩技术是有其理论上限的,不能无限压缩。根据香农的信息理论,任何一个文件被无损压缩后的结果不可能小于其 熵 。
数据压缩实质上就是去除冗余,或者通过编码来减少数据大小。比如说,111111111这串数字,你可以用9-1来表示9个1,这样就相当于压缩成了3个字符。介绍一种比较容易理解压缩算法:字典算法是最为简单的压缩算法之一。它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。例如:
有字典列表:
00=Chinese
01=People
02=China
源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 01,I am from 02。压缩编码后的长度显著缩小,这样的编码在SLG游戏等专有名词比较多的游戏中比较容易出现,比如《SD高达》。看似减少了信息量,但其实这部分少的信息是蕴含在你的编解码规则里的,即压缩率越高,你的编解码规则越复杂,及字典越厚,解码越难。
对于正常的影像文件,比如视频,很难无损压缩下达到很高的压缩率,一般都是通过再编码有损压缩。比如BMP图像转jpg 吧图片的一些一般人用不到的杂信息去除,APE转MP3之类。基本除了音源文件外其他要对比不太明显。

阅读全文

与极限算法挑战赛敏感词大文本过滤相关的资料

热点内容
印染废水中cod排放量是多少 浏览:245
冷干机的滤芯如何拆下来 浏览:552
海尔净水器出水管接口怎么拆 浏览:13
河北水垢漏斗 浏览:689
白云区农村ppp污水项目 浏览:498
安吉尔水壶滤芯怎么拆 浏览:318
电厂化学废水调整及注意事项 浏览:892
什么叫纳米微晶技术净化器 浏览:43
百佳境界净水器如何 浏览:695
甲醇蒸馏塔再沸器的原理 浏览:268
ro膜氯化 浏览:984
洁厕灵能除垢 浏览:459
油烟机净化器的价格多少钱一台 浏览:334
净化器电源怎么测量 浏览:332
wq污水提升泵 浏览:415
污水处理50户需多少立方池 浏览:656
树脂是不是ab胶 浏览:694
减压蒸馏怎么拆 浏览:544
饮水机为什么加热一会就保温 浏览:287
电解法处理污水基于什么原理 浏览:229