NLP佛脚笔记
(施工中……)
(不施工了 另起炉灶)
主要参考资料:https://github.com/NLP-LOVE/ML-NLP
Machine Learning / Deep Learning部分
基本概念
激活函数:sigmoid,Tanh,ReLU,Leaky ReLU,PReLU,ELU,Maxout
sigmoid
sigmoid函数又称 Logistic函数,用于隐层神经元输出,取值范围为(0,1),可以用来做二分类。
优点:
Sigmoid函数的输出在(0,1)之间,输出范围有限,优化稳定,可以用作输出层。
连续函数,便于求导。
缺点:
sigmoid函数在变量取绝对值非常大的正值或负值时会出现饱和现象,意味着函数会变得很平,并且对输入的微小改变会变得不敏感。
在反向传播时,当梯度接近于0,权重基本不会更新,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。
sigmoid函数的输出不是0均值的,会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响。
计算复杂度高,因为sigmoid函数是指数形式。
Tanh
ReLU
整 ...
PySpark调用Scala UDF
在编写PySpark脚本时,有些列运算在spark当中并没有符合需求的方法,需要使用UDF。通过调用jar中的UDF,可以减少python与JVM的交互;用牺牲UDF部分的开发时间,尽量提高性能。本文将简述如何在PySpark脚本中调用Scala编写的UDF(以一个简单的函数为例)。
关于scala语法、spark&scala的内容可以参考:
Spark入门教程Scala版——厦门大学林子雨;
菜鸟教程——Scala教程
本文依赖的开发环境为:Scala==2.11.7 / Spark & PySpark==2.1.2 / JDK 1.8
1. 安装配置Scala
虽然IDEA里可以下载安装Scala,但是可能因为服务器在国外所以速度比较慢。建议先直接手动安装。
下载解压Scala 2.11.7 for MacOS (链接:https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz ) , 重命名为scala后移动到系统目录。
12mv scala-2.11.7 scala # 重命名 ...
R语言-分析与绘图(4):对twitter数据进行文本挖掘
上一篇:R语言-分析与绘图(3):可视化入门
社交媒体的数据虽然大部分以文字形式呈现,但是其中包含的巨量信息在舆情分析、市场调研乃至政治手腕方面都能够发挥巨大的作用,具有深不可测的潜力,我们在本章节将要学习如何挖掘和分析这些数据,主要目的是复习之前学习的知识并新引入一些函数作为实际操作中的tricks,所以不要认为是单纯的复习课而已。
在这一部分我们需要用到一个新的包:jsonlite. 它可以让我们读取json数据并转换成R语言方便处理的格式。json格式可以理解成一种特殊的表格——字典(dict)格式,它的基本表达形式是“key:value”,表达了本条记录中的某个字段的值为某某。
在终端中输入以下命令安装jsonlite:
1install.packages('jsonlite')
同样地,我们仍然需要用tidyverse处理dataframe数据,所以在教程的最开始我们先导入jsonlite和tidyverse两个包:
12library(jsonlite)library(tidyverse)
分析懂王的推文
读取json文件并转为dataframe
一切从 ...
使用MacOS内建的工具录屏(解决录制无声音问题)
Mojave世代引入的截图/录屏工具
在MacOS 10.14 Mojave或者更高版本上,苹果引入了系统内建的截屏和录屏工具,在任何情况下使用shift+command+5就可以呼出操控面板。
左边三项分别是截取全屏、窗口和选定区域,右边两项分别是录制全屏和选定区域,点击所需选项后再按一下最右边出现的“捕捉”或者“录制”就可以截屏或者录屏了。开始录屏后最上方状态栏会有一个停止录制的按钮,按一下就可以停止录制。视频或者截图文件会自动保存在桌面。
但是,系统自带的录屏无法录制到电脑的声音,在最右边的选项中也只能看到麦克风的选项,也就是说要么没声音,要么录的就是你说的话,反正你电脑播放的声音我们是录不到。
录制系统声音的解决方案
接下来严格按照步骤操作,你就能录到系统的声音了。
首先在下载安装Loopback这个软件(有能力的请支持正版),打开软件点击右上角的trial license输入提供的激活码激活软件。
软件界面长这样:
假设我们要录制浏览器播放的视频(就选择录制全屏好了),在Loopback界面的sources点击加号,选择你使用的浏览器(我用的是edge),当然不一定是浏 ...
R语言-分析与绘图(3):可视化入门
上一篇:R语言-分析与绘图(2):使用rvest库抓取和分析网页信息
@Keren Wang:函数名称不用记,用的时候可以查;但是为了对名称、功能和用法有印象,还是建议多写代码训练一下肌肉记忆,不然考试的时候可能查也来不及。
学习如何收集和分析数据是商业/金融/市场领域中的一项关键技能,但是如果没有有效表征结果的能力,这些数据可能毫无意义。“数据可视化”一词描述了将信息在可视化的上下文中展现出来的过程,以帮助我们以更完整和有效的方式理解数据。 我们可以用图表可以显示多个变量之间的关系,或者以图形方式突出显示不同数据集之间的差异。
本模块介绍了一些使用R绘图的基本技术,特别是扩展了使用tidyverse工具包中的ggplot2的知识。我们将使用来自NASA系外行星档案的真实天文数据来支持本章节的数据可视化学习。除了我们介绍到的内容,你也可以在 R cookbook for graphs 获取有用的学习资源。
首先,我们加载tidyverse库并读取行星数据表planets.csv。在提前被告知该表有32行是表头(介绍表格的内容,而非有用的数据)的情况下,我们使用read_delim() ...
R语言-分析与绘图(2):使用rvest库抓取和分析网页信息
上一篇:R语言-分析与绘图(1):使用tidyverse工具包处理数据
并不是所有网站都会提供可下载的数据文件,因此在某些场景下需要我们使用rvest工具包去爬取网页上展示出来的数据并整理成R或者说tidyverse可以处理的数据格式。可以理解成实现简单的爬虫。
rvest工具包
官方文档对于rvest的介绍非常简洁:
rvest帮助你从网页中抓取信息。它被设计成与magrittr一起工作,使其更容易表达常见的web抓取任务,灵感来自于像beautiful soup这样的库。
虽然没听说过magrittr这个东西,但是beautiful soup我是听说过的。所以在我的理解下,rvest大抵就是一种html解析器。它独立于上一次的tidyverse,所以需要单独安装(也需要安装其依赖的xml2)然后导入:
123install.packages(c("rvest", "xml2"))library(tidyverse)library(rvest)
网站的页面一般使用html(超文本标记语言)书写,为了浏览器能成功解析并展示内容,html的各个 ...
R语言-分析与绘图(1):使用tidyverse工具包处理数据
上一篇:在MacOS上安装以及使用Jupyter Notebook运行R语言
给媳妇@Keren Wang整理的一点学习笔记。希望可以帮你把这部分内容掌握透彻。
tidyverse和鹦鹉书
悉尼大学*OLET1601 Analysing and Plotting Data: R (Online)*的学习路线是先从tidyverse这个工具包开始。关于这个工具包,网上的中文资料几乎没有,但是细心的同学会发现OREILLY经典的《R for Data Science》猫头鹰鹦鹉书就是围绕着tidyverse展开的。事实上,这本书的作者、RStudio首席科学家Hadley Wickham就是tidyverse和ggplot2的作者。所以其实除了官方的英文文档以外,中英文版本的猫头鹰鹦鹉书也是非常理想的参考资料。英文版本的可以在线阅读,中文版本的我上传了一版pdf,有需要的自取,如有侵权请联系本人删除。
如果是在本地环境而非在线练习网站上运行tidyverse相关代码,我们需要在R语言中安装这个工具包:
1install.packages("tidyverse")
需要 ...
Leetcode 1.两数之和 & 15.三数之和
两数之和(Two Sum)——梦开始的地方
题目链接:1. 两数之和
这就是单词表里的Abandon Abort一类的存在,helfront world新手体验局,没啥好说的,我也没啥新颖的解法,遍历元素然后HashMap查表匹配target - nums[i]就好了。
1234567891011121314151617class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); int[] res = new int[2]; for(int i = 0; i < nums.length; i++) { if(map.containsKey(target - nums[i])) { res[0] = map.get(target - n ...
在MacOS上安装以及使用Jupyter Notebook运行R语言
本指南适用于MacOS 10.13及以上的系统。不确定有没有用的环境依赖是xcode commandline tools,不嫌麻烦可以提前装一下,很多东西都要用到这个。
1xcode-select --install
走流程介绍一下R
R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为R),现在由“R开发核心团队”负责开发。R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。
R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面,其中RStudio是最为广泛使用的集成开发环境。
环境配置过程
安装Anaconda
如果已经安装过了(打开终端试试conda --version命令),就直接看下一部分。
按照我的习惯,一般是用脚本安装。 ...
Leetcode 384.打乱数组
题目链接:384. 打乱数组 - 力扣(LeetCode)
先从一道没什么技术含量的题开始了。本题引入了Fisher Yates洗牌算法原理,其实质是相同概率下的元素选取和交换:从后向前(或从前向后)遍历数组,将当前遍历到的元素与其前面(后面)的任意数字交换后固定不变。取随机数的过程调用了java的Random类。
12345678910111213141516171819202122232425262728293031323334353637// java解法——从后向前import java.util.*;class Solution { private int[] ori; private int[] nums; public Solution(int[] nums) { this.nums = nums; this.ori = nums.clone(); } /** Resets the array to its original configuration and retu ...