首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据结构思维 第十五章 爬取维基百科

数据结构思维 第十五章 爬取维基百科

作者头像
ApacheCN_飞龙
发布于 2022-12-01 10:59:38
发布于 2022-12-01 10:59:38
46500
代码可运行
举报
文章被收录于专栏:信数据得永生信数据得永生
运行总次数:0
代码可运行

第十五章 爬取维基百科

原文:Chapter 15 Crawling Wikipedia 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译

在本章中,我展示了上一个练习的解决方案,并分析了 Web 索引算法的性能。然后我们构建一个简单的 Web 爬虫。

15.1 基于 Redis 的索引器

在我的解决方案中,我们在 Redis 中存储两种结构:

  • 对于每个检索词,我们有一个URLSet,它是一个 Redis 集合,包含检索词的 URL。
  • 对于每个网址,我们有一个TermCounter,这是一个 Redis 哈希表,将每个检索词映射到它出现的次数。

我们在上一章讨论了这些数据类型。你还可以在 http://thinkdast.com/redistypes 上阅读 Redis Set和Hash`的信息

JedisIndex中,我提供了一个方法,它可以接受一个检索词并返回 Redis 中它的URLSet的键:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private String urlSetKey(String term) {
    return "URLSet:" + term;
}

以及一个方法,接受 URL 并返回 Redis 中它的TermCounter的键。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private String termCounterKey(String url) {
    return "TermCounter:" + url;
}

这里是indexPage的实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void indexPage(String url, Elements paragraphs) {
    System.out.println("Indexing " + url);

    // make a TermCounter and count the terms in the paragraphs
    TermCounter tc = new TermCounter(url);
    tc.processElements(paragraphs);

    // push the contents of the TermCounter to Redis
    pushTermCounterToRedis(tc);
}

为了索引页面,我们:

  • 为页面内容创建一个 JavaTermCounter,使用上一个练习中的代码。
  • TermCounter的内容推送到 Redis。

以下是将TermCounter的内容推送到 Redis 的新代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public List<Object> pushTermCounterToRedis(TermCounter tc) {
    Transaction t = jedis.multi();

    String url = tc.getLabel();
    String hashname = termCounterKey(url);

    // if this page has already been indexed, delete the old hash
    t.del(hashname);

    // for each term, add an entry in the TermCounter and a new
    // member of the index
    for (String term: tc.keySet()) {
        Integer count = tc.get(term);
        t.hset(hashname, term, count.toString());
        t.sadd(urlSetKey(term), url);
    }
    List<Object> res = t.exec();
    return res;
}

该方法使用Transaction来收集操作,并将它们一次性发送到服务器,这比发送一系列较小操作要快得多。

它遍历TermCounter中的检索词。对于每一个,它:

  • 在 Redis 上寻找或者创建TermCounter,然后为新的检索词添加字段。
  • 在 Redis 上寻找或创建URLSet,然后添加当前的 URL。

如果页面已被索引,则TermCounter在推送新内容之前删除旧页面 。

新的页面的索引就是这样。

练习的第二部分要求你编写getCounts,它需要一个检索词,并从该词出现的每个网址返回一个映射。这是我的解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public Map<String, Integer> getCounts(String term) {
        Map<String, Integer> map = new HashMap<String, Integer>();
        Set<String> urls = getURLs(term);
        for (String url: urls) {
            Integer count = getCount(url, term);
            map.put(url, count);
        }
        return map;
    }

此方法使用两种辅助方法:

  • getURLs接受检索词并返回该字词出现的网址集合。
  • getCount接受 URL 和检索词,并返回该术语在给定 URL 处显示的次数。

以下是实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public Set<String> getURLs(String term) {
        Set<String> set = jedis.smembers(urlSetKey(term));
        return set;
    }

    public Integer getCount(String url, String term) {
        String redisKey = termCounterKey(url);
        String count = jedis.hget(redisKey, term);
        return new Integer(count);
    }

由于我们设计索引的方式,这些方法简单而高效。

15.2 查找的分析

假设我们索引了N个页面,并发现了M个唯一的检索词。检索词的查询需要多长时间?在继续之前,先考虑一下你的答案。

要查找一个检索词,我们调用getCounts,其中:

  • 创建映射。
  • 调用getURLs来获取 URL 的集合。
  • 对于集合中的每个 URL,调用getCount并将条目添加到HashMap

getURLs所需时间与包含检索词的网址数成正比。对于罕见的检索词,这可能是一个很小的数字,但是对于常见检索词,它可能和N一样大。

在循环中,我们调用了getCount,它在 Redis 上寻找TermCounter,查找一个检索词,并向HashMap添加一个条目。那些都是常数时间的操作,所以在最坏的情况下,getCounts的整体复杂度是O(N)。然而实际上,运行时间正比于包含检索词的页面数量,通常比N小得多。

这个算法根据复杂性是有效的,但是它非常慢,因为它向 Redis 发送了许多较小的操作。你可以使用Transaction来加快速度 。你可能留作一个练习,或者你可以在RedisIndex.java中查看我的解决方案。

15.3 索引的分析

使用我们设计的数据结构,页面的索引需要多长时间?再次考虑你的答案,然后再继续。

为了索引页面,我们遍历其 DOM 树,找到所有TextNode对象,并将字符串拆分成检索词。这一切都与页面上的单词数成正比。

对于每个检索词,我们在HashMap中增加一个计数器,这是一个常数时间的操作。所以创建TermCounter的所需时间与页面上的单词数成正比。

TermCounter推送到 Redis ,需要删除TermCounter,对于唯一检索词的数量是线性的。那么对于每个检索词,我们必须:

  • URLSet添加元素,并且
  • 向 RedisTermCounter添加元素。

这两个都是常数时间的操作,所以推送TermCounter的总时间对于唯一检索词的数量是线性的。

总之,TermCounter的创建与页面上的单词数成正比。向 Redis 推送TermCounter与唯一检索词的数量成正比。

由于页面上的单词数量通常超过唯一检索词的数量,因此整体复杂度与页面上的单词数成正比。理论上,一个页面可能包含索引中的所有检索词,因此最坏的情况是O(M),但实际上我们并不期待看到更糟糕的情况。

这个分析提出了一种提高效率的方法:我们应该避免索引很常见的词语。首先,他们占用了大量的时间和空间,因为它们出现在几乎每一个URLSetTermCounter中。此外,它们不是很有用,因为它们不能帮助识别相关页面。

大多数搜索引擎避免索引常用单词,这在本文中称为停止词(http://thinkdast.com/stopword)。

15.4 图的遍历

如果你在第七章中完成了“到达哲学”练习,你已经有了一个程序,它读取维基百科页面,找到第一个链接,使用链接加载下一页,然后重复。这个程序是一种专用的爬虫,但是当人们说“网络爬虫”时,他们通常意味着一个程序:

加载起始页面并对内容进行索引, 查找页面上的所有链接,并将链接的 URL 添加到集合中 通过收集,加载和索引页面,以及添加新的 URL,来按照它的方式工作。 如果它找到已经被索引的 URL,会跳过它。

你可以将 Web 视为图,其中每个页面都是一个节点,每个链接都是从一个节点到另一个节点的有向边。如果你不熟悉图,可以阅读 http://thinkdast.com/graph

从源节点开始,爬虫程序遍历该图,访问每个可达节点一次。

我们用于存储 URL 的集合决定了爬虫程序执行哪种遍历:

  • 如果它是先进先出(FIFO)的队列,则爬虫程序将执行广度优先遍历。
  • 如果它是后进先出(LIFO)的栈,则爬虫程序将执行深度优先遍历。
  • 更通常来说,集合中的条目可能具有优先级。例如,我们可能希望对尚未编入索引的页面给予较高的优先级。

你可以在 http://thinkdast.com/graphtrav 上阅读图的遍历的更多信息 。

15.5 练习 12

现在是时候写爬虫了。在本书的仓库中,你将找到此练习的源文件:

  • WikiCrawler.java,包含你的爬虫的其实代码。
  • WikiCrawlerTest.java,包含WikiCrawler的测试代码。
  • JedisIndex.java,这是我以前的练习的解决方案。

你还需要一些我们以前练习中使用过的辅助类:

  • JedisMaker.java
  • WikiFetcher.java
  • TermCounter.java
  • WikiNodeIterable.java

在运行JedisMaker之前,你必须提供一个文件,关于你的 Redis 服务器信息。如果你在上一个练习中这样做,你应该全部配置好了。否则,你可以在 14.3 节中找到说明。

运行ant build来编译源文件,然后运行ant JedisMaker来确保它配置为连接到你的 Redis 服务器。

现在运行ant WikiCrawlerTest。它应该失败,因为你有工作要做!

这是我提供的WikiCrawler类的起始:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class WikiCrawler {

    public final String source;
    private JedisIndex index;
    private Queue<String> queue = new LinkedList<String>();
    final static WikiFetcher wf = new WikiFetcher();

    public WikiCrawler(String source, JedisIndex index) {
        this.source = source;
        this.index = index;
        queue.offer(source);
    }

    public int queueSize() {
        return queue.size();
    }

实例变量是:

  • source是我们开始抓取的网址。
  • indexJedisIndex,结果应该放进这里。
  • queueLinkedList,这里面我们跟踪已发现但尚未编入索引的网址。
  • wfWikiFetcher,我们用来读取和解析网页。

你的工作是填写crawl。这是原型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public String crawl(boolean testing) throws IOException {}

当这个方法在WikiCrawlerTest中调用时,testing参数为true,否则为false

如果testingtruecrawl方法应该:

  • 以 FIFO 的顺序从队列中选择并移除一个 URL。
  • 使用WikiFetcher.readWikipedia读取页面的内容,它读取仓库中包含的,页面的缓存副本来进行测试(如果维基百科的版本更改,则避免出现问题)。
  • 它应该索引页面,而不管它们是否已经被编入索引。
  • 它应该找到页面上的所有内部链接,并按他们出现的顺序将它们添加到队列中。“内部链接”是指其他维基百科页面的链接。
  • 它应该返回其索引的页面的 URL。

如果testingfalse,这个方法应该:

  • 以 FIFO 的顺序从队列中选择并移除一个 URL。
  • 如果 URL 已经被编入索引,它不应该再次索引,并应该返回null
  • 否则它应该使用WikiFetcher.fetchWikipedia读取页面内容,从 Web 中读取当前内容。
  • 然后,它应该对页面进行索引,将链接添加到队列,并返回其索引的页面的 URL。

WikiCrawlerTest加载具有大约200个链接的队列,然后调用crawl三次。每次调用后,它将检查队列的返回值和新长度。

当你的爬虫按规定工作时,此测试应通过。祝你好运!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【AlphaGo2.0乌镇首局击败柯洁】人机最伟大对弈剖解,超级AI阿老师将围棋3维化
【新智元发自中国乌镇】在围棋峰会开幕式致辞中,DeepMind CEO Demis 表示,樊麾已经成为 AlphaGo 开发团队中的一位重要成员。樊麾表示,自己在与 AlphaGo 对战以后,获得了很多从未有过的认知。柯洁与 AlphaGo 对战将以全新并且激动人心的方式共同探索围棋的奥秘。Demis 还说,围棋不止是一种游戏,是一种艺术。这场比赛也不止是一场比赛,有些东西是专门设计来探索这个世界上最复杂而美丽的棋盘游戏——围棋的真理(perfection & truth),这是人类自己单独下棋再下 1 万
新智元
2018/03/28
9170
【AlphaGo2.0乌镇首局击败柯洁】人机最伟大对弈剖解,超级AI阿老师将围棋3维化
AlphaGo Zero幕后开发心路历程大公开!DeepMind资深研究员黄士杰最新演讲解密
【导读】11月10日,黄士杰应台湾人工智能年会之邀来台演讲,演讲主题是「AlphaGo——深度学习与强化学习的胜利」,也是他首次公开演讲。不久前,在DeepMind发表了《Mastering the game of Go without humanknowledge》的最新论文后,黄士杰曾在Facebook写下:AlphaGo Zero是完全脱离人类知识的AlphaGo版本。在演讲上,他强调,DeepMind的目标是要做出一个通用人工智能,也就是强人工智能,但他也认为,对DeepMind来说,强人工智能还是
WZEARW
2018/04/10
1.2K0
AlphaGo Zero幕后开发心路历程大公开!DeepMind资深研究员黄士杰最新演讲解密
新AlphaGo首度揭秘:单机运行,4个TPU,算法更强(专访+演讲)
舒石 唐旭 发自 东瑶村 量子位 报道 | 公众号 QbitAI 到底是谁击败了柯洁? 答案似乎显而易见。但量子位之所以问这个问题,是因为如今击败柯洁的AlphaGo,与去年击败李世乭的AlphaGo
量子位
2018/03/30
1.3K0
心跳之局:AlphaGo强大,柯洁伟大!
柯洁和 Google AlphaGo 的第二局棋无论从围棋角度,还是从 AI 角度,加多少感叹号都是不够的。 跟这局棋比,当湖十局、耳赤之局、镰仓十番棋都黯然失色。如果还有另一局棋比这局更值得青史留名,那没准儿会是后天柯洁主动要求执白下的对 AlphaGo 最后一局。 如果非要给这局棋加一个符合围棋史传统的名字,也许可以称之为“心跳之局”?——还记得柯洁赛后说他在紧要关头捂住心口,试图让狂跳的心脏稍稍平稳一些吗? 中午我要赶到 CSDN 开会。那时柯洁正准备随时引爆左下角的大劫。开车路上一直在想,这个
AI科技大本营
2018/04/27
7000
心跳之局:AlphaGo强大,柯洁伟大!
AlphaGo教学工具上线!人人可用,柯洁称要重新学围棋
安妮 发自 凹非寺 量子位 出品 | 公众号 QbitAI 昨晚,一条来自“AlphaGo人肉臂”黄士杰博士的消息又引爆了整个朋友圈和Facebook: 大家好,很高兴向大家宣布,AlphaGo教学工
量子位
2018/03/23
1.1K0
AlphaGo教学工具上线!人人可用,柯洁称要重新学围棋
仅用3天,AlphaGo Zero就凭借自学以100:0击败AlphaGo,柯洁表示人类太多余了
AlphaGo Zero3天时间就能达到击败李世石的AlphaGo Lee的水平,21天可以达到了之前击败柯洁的AlphaGo Master的水平。 今天凌晨,谷歌旗下Deepmind人工智能团队发布了一篇轰动AI界的论文,《Mastering the game of Go without human knowledge》(在没有人类知识的情况下掌握围棋),一句话总结这篇论文,他们研发的AlphaGo大表哥AlphaGo Zero能够在没有人类围棋对弈数据的情况下,直接通过自我纯强化学习,于短短的3天自我训
镁客网
2018/05/30
8510
【柯洁乌镇终败】全盘回顾人类最后希望与围棋上帝终极PK
【新智元导读】“英雄”、“人类最后的希望”柯洁还是输了。在胜负大局已定的第三盘比赛中,柯洁再次输给了AlphaGo。自此,阿老师在围棋上完成超越人类三部曲。在人工智能无处不在的世界,我们可能会越来越多地听到这样的“坏消息”。但是,这一场在人工智能历史进程中具有标志性意义的比赛,开启了一个新的时代,我们迫不及地拥抱它。 2017年5月27日,人工智能历史上具有标志性意义的一天。根据新智元获得的最新消息,柯洁在乌镇依然没能带来一场胜利,最终以0:3 败给升级版的阿老师(AlphaGo)。 柯洁在赛前曾表示,这是
新智元
2018/03/28
1.3K0
【柯洁乌镇终败】全盘回顾人类最后希望与围棋上帝终极PK
起底AlphaGo历史
一、AlphaGo zero横空出世 10月19日DeepMind在Nature上发表了名为Mastering the game of Go without human knowledge(不使用人类知识掌握围棋)的论文,在论文中,Deepmind展示了他们强大的新版本围棋程序“AlphaGo Zero”—— 仅经过三天训练,就能以100:0击败此前击败李世石的AlphaGo Lee,经过21天训练,就能达到击败柯洁的AlphaGo Master的水平。 论文一出,AlphaGo Zero又出名了一把,有
大数据和云计算技术
2018/03/08
2K0
起底AlphaGo历史
【21天完虐Master】AlphaGo Zero横空出世,DeepMind Nature论文解密不使用人类知识掌握围棋
【新智元导读】新智元AI World 2017世界人工智能大会倒计时进入20天,DeepMind 如约公布了他们最新版AlphaGo论文,也是他们最新的Nature论文,介绍了迄今最强最新的版本AlphaGo Zero,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。AlphaGo已经退休,但技术永存。DeepMind已经完成围棋上的概念证明,接下来就是用强化学习创造改变世界的价值。 今年5月乌镇围棋大赛时,DeepMind CEO Hassabi
新智元
2018/03/21
9770
【21天完虐Master】AlphaGo Zero横空出世,DeepMind Nature论文解密不使用人类知识掌握围棋
AlphaGo打败人类后,又打败了“自家兄弟”?
企鹅号小编
2017/12/27
1.1K0
AlphaGo打败人类后,又打败了“自家兄弟”?
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
12 月 21 日,全罗道新安郡曾岛 EI dorado 度假村,李世石在第 181 手投子认输。这是与 Handol 退役赛对战的最后一局,前两局,李世石一胜一负。最后一盘棋,还是惜败于 AI。
机器之心
2019/12/26
5820
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
0:2!棋士柯洁对战阿尔法狗败局已定 – So What?
大数据文摘作品,转载具体要求见文末 作者 | Aileen 钱天培 柯洁中盘认输!原定北京时间17:30结束的第二场人机大战提前4小时结束。至此,柯洁前两盘皆败,三盘制赛制下败局已定。 “不像是个人,像是一个神”。柯洁在第一场比赛后这样形容如今比于李世石比赛时更加厉害的升级版AlphaGo。而阿尔法狗的神话没有被打破,第二场比赛在下午2时之前就提前结束,柯洁盘中认输,Alphago赢得第二局比赛,也奠定了本次大赛棋士柯洁的败局。但是,在围棋上全胜让人类的人工智能,确实已经强大到威胁人类了吗? 根据现场解说
大数据文摘
2018/05/24
7600
柯洁放言力拼AlphaGo:我抱有必死的信念!(全部细节都在这里)
舒石 发自 中国棋院 量子位 报道 | 公众号 QbitAI 德扑人机大战刚刚落幕,围棋人机大战又来了。 今天下午三点,AlphaGo 2.0对战柯洁真身的发布会,在中国棋院二层会议厅召开。Google正式官方宣布了这场围棋人机大战的全部细节。 柯洁在这次的发布会上表示,会不惜一切手段与AlphaGo一决胜负。“我拼了”,柯洁说:“我不会说输了无所谓,我抱有必胜的心态和必死的信念”。 另外央视记者最后问:有没有机机大战。(不知为何,现场都笑了。) 对此,Google大中华区总裁石博盟说:没有。 以下是这
量子位
2018/03/30
8270
柯洁放言力拼AlphaGo:我抱有必死的信念!(全部细节都在这里)
AlphaGo下战帖五月来华,柯洁称抱必死信念拼了!
阿尔法狗来势汹汹,柯洁积极应战 4月10日北京时间15:00,谷歌中国与中国棋院在北京联合举办发布会,公布了“中国乌镇·围棋峰会”的开展事宜,并宣布届时AlphaGo将与柯洁开展九段对弈。本次峰会时间定为5月23日至27日,比赛将采用中国规则,获胜者也将获150万美元奖金。 AlphaGo曾于2016年对战韩国棋手李世石,最终以4:1的总比分完胜。在后来出席研讨会时李世石表示,这种人机对阵有一个非常显著的特点——与和人类对阵不同,机器不会流出丝毫情感痕迹。他直言这种体验不同以往,确实令人很不好受。 柯洁在现
大数据文摘
2018/05/25
4870
登顶世界第一! 相比其他AI,AlphaGo究竟有何不同?
世界职业围棋排名网站GoRatings最新排名显示,连续24个月排名世界第一的中国棋手柯洁被谷歌人工智能机器人AlphaGo反超。截止目前,AlphaGo以3612分登顶世界第一,超越了所有人类棋手。
AI科技评论
2018/03/07
1K0
登顶世界第一! 相比其他AI,AlphaGo究竟有何不同?
AlphaGo又一次战胜了人类,然而人类却早已赢得了未来
近期,由谷歌主办的“中国乌镇·围棋峰会”受到了社会各界的广泛关注。而众人瞩目的焦点无疑是在本次峰会上进行的人类与人工智能AlphaGo的又一次正面围棋对决。 早在4月10日谷歌在中国棋院召开发布会之时,社会各界就对这新一轮的人机大战充满了期待。根据大会安排,本次围棋峰会内容丰富。重中之重自然是当前世界排名第一的柯洁与升级版AlphaGo的三番棋对弈。另外本次峰会还将举办配对赛和团队赛,配对赛中,两位棋手将分别与AlphaGo组队,挑战棋手如何理解AlphaGo独特风格并与之合作;在团体赛中,将由五位中国顶尖
VRPinea
2018/05/16
6390
AlphaGo模仿柯洁开局,激战3小时人类再度败北
根据比赛最新消息,5月25日,柯洁对阵AlphaGo第二局,双方激战3个小时,执白子的柯洁再度输给AlphaGo ,第二次人机大战胜负已定。 中国乌镇围棋峰会进入第三天,世界排名第一的围棋选手柯洁执白迎战AlphaGo。在第一局败北之后,柯洁曾发表感言称遇到了上帝。 昨天,有关AlphaGo 2.0的相关技术解读透露,AlphaGo在算法和策略等方面有了大幅度的修正和提高。David Silver 透露,这次与柯洁比赛的AlphaGo master版本远胜去年赢李世石的版本,机器间对弈可让三子。虽
AI科技大本营
2018/04/27
1.3K0
AlphaGo模仿柯洁开局,激战3小时人类再度败北
我是黄士杰,AlphaGo人肉臂
他面无表情,他冷静镇定,他会出现在对手的梦里,他是AlphaGo人肉臂。他热情幽默,多才多艺。他很少登台演讲。他不被允许接受采访。他是AlphaGo真正的创造者。他是Aja,黄士杰。 舒石 发自 凹非寺 量子位 报道 | 公众号 QbitAI 许峰雄绰号“CB”。 1980年,许峰雄(Feng-Hsiung Hsu)从台湾大学本科毕业,1985年考入卡内基梅隆大学。1988年,CB制造出国际象棋程序Deep Thought(深思),后来经过学弟李开复介绍,1989年加盟IBM继续展开研究。 1997年 这一
量子位
2018/03/29
1K0
输了!柯洁首战告负AlphaGo,哈萨比斯:这不是人机大战
唐旭 若朴 发自东瑶村 量子位 报道 | 公众号 QbitAI 19岁的柯洁输了。 围棋人机大战2.0版的第一场,双方交锋至第286手棋,执黑的柯洁以约四分之一子的微弱劣势,败给围棋人工智能程序Alp
量子位
2018/03/30
8230
刚刚,DeepMind被IJCAI授予杰出成就奖,因为他家把AlphaGo Zero做成了暖心的新垣结衣?
啥都别说,先看图好不好 首先,恭喜DeepMind荣获大奖。 其次,获奖评语中,一定不会少的是对他家新品AlphaGo Zero的大加赞叹。 这货3天走完人类的千年棋史,这样的影响力,柯洁也坐不住了: “AlphaGo在两年内达到的成绩令人震惊。现在,AlphaGo Zero是我们最强版本,提高了计算效率,并且没有使用到任何人类围棋数据,”AI科技大本营援引AlphaGo之父、DeepMind联合创始人兼CEO 戴密斯·哈萨比斯(Demis Hassabis)的话说到,“最终,我们想要利用它的算
AI科技大本营
2018/04/28
8080
刚刚,DeepMind被IJCAI授予杰出成就奖,因为他家把AlphaGo Zero做成了暖心的新垣结衣?
推荐阅读
【AlphaGo2.0乌镇首局击败柯洁】人机最伟大对弈剖解,超级AI阿老师将围棋3维化
9170
AlphaGo Zero幕后开发心路历程大公开!DeepMind资深研究员黄士杰最新演讲解密
1.2K0
新AlphaGo首度揭秘:单机运行,4个TPU,算法更强(专访+演讲)
1.3K0
心跳之局:AlphaGo强大,柯洁伟大!
7000
AlphaGo教学工具上线!人人可用,柯洁称要重新学围棋
1.1K0
仅用3天,AlphaGo Zero就凭借自学以100:0击败AlphaGo,柯洁表示人类太多余了
8510
【柯洁乌镇终败】全盘回顾人类最后希望与围棋上帝终极PK
1.3K0
起底AlphaGo历史
2K0
【21天完虐Master】AlphaGo Zero横空出世,DeepMind Nature论文解密不使用人类知识掌握围棋
9770
AlphaGo打败人类后,又打败了“自家兄弟”?
1.1K0
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
5820
0:2!棋士柯洁对战阿尔法狗败局已定 – So What?
7600
柯洁放言力拼AlphaGo:我抱有必死的信念!(全部细节都在这里)
8270
AlphaGo下战帖五月来华,柯洁称抱必死信念拼了!
4870
登顶世界第一! 相比其他AI,AlphaGo究竟有何不同?
1K0
AlphaGo又一次战胜了人类,然而人类却早已赢得了未来
6390
AlphaGo模仿柯洁开局,激战3小时人类再度败北
1.3K0
我是黄士杰,AlphaGo人肉臂
1K0
输了!柯洁首战告负AlphaGo,哈萨比斯:这不是人机大战
8230
刚刚,DeepMind被IJCAI授予杰出成就奖,因为他家把AlphaGo Zero做成了暖心的新垣结衣?
8080
相关推荐
【AlphaGo2.0乌镇首局击败柯洁】人机最伟大对弈剖解,超级AI阿老师将围棋3维化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档