摘要: 算法&开发 机器学习 李宏毅课程笔记系列 论文翻译 SGD sklearn学习与实践系列 annoy高维空间求距离 pytorch学习笔记2 - 计算图与autograd pytorch学习笔记1 - 张量的创建与运算 自然语言处理 基于HMM实现词性标注(准确率93%) 论文翻译 DeepSpee 阅读全文
posted @ 2020-12-31 11:42 Yanqiang 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 论文地址 百度的 DeepSpeech2 是语音识别业界非常知名的一个开源项目。 本博客主要对论文内容进行翻译,开源代码会单独再写一篇进行讲解。 这篇论文发表于2015年,作者人数非常多,来自于百度硅谷AI实验室语音技术组。 论文下载地址:https://arxiv.org/pdf/1512.025 阅读全文
posted @ 2020-08-25 13:25 Yanqiang 阅读(1970) 评论(0) 推荐(2) 编辑
摘要: Flask介绍 Flask是一个非常轻量级的Python Web框架。使用Flask可以很容易地部署算法服务,通过HTTP方式对外提供API响应接口。 以敏感词检测算法为例。 如果要部署其他算法,代码对应做一些修改既可。 部署代码 from flask import Flask, request f 阅读全文
posted @ 2020-08-20 15:09 Yanqiang 阅读(2082) 评论(0) 推荐(0) 编辑
摘要: 任务概述 敏感词检测是各类平台对用户发布内容(UGC)进行审核的必做任务。 对于文本内容做敏感词检测,最简单直接的方法就是规则匹配。构建一个敏感词词表,然后与文本内容进行匹配,如发现有敏感词,则提交报告给人工审核或者直接加以屏蔽。 当然也可以用机器学习的方法来做,不过需要收集及标注大量数据,有条件的 阅读全文
posted @ 2020-08-19 17:53 Yanqiang 阅读(2842) 评论(0) 推荐(0) 编辑
摘要: 语言模型 语言模型是根据语言客观事实对语言进行抽象数学建模。可以描述为一串单词序列的概率分布: 通过极大化L可以衡量一段文本是否更像是自然语言(根据文本出现的概率): 函数P的核心在于,可以根据上文预测后面单词的概率(也可以引入下文联合预测)。 其中一种很常用的语言模型就是神经网络语言模型。 神经网 阅读全文
posted @ 2020-08-19 14:43 Yanqiang 阅读(1051) 评论(0) 推荐(0) 编辑
摘要: 李宏毅课程学习笔记总结,以及作业,参考论文总结。 阅读全文
posted @ 2019-07-31 09:06 Yanqiang 阅读(2028) 评论(0) 推荐(0) 编辑
摘要: import sys import requests import bs4 import re import urllib import os import random class Queue(object): """队列 """ def __init__(self): self.items = 阅读全文
posted @ 2021-03-12 14:22 Yanqiang 阅读(2363) 评论(0) 推荐(0) 编辑
摘要: 这道题适合写个脚本来解。 首先从百度地图API下载一份行政区划数据。 开发资源 | 百度地图API SDK 然后做一个简单的数据统计就可以啦~ 行政区划同一级同名的: import pandas as pd df = pd.read_csv("行政区划乡镇清单202003.csv") dic = { 阅读全文
posted @ 2021-01-24 21:48 Yanqiang 阅读(337) 评论(0) 推荐(0) 编辑
摘要: Lambda表达式 Lambda表达式由三个部分组成:第一部分为一个括号内用逗号分隔的参数列表,参数即函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部分为方法体,可以是表达式和代码块。 可选的类型声明:你不用去声明参数的类型。编译器可以从参数的值来推断它是什么类型。 可选的参数周围的括 阅读全文
posted @ 2021-01-16 23:58 Yanqiang 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 2. 两数相加 https://leetcode-cn.com/problems/add-two-numbers/ 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假 阅读全文
posted @ 2021-01-11 23:32 Yanqiang 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 6种基本模式 普通模式: 用的编辑器命令,比如移动光标,删除文本等等。 dd删除当前行,dj删除当前行和下一行。2dd(重复dd两次),和dj效果一样。 按 a(append/追加)键或者 i(insert/插入)键进入插入模式。 插入模式: 按 ESC 键回到普通模式。 可视模式: 这个模式与普通 阅读全文
posted @ 2021-01-04 10:32 Yanqiang 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Java基础语法 Hello World 代码 public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld!"); } } 常量定义(编码规范要求为大写): final 阅读全文
posted @ 2021-01-03 20:54 Yanqiang 阅读(84) 评论(0) 推荐(0) 编辑
摘要: Java面试者存在的问题 应聘初级、中级的Java工程师,要求扎实的Java和计算机科学基础,掌握主流框架的使用。 应聘高级Java工程师或技术专家,需要对Java IO/NIO,并发,虚拟机等,要掌握底层源码,并对分布式,安全,性能等领域有进一步的要求。 Java面试者通常存在的问题: “知其然不 阅读全文
posted @ 2021-01-03 14:26 Yanqiang 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 正则表达式 本文主要是通过grep, sed等命令在linux环境下使用正则表达式。 特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:]代表空格和 tab 键 [:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL [:digi 阅读全文
posted @ 2021-01-01 11:10 Yanqiang 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 简单题 206. 反转链表 剑指 Offer 24. 反转链表 https://leetcode-cn.com/problems/reverse-linked-list/ https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/submis 阅读全文
posted @ 2020-12-15 23:40 Yanqiang 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 简单题 面试题03.02 栈的最小值 剑指offer30 包含min函数的栈 155. 最小栈 https://leetcode-cn.com/problems/min-stack/ https://leetcode-cn.com/problems/min-stack-lcci/ https://l 阅读全文
posted @ 2020-12-10 01:53 Yanqiang 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 博客内容有空了再补充。先贴代码。 数据地址:链接: https://pan.baidu.com/s/1-RbHi5xxBwJDG1gqAYUReQ 密码: rkup 完整代码如下: import argparse import time parser = argparse.ArgumentParse 阅读全文
posted @ 2020-12-01 11:54 Yanqiang 阅读(253) 评论(0) 推荐(0) 编辑
摘要: Bash介绍: Bash(GNU Bourne-Again Shell)是一个为 GNU 计划编写的 Unix shell,它是许多 Linux 平台默认使用的 shell。 解释性语言,脚本语言,胶水语言(可以通过将系统调用、公共程序、工具和编译过的二进制程序”粘合“在一起来建立应用)。 Shel 阅读全文
posted @ 2020-11-24 12:27 Yanqiang 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 目录: 1. 2020年9月13日 -- 周赛 2. 2020年10月31日 -- 双周赛 3. 2020年11月1日 -- 周赛 4. 2020年11月8日 -- 周赛 5. 2020年11月28日 -- 双周赛 2020年9月13日 -- 周赛 做对了两道题。 1582. 二进制矩阵中的特殊位置 阅读全文
posted @ 2020-11-08 21:35 Yanqiang 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 目录: 1. 剑指 Offer 03. 数组中重复的数字 -- 简单 2. 剑指 Offer 04. 二维数组中的查找 -- 简单 3. 剑指 Offer 05. 替换空格 -- 简单 4. 剑指 Offer 06. 从尾到头打印链表 -- 简单 5. 剑指 Offer 07. 重建二叉树 -- 中 阅读全文
posted @ 2020-10-26 23:39 Yanqiang 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 自动编码器 encoder和decoder没办法单独训练,但接在一起就可以做无监督学习。 中间压缩了维度的隐藏层叫做bottleneck layer(像颈部一样比较细),两边的权重通常互为转置(可以减少参数量,但不是必须这样的)。 中间的维度肯定是要小于input的,是需要做一下压缩的,不然网络直接 阅读全文
posted @ 2020-08-23 22:49 Yanqiang 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 从one-hot到word embedding 词表示最直觉的做法是1-of-N Encoding, 向量维度和词表大小一样,每个词在其中某一维为1,其他维为0。这种表示法无法体现出词之间的关系。 word class方法是将意思相似或者同种属性的词归为一类,但这种划分太粗糙了,而且需要很多人工设计 阅读全文
posted @ 2020-08-22 20:10 Yanqiang 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 在介绍腾讯词向量时,用到了annoy,这里对annoy的用法详细做一下介绍。 GitHub地址:https://github.com/spotify/annoy Annoy是Erik Bernhardsson在Hack Week期间花了几个下午写的(github原话),全称Approximate N 阅读全文
posted @ 2020-08-21 15:58 Yanqiang 阅读(2272) 评论(0) 推荐(0) 编辑
摘要: 将文件test分包压缩成10M 的文件: tar czf - test | split -b 10m - test.tar.gz 后台运行: nohup tar czf - test | split -b 10m - test.tar.gz & 批量解压缩: cat test.tar.gz* | t 阅读全文
posted @ 2020-08-21 10:45 Yanqiang 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 腾讯词向量介绍 腾讯词向量主页:https://ai.tencent.com/ailab/nlp/zh/embedding.html 词向量下载地址:https://ai.tencent.com/ailab/nlp/zh/data/Tencent_AILab_ChineseEmbedding.tar 阅读全文
posted @ 2020-08-20 21:42 Yanqiang 阅读(12294) 评论(6) 推荐(4) 编辑
摘要: 数据集下载地址 OpenSLR: http://www.openslr.org/resources.php 1.SLR18-THCHS-30 THCHS30 is an open Chinese speech database published by Center for Speech and L 阅读全文
posted @ 2020-08-20 15:34 Yanqiang 阅读(4996) 评论(0) 推荐(1) 编辑
摘要: python在import Flask的时候报错cannot import name 'dump_age' 原因:werkzeug版本不兼容。 解决方法: pip uninstall werkzeug pip install -U werkzeug 阅读全文
posted @ 2020-08-20 11:18 Yanqiang 阅读(521) 评论(0) 推荐(0) 编辑
摘要: print方法的参数 print方法的参数:(在python3的命令行执行help(print)就可以看到) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 将 value 打印到一个输出流,默认的输出流为 sys 阅读全文
posted @ 2020-08-19 16:57 Yanqiang 阅读(3338) 评论(0) 推荐(0) 编辑
摘要: 没有root权限如何通过apt安装deb软件 一般来说使用apt安装软件,必须要有root权限,因为apt安装时需要写 /usr/bin,/usr/lib,/usr/share等目录,而这些目录只有root用户(或有sudo权限)才有写入权限的。 所以要另辟蹊径,换种安装方式。 1. 首先下载包 a 阅读全文
posted @ 2020-08-11 16:38 Yanqiang 阅读(5524) 评论(0) 推荐(0) 编辑
摘要: Hidden Markov Model (HMM) 以前语音识别用的是统计模型,而现在,深度学习的方法有很多思想也还是借鉴的HMM。 X是输入语音序列,Y是输出文字,我们的目标是穷举所有可能的Y,找到一个$Y*$使得$P(Y|X)$最大化。这个过程叫作解码。 根据贝叶斯定律,我们可以把它变成$\fr 阅读全文
posted @ 2020-07-08 17:08 Yanqiang 阅读(795) 评论(0) 推荐(0) 编辑
摘要: Connectionist Temporal Classification (CTC) CTC可以用于线上实时地语音识别,编码器用的是单向的RNN,解码是用MLP来预测文字分布。 编码器将语音输入$xi$编码成$hi$,MLP再对它乘上一个权重,接上Softmax,得到词表V大小的概率分布。 但有时 阅读全文
posted @ 2020-07-08 15:28 Yanqiang 阅读(1561) 评论(0) 推荐(0) 编辑
摘要: 语音识别模型: 语音识别模型主要分为两种,一种是基于seq2seq的,一种是基于HMM的。 seq2seq的模型主要有LAS,CTC,RNN-T,Neural Transducer,MoChA。 本节讲最流行的LAS,就是Listen,Atten,and Spell,典型的seq2seq+atten 阅读全文
posted @ 2020-07-06 20:14 Yanqiang 阅读(1552) 评论(0) 推荐(0) 编辑
摘要: 语音识别中声音和文字的表示 声音:通常表示为一个d维、长度为T的向量序列, 文字:表示为长度为N的token序列(token的共V类),token通常用它在词表中id表示。 token通常有很多种粒度:Bytes < Grapheme/Phoneme < Morpheme < Word Phonem 阅读全文
posted @ 2020-07-06 16:56 Yanqiang 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 课程名称:深度学习与人类语言处理(Deep Learning for Human Language Processing) (自然语言包括文本和语音两种形式,不过自然语言处理大多时候指的是文本处理,所以这门课的名字叫人类语言处理以便区分,因为这门课语音和文本的内容是1:1的) 人类语言处理的终极目标 阅读全文
posted @ 2020-07-06 11:10 Yanqiang 阅读(1144) 评论(0) 推荐(1) 编辑
摘要: 1. 计算图 使用计算图的主要目的是使梯度求导更加方便。 2. 静态图和动态图 TensorFlow是静态图,PyTorch是动态图,区别在于在运算前是否先搭建图。 3. autograd 自动求导 grad_tensors的使用: 4. 逻辑回归 最终结果: 思考: 1. 调整线性回归模型停止条件 阅读全文
posted @ 2020-04-25 10:52 Yanqiang 阅读(1278) 评论(0) 推荐(0) 编辑
摘要: 目录: "1. PyTorch简介" "2. 张量的概念及创建" "2.1 直接创建Tensor" "2.2 依据数值创建Tensor" "2.3 依据概率分布创建Tensor" "3. 张量的操作" "3.1 张量的拼接和切分" "3.2 张量索引" "3.3 张量变换" "4. 实现线性回归" 阅读全文
posted @ 2020-04-22 00:59 Yanqiang 阅读(506) 评论(0) 推荐(0) 编辑
摘要: Anaconda安装 PyCharm安装 PyTorch安装 linux下只需要pip install torch就可以了,windows安装步骤如下 cuDNN的三个文件夹复制到CUDA目录下。检查是否安装成功: # 进入cuda的安装目录下bin目录,执行: nvcc -V # 进入cuda的安 阅读全文
posted @ 2020-04-21 23:56 Yanqiang 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 1.背景知识 one-hot → word class → word embedding 不过传统的word embedding解决不了多义词的问题。 2. ELMO 为了解决上述问题,首先有了ELMO。 它是一个双向的RNN网络,这样每一个单词都对应两个hidden state,进行拼接便可以得到 阅读全文
posted @ 2020-04-07 19:25 Yanqiang 阅读(866) 评论(0) 推荐(0) 编辑
摘要: 1.RNN和CNN的局限性 RNN是seq2seq的模型,RNN不易平行化,如果是单向的话,要输出$b3$,需要先看完$a1, a2, a3$。如果是双向的话,可以看完整个句子。 CNN在高层的时候,可以考虑距离更长的信息,CNN易于并行化。CNN的缺点是,考虑的只是局部内容,要考虑长距信息,需要叠 阅读全文
posted @ 2020-04-07 18:58 Yanqiang 阅读(2048) 评论(0) 推荐(0) 编辑
摘要: 课程笔记 前言 两种可解释性: 局部解释:为什么这种图是猫? 全局解释:猫是什么样子的? 为什么需要可解释机器学习?(打开黑盒) 一般的提升效果的方法就是一顿暴调参数,可解释性可以帮助我们更好地提升模型性能。 其实人也是个黑盒(这个观点太6了)。 可解释机器学习的目标,不需要真正知道模型如何工作,只 阅读全文
posted @ 2020-03-03 17:39 Yanqiang 阅读(1254) 评论(0) 推荐(0) 编辑
摘要: BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构。 传统的RNN网络:最大的问题,因为不能并行计算,所以往往深度不够。 传统的word2vec:同一个词一经训练词向量便确定了下来,缺乏适应不同 阅读全文
posted @ 2020-02-27 16:42 Yanqiang 阅读(816) 评论(0) 推荐(0) 编辑