首页 文章 精选 留言 我的

精选列表

搜索[google],共10000篇文章
优秀的个人博客,低调大师

Google 关闭 Android 7.x Beta 项目,迎接 Android O

我们离Android O(即Android 8.0)越来越近了,目前谷歌已经关闭了Android 7.x Beta牛轧糖的测试项目,并允许部分机型用户提前尝鲜新版。新版Android O按照惯例,会被命名为一种零食,目前大家都猜这个名字应该是美国国民饼干奥利奥(Oreo)。 新版Android的正式发布会在5月17日到19日召开的谷歌I/O大会上,不过早在3月21日,Android O就已经面向开发者进行测试了,并在今年第三季度结束。 面向普通用户的Android O测试版本会在I/O大会上公布,到时候,用户就可以通过OTA更新到Android O的Beta版本,需要注意到是,因为是早期版本,肯定会有很多Bug与问题。 目前支持Android O测试的机型有以下6款: Nexus 5X Nexus 6P Nexus Player Pixel Pixel XL Pixel C 本文来自开源中国社区 [http://www.oschina.net]

优秀的个人博客,低调大师

Google开源基于Deep Learning的word2vec工具

摘要:谷歌已经使用Deep Learning技术开发了许多新方法来解析语言,目前,谷歌开源了一款基于Deep Learning的学习工具——word2vec,这是首款面向大众的Deep Learning学习工具。 word2vec(word to vector)顾名思义,这是一个将单词转换成向量形式的工具。通过转换,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。 word2vec为计算向量词提供了一种有效的连续词袋(bag-of-words)和skip-gram架构实现,word2vec遵循Apache License 2.0开源协议。 如何转换? word2vec主要是将文本语料库转换成词向量。它会先从训练文本数据中构建一个词汇,然后获取向量表示词,由此产生的词向量可以作为某项功能用在许多自然语言处理和机器学习应用中。 在举例子之前,引入余弦距离(Cosine distance)这个概念(摘自维基百科): 通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的值为0到1之间。 然后可以通过distance工具根据转换后的向量计算出余弦距离,来表示向量(词语)的相似度。例如,你输入“france”,distance工具会计算并显示与“france”距离最相近的词,如下: Word Cosine distance ------------------------------------------- spain 0.678515 belgium 0.665923 netherlands 0.652428 italy 0.633130 switzerland 0.622323 luxembourg 0.610033 portugal 0.577154 russia 0.571507 germany 0.563291 catalonia 0.534176在word2vec中主要有两种学习算法:连续词袋和连续skip-gram,switch-cbow允许用户选择学习算法。这两种算法有助于预测其它句子的词汇。 从词转换到句子或更长的文本 在一些特定的应用程序中,它还可以用于多个词汇,例如,“san francisco”,这样它就会通过预先处理数据集,让其形成句子,找到与“san francisco”余弦距离最近的内容: Word Cosine distance ------------------------------------------- los_angeles 0.666175 golden_gate 0.571522 oakland 0.557521 california 0.554623 san_diego 0.534939 pasadena 0.519115 seattle 0.512098 taiko 0.507570 houston 0.499762 chicago_illinois 0.491598 如何衡量词向量质量 可能影响到词向量质量的几个因素: 训练数据的数量和质量 向量的大小 训练算法 向量的质量对任何一个应用程序都非常重要,然而,根据复杂的任务来探索不同的超参数设置可能会过于苛刻。因此,我们设计了简单的测试集,来快速评估矢量词的质量。 词聚类(Word clustering) 词向量也可以从巨大的数据集中导出词类,通过执行词向量顶部的K-means聚类即可实现,脚本演示地址:./demo-classes.sh,最后输出的是一个词汇表文件和与之对应的类ID标识,例如: carnivores 234 carnivorous 234 cetaceans 234 cormorant 234 coyotes 234 crocodile 234 crocodiles 234 crustaceans 234 cultivated 234 danios 234 . . . acceptance 412 argue 412 argues 412 arguing 412 argument 412 arguments 412 belief 412 believe 412 challenge 412 claim 412 性能 在多核CPU上(使用开关‘-threads N’),通过使用并行训练可以显著提高训练速度,超参数选择对性能也至关重要(包括速度和准确率),主要选择有: 架构:skip-gram(慢、对罕见字有利)vs CBOW(快) 训练算法:分层softmax(对罕见字有利)vs 负采样(对常见词和低纬向量有利) 欠采样频繁词:可以提高结果的准确性和速度(适用范围1e-3到1e-5) 维度词向量:通常情况下表现都很好 文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近 去哪里收集训练数据 随着训练数据的增加,词向量质量也显著提升,如果以研究为目的的,可以考虑线上数据集: 来自维基百科的上亿字符(在Matt Mahoney页面底部,适用预处理perl脚本) WMT11网站:多语言的大量文本数据。 快速入门 代码下载:http://word2vec.googlecode.com/svn/trunk/ 运行“make”编译word2vec工具 运行demo脚本:./demo-word.sh and ./demo-phrases.sh 原文发布时间为:2013-08-27 本文来自云栖社区合作伙伴“Linux中国”

优秀的个人博客,低调大师

[译]Google官方关于Android架构中MVP模式的示例

概述 该示例(TODO-MVP)是后续各种示例演变的基础,它主要演示了在不带架构性框架的情况下实现M-V-P模式。其采用手动依赖注入的方式来提供本地数据源和远程数据源仓库。异步任务通过回调处理。 注意:MVP中View的概念是有所不同的: android.view.View类我们叫它 "Android View" MVP中从P接收命令的东西我们叫它”View”,后文说了,就是Fragment Fragment 采用Fragment作为视图的载体有两个原因: Activity 和 Fragment分离恰好适合用来实现MVP:Activity是创建和连接View与Presenter的总控制器 适配平板设备的布局或多视图屏幕的场景都可利用Fragment框架的优势 关键概念 该App(指官方TODO-MVP示例)中有四个功能: Tasks TaskDetail AddEditTask Statistics 每个功能拥有下列代码分工: 定义VIew和Presenter之间的“契约”接口 一个Activity类负责创建Fragment和Presenter 一个Fragment类实现VIew接口 一个Presenter类实现Presenter接口 一般来说,业务逻辑存在于Presenter中并依赖View完成Android中UI相关的工作。 View中几乎不包含逻辑:它将Presenter的命令转换为UI动作,并监听用户动作传递给Presenter。 “契约”接口用于定义View和Presenter之间的联系。 (译注: 有人立马就问到M哪去了,官方实例里M是轻的,与Repository和DataSource概念分离。在官方的另一个示例中有进一步的描述:http://www.cnblogs.com/x3d/p/6108998.html /** * Immutable model class for a Task. */ public final class Task { @NonNull private final String mId; @Nullable private final String mTitle; @Nullable private final String mDescription; private final boolean mCompleted; @NonNull public String getId() { return mId; } @Nullable public String getTitle() { return mTitle; } @Nullable public String getTitleForList() { if (!Strings.isNullOrEmpty(mTitle)) { return mTitle; } else { return mDescription; } } @Nullable public String getDescription() { return mDescription; } public boolean isCompleted() { return mCompleted; } public boolean isActive() { return !mCompleted; } public boolean isEmpty() { return Strings.isNullOrEmpty(mTitle) && Strings.isNullOrEmpty(mDescription); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Task task = (Task) o; return Objects.equal(mId, task.mId) && Objects.equal(mTitle, task.mTitle) && Objects.equal(mDescription, task.mDescription); } @Override public int hashCode() { return Objects.hashCode(mId, mTitle, mDescription); } @Override public String toString() { return "Task with title " + mTitle; } } DataSource、Repository相关代码布局: 契约接口定义: package com.example.android.architecture.blueprints.todoapp.taskdetail; import com.example.android.architecture.blueprints.todoapp.BasePresenter; import com.example.android.architecture.blueprints.todoapp.BaseView; /** * This specifies the contract between the view and the presenter. */ public interface TaskDetailContract { interface View extends BaseView<Presenter> { void setLoadingIndicator(boolean active); void showMissingTask(); void hideTitle(); void showTitle(String title); void hideDescription(); void showDescription(String description); void showCompletionStatus(boolean complete); void showEditTask(String taskId); void showTaskDeleted(); void showTaskMarkedComplete(); void showTaskMarkedActive(); boolean isActive(); } interface Presenter extends BasePresenter { void editTask(); void deleteTask(); void completeTask(); void activateTask(); } } ) 项目依赖 Common Android support 库 (com.android.support.*) Android Testing Support 库 (Espresso, AndroidJUnitRunner…) Mockito Guava (null checking) 特性 复杂度 - 易理解性 使用架构性框架/库/工具类: 无 概念复杂度 低,基于Android的纯MVP实现。 可测试性 单元测试 高,Presenter可被单元测试,和仓库与数据源一样。 UI 测试 高,允许使用fake模块注入伪造(fake)数据进行测试。 代码对比 相比于不使用架构的传统项目,该示例引入了额外的类和接口:Presenter、Repositiy、契约接口等,所以MVP中代码行数更多一些。 语言 文件 空行 注释 代码 Java 46 1075 1451 3451 XML 34 97 337 601 SUM 80 1172 1788 4052 可维护性 简化功能的维护或新功能的迭代 高 学习成本 低 相关功能代码能容易查找定位、代码职责清晰。开发者无需熟悉任何外部的依赖就能对该项目开展工作。 Github项目地址:https://github.com/googlesamples/android-architecture/

优秀的个人博客,低调大师

Google或今日发布Android 5.0、Nexus 6和Nexus 9

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 今天早些时候,外媒福布斯给出消息称,今天谷歌将正式发布Nexus 6、Android 5.0以及Nexus 9。 报道称,谷歌原计划为三者举行了一场发布会,但Android L(5.0)正式版还有些细节没有完工,所以他们准备低调的发布新产品,即直接官方博客发布。 据悉,Nexus 9由HTC打造,配备了一块8.9寸2048×1440分辨率屏,搭载64位K1处理器(双核)和800万像素摄像头,同时该机还会拥有双前置扬声器等。 此外,该机会在10月17日接受预定,11月3日正式开卖。其中,16GB版本售价是399美元,32GB的LTE版本售价是499美元。 有消息称,10月16日苹果将举行发布会,发布发布新一代9.7英寸iPad Pro,显然谷歌选择与苹果相近的时机发布Nexus 9,双方将会形成竞争。 从配图看,Nexus 6已经搭载了全新的Android L系统 一同推出的还有Nexus 6,其将配备5.9寸1440×2560像素分辨率屏,搭载骁龙805处理器和3GB内存,并且提供1300万像素OIS摄像头。 ***福布斯还强调,虽然Android L正式版今日会亮相,但正式推出还要稍微等上一段时间。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册