[原创] 如何把别人共享的Google Drive目录完整拷贝到自己的Google Drive里

假设别人共享了一个Google云端硬盘(Google Drive)的目录,里面有很多大文件,你想把这个目录拷贝到自己的Google Drive里,那么,把它们全部下载到本地、再上传到自己的Google Drive里的做法未免太傻了一点——不仅速度慢,而且太耗流量。

不通过本地中转的“云拷贝”是一个好办法。
Google Drive Copy Folder就是这样一个Google Drive web app,它可以把你有权限访问的Google Drive目录,完整拷贝到你自己的Google Drive指定目录下。
但是要注意,这不是Google官方开发的工具,对安全性有顾虑的人请谨慎审视。

阅读更多

[原创] 使用Apache DataFu中的Coalesce()简化Apache Pig的三元运算符

查看更多Apache Pig的教程请点击这里

来看这个例子。有数据文件 1.txt,内容为:

a[\t][\t]c
[\t]f[\t]g
h[\t]k[\t]
[\t][\t][\t]
其中 [\t] 表示制表符(tab),并不是真的在文件中写了 [\t]
在Pig命令行交互模式下加载这个文件,并把其中为空(NULL)的列替换成一些数字:

A = LOAD '1.txt' AS (col1: chararray, col2: chararray, col3: chararray);
B = FOREACH A GENERATE (col1 IS NOT NULL ? col1 : '1') AS col1, (col2 IS NOT NULL ? col2 : '2') AS col2, (col3 IS NOT NULL ? col3 : '3') AS col3;
DUMP B;

输出:

(a,2,c)
(1,f,g)
(h,k,3)
(1,2,3)

代码非常简单:如果第一列col1为空则替换为1,如果第二列为空则替换为2,如果第三列为空则替换为3。
这里使用了三元运算符 ? : 来做这个判断,写法非常丑陋。

阅读更多

[原创] 推荐一款编写数学公式的国产神器:AxMath,可与LATEX双向转换

latex

我一直都很佩服那些可以直接用LATEX语法打出各种复杂数学公式的人,反正我是记不住,而且也真的不想去记LATEX语法。
比如这个公式:
cauchy's inequality

有的人能直接用LATEX手写出来:
\left( \sum_{i=1}^n{a_ib_i} \right) ^2\leqslant \left( \sum_{i=1}^n{a_{i}^{2}} \right) \left( \sum_{i=1}^n{b_{i}^{2}} \right) , a_i,b_i\in \mathbb{R}
这还算简单的了,更复杂的公式大神们都可以直接手写LATEX。
就问你服不服。
在下自愧脑容量不足。
所以当我要输入数学公式的时候,MathType这个功能强大的可视化数学公式编辑器就是我认为最方便易用的软件。

阅读更多

[原创] selenium-java的wait.until(ExpectedConditions)编译出错问题

代码示例:

wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
alert.accept();

在升级了pom.xml中的selenium-java版本到3.141.59后,代码编译出错了(挂在第一行),错误信息:

无法将类 org.openqa.selenium.support.ui.FluentWait<T>中的方法 until应用到给定类型;
[ERROR]   需要: java.util.function.Function<? super org.openqa.selenium.WebDriver,V>
[ERROR]   找到: org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.Alert>
[ERROR]   原因: 无法推断类型变量 V
[ERROR]     (参数不匹配; org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.Alert>无法转换为java.util.function.Function<? super org.openqa.selenium.WebDriver,V>)

[原创]《使用 fastText 做中文文本分类》文章合集

本文描述了如何使用 fastText 对中文进行文本分类的过程,只有实操,基本没有理论。
以下按顺序编排。

 使用 fastText 做中文文本分类(1)
 使用 fastText 做中文文本分类(2)
 使用 fastText 做中文文本分类(3)
 使用 fastText 做中文文本分类(4)
 使用 fastText 做中文文本分类(5)Read More

[原创] 使用 fastText 做中文文本分类(5)

查看本系列文章合集,请看这里

前面说的模型训练、预测过程,是用 fastText 可执行程序完成的。fastText提供了Python的接口,同样的功能也可以用Python实现。如果数据量比较小,单机做文本分类没啥问题。但我的数据量比较大,几十G的文本数据,单机加载模型、预测分类太耗资源了,而且速度慢。
并行这种事嘛,交给Map-Reduce job来做是最合适不过了,不过,要在Hadoop集群上安装fastText的Python包是不可能的,所以我只能找一下,fastText的模型怎么用Java加载,从而在M-R job中并行地去做预测。

阅读更多

[原创] 使用 fastText 做中文文本分类(4)

查看本系列文章合集,请看这里

 开始训练第一个文本分类模型
标注好的数据,其格式为:

__label__科技 月 10 日 网通 社从 高合 汽车 获悉 华人 运通 微软 2020 世界 人工智能 大会 云端 峰会 WAIC 2020 上 达成 战略 合作 依托 微软 小冰 人工智能 技术 高合 汽车 上 落地 全球 首个 主动式 人工智能 伙伴 HiPhiGo 用户 提供 更好 交通 出行 体验 人工智能 交通 行业 创新 融合 发展 探讨 成立 联合 智能 计算 实验室 智能 汽车 载体 智捷 交通 多个 领域 展开 深度 合作 人工智能 前瞻 技术 研发 推动 智慧 出行 社会 持续 发展 微软 亚洲 互联网 工程院 院长 王永东 微软 华人 运通 合作 使 人工智能 技术 切实可行 落地 场景 得以 转化 真实有效 生产力 发挥 更大 价值 微软 华人 运通 携手 推进 人工智能 新兴 科技 汽车 智慧 智慧 出行 领域 广泛应用 产业 升级 社会 持续 发展 注入 新 活力 华人 运通 董事长 丁磊 此次 合作 顶级 人工智能 企业 智能 汽车 公司 强强 联手 AI 多项 领先 技术 全球 汽车行业 首次 量产 落地 世界 内 技术 领先 性 首款 智能 汽车 高合 HiPhi 有条不紊 推进 全球 首条 车路 协同 自动 驾驶 智能化 城市道路 示范 项目 盐城 开通 试运行 再 全球 首个 车路 城 一体化 5G 无人驾驶 交通 运营 样板 上海 张江 未来 公园 成功 落地 华人 运通 以人为本 人性化 需求 出发 人性化 智慧 打造 智能 汽车 智捷 交通 智慧 城市 三智 战略 各项 业务 稳步 推进 高合 首款 量产 车 HiPhi 2020 年底 小批量 试生产 2021 年 上市 交付

按 fastText 的指南,把这份数据按大概 9:1 的比例,分成training集和validation集,然后开始训练模型:

./fasttext supervised -input labeled-data_train -output model

其中,labeled-data_train 是training集文件,model 是输出模型的文件名前缀。
经过一段时间的等待(速度很快),当前目录下就生成了模型文件:model.binmodel.vec

阅读更多

[原创] 使用 fastText 做中文文本分类(3)

查看本系列文章合集,请看这里

为 training 数据做标注,这可能是一个艰巨的任务,也可能是一个有捷径的任务。
有时候,我们可以依据一些已知的规则来标注文本,比如不同的数据是从不同的来源获取到的,从来源可以知道它们所属的类别,这是一个捷径。不过我这里不具备这样的条件。
我的数据来源是网上的各种新闻,不是某些专业领域的数据,这种比较常见的文本分类任务,可以利用国内的几大云服务商提供的免费接口来完成。阿里云、腾讯云都有这样的接口。
以腾讯云为例,其“人工智能→自然语言处理”产品提供了文本分类功能:

文本分类接口能够对用户输入的文本进行自动分类,将其映射到具体的类目上,用户只需要提供待分类的文本,而无需关注具体实现。
该功能基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升。
目前已提供:
● 通用领域分类体系,包括15个分类类目,分别是汽车、科技、健康、体育、旅行、教育、职业、文化、军事、房产、娱乐、女性、奥运、财经以及其他,适用于通用的场景。
● 新闻领域分类体系,包括37个一级分类类目,285个二级分类(详细请见 类目体系映射表),已应用于腾讯新闻的文章分类。
更多垂直领域的分类体系即将推出,敬请期待。
默认接口请求频率限制:20次/秒。
该API每天有50万次免费调用额度,用来标注数据够用了:
tencent cloud nlp free resource
如果你对这个接口的分类结果准确性有疑虑的话,可以亲自拿一些新闻的文本试一试,就会发现它的效果真的不错,完全可以用来当作人工标注的结果了,毕竟是大厂出品嘛。

阅读更多

[原创] 使用 fastText 做中文文本分类(2)

查看本系列文章合集,请看这里

做好文本预处理,才能输入fastText训练一个效果好的模型出来。

 原文示例
有时我们拿到的源数据是很粗糙的,带有很多会影响模型效果的内容,例如下面这样:

<p>罗望子,是豆科酸豆属唯一的种,是热带乔木,原产于东部非洲,包括马达加斯加落叶森林,但已被引入热带亚洲、拉丁美洲和加勒比海。柽柳是中国海南省三亚的一种城市树木。罗望子最适合生长在温度高、日照长、气候干燥、干湿季节分明的地区。</p><p><img src="http://p0.qhimg.com/t014b83dc78c7cc5000.jpg?size=741x320"/><br /></p><p>罗望子富含糖、乙酸、酒石酸、甲酸、柠檬酸等成分,主要用于调味品、饮料、果酱等食品领域。吃一点罗望子有很多好处。当我们吃罗望子时,罗望子中含有的多糖是一种非常好的抗光物质。当我们吃这种物质时,它可以防止紫外线辐射伤害皮肤。通常吃一点罗望子,饭前吃一点罗望子可以增进食欲,改善我们的饮食质量。在炎热的夏日,吃一点罗望子可以生津止渴,清热解毒,降低中暑的风险。</p><p><img src="http://p1.qhimg.com/t01ecdbbc26c329a78b.jpg?size=533x409"/><br /></p><p>罗望子种子含有丰富的抗氧化物质。多吃罗望子籽可以延缓人体衰老,保持皮肤湿润有光泽。罗望子种子还含有一些清热解毒、消炎的物质,可以帮助我们的人体抵抗一些有害细菌,保护我们的健康。

这里面不仅带有URL、大量的HTML标签,而且还有标点符号等,这些都要清洗掉。

阅读更多

[原创] 使用 fastText 做中文文本分类(1)

查看本系列文章合集,请看这里

 什么是“文本分类”

它是图书馆学, 信息学和计算机科学中的一个问题。其任务是将一个文档分配到一个或者多个类别中。

举例:

文本 类别
瑞幸咖啡今日发布声明称,瑞幸咖啡公司将于6月29日在纳斯达克停牌,并进行退市备案。声明表示,在国内消费市场方面,瑞幸咖啡全国4000多家门店将正常运营,近3万名员工仍将一如既往的为用户提供优质产品和服务。公司衷心感谢广大消费者的支持厚爱,并再次为事件造成的恶劣影响向社会各界诚挚道歉。 财经
明朝中后期西南沿海一个重要的问题就是倭寇的骚扰,这个问题本来是有希望被当时的浙江总督用和平的方法解决掉的,但是中途就出了个王本固这个插曲。 历史

其中,“类别”是事先定义好的。一段文本可以属于多个类别,例如,第2个例子可以同时属于“历史”和“明朝”这两个类别。

阅读更多

[原创] Hadoop 2.6.x 下Distributed Cache的用法

仔细记录一下Java的Map-Reduce job使用distributed cache的方法,毕竟以前一直都是copy paste ~

 适用的Hadoop版本
CDH 5.8.0(Hadoop 2.6.0)
别的版本没有测试过,但后面相近的版本应该也能用。

 准备工作:上传本地文件到HDFS
为了在Java代码中把一个文件加入 distributed cache,需要先把它上传到HDFS,之后应使用 HDFS 路径来加入 distributed cache。
假设要加入 distributed cache 的文件为 file.txt:

hadoop fs -put file.txt /your/hdfs/dir/

阅读更多

[原创] 调戏了一番度娘"最先进"的PLATO-2预训练模型之后,我还是回到了和人类交谈...

plato-2 network arch
(莫慌,这图是拿出来撑场面的,我可能和你一样看不懂)

前言:这是一篇很不严肃的实验文章。每一个会修电脑的人,都可以很容易地照着本文的描述,自己去操作一遍。

大概一周前,百度不是发布了一个“取得重要进展”的对话生成网络 PLATO-2 吗?我当时一看到那消息,精神就来了,为什么?这得先从解释一下“这玩意是干什么用的”说起——毕竟,这篇文章要让每一个群众都能看得懂,大家好才是真的好。

近日,百度发布对话生成网络 PLATO-2,宣布在开放域对话生成模型上迎来重要进展。PLATO-2 承袭 PLATO 隐变量进行回复多样化生成特性,模型参数高达 16 亿,涵盖中英文版本,可就开放域话题深度畅聊。实验结果显示,PLATO-2 中英文对话效果已超越谷歌 Meena、微软小冰和 Facebook Blender 等先进模型。

咳咳,这些专业术语说的是什么鬼?
如果你完全看不明白这段话,只需要知道:它说的是和NLP(自然语言处理,一门机器学习的分支学科)相关的一些东西。
可能有的人只听说过这段话里提到的“微软小冰”——她的主要功能就是一个【聊天机器人】,和小米的“小爱同学”颇为相似。
“小爱同学,帮我把空调打开!” “好的,开啦!”
——相信这样的场景,早已飞入我国千千万万寻常百姓家。
所以,百度发布的这个 PLATO-2,它可以用来做“小爱同学”的大脑,也就是最核心的那一块功能。不过现实中的“小爱同学”远比这个复杂,在这里只是做一个比喻而已。

阅读更多

[原创] PHP 7.0 升级到 7.3

✔ 为什么要升级PHP版本
就是这么逗逼,从PHP 5.4升级到7.0之后,WordPress又升了几次版本,让PHP 7.0又成了明日黄花(不是“昨日黄花”啊同志们,成语要用对),虽然7.0还能用,但是每次进WordPress后台看到的“PHP版本太旧”的提示很碍眼,于是我下定决心要把它升级到当前最主流的 7.3 版——本文写作之时,是2020年7月。
以下步骤只适用于CentOS 7系统(具体子版本不确定能支持到什么范围)。
 
 怎样升级PHP版本最方便
这回我就没有那么幸运了,虽然还是可以用yum来安装PHP相关的package,但是安装好之后有很多问题导致不能用,折腾了好些时间才搞定。作为一个平常工作中完全不用PHP的人,我太难了。

阅读更多

[原创] PHP 5.4 升级到 7.0

 为什么要升级PHP版本
WordPress版本升级,已经不支持5.4了,必须要升到7.x,就这一条理由就不得不面对现实。再说了,PHP 5.4是多么老旧的上古化石版本啊!
以下步骤只适用于CentOS 7系统(具体子版本不确定能支持到什么范围)。


 怎样升级PHP版本最方便
对我来说,原来的PHP是通过yum install安装的,因此,如果能通过yum来把旧版升级到新版,是最方便的了。源码编译什么的,那得多烦啊!

阅读更多