最近听的歌第二期
说忘记更新都是假的,单纯的摆烂,极致的享受,来看看最近在听什么歌吧
《再见以前先说再见》
第一次听还没有那么喜欢,但是越听越上头
《黑色柳丁》+《今天晚间新闻》+《dear god》
很有连续性的三首歌
《Katrina》
更喜欢老大的这一个版本
《寂寞的季节》
又到听这首歌的时间了吗?
《月亮代表谁的心》
味大,无需多盐。非常好的改编,使我的mooncake旋转
《今天你要嫁给我》
中国人自己的love story?看了下面的视频才觉得写出这首歌的简直是甜菜
CS224N_hw_a1
Part 1: Count-Based Word Vectors
大多数词向量模型都是从以下想法开始的:
你应当通过一个词的同伴来认识这个词(Firth, J. R. 1957:11)
许多词向量实现是基于这样一个理念,即相似的词(即近义词)会在相似的上下文中使用。因此,相似的词通常会与一组共同的词(即上下文)一起被说出或写出。通过检查这些上下文,我们可以尝试为我们的词开发嵌入。基于这一直觉,许多“老派”构建词向量的方法依赖于词频统计。这里我们将详细说明其中的一种策略,即共现矩阵。
Co-Occurrence
共现矩阵计算在某种环境中事物共同出现的频率。给定文档中某个词 wiw_iwi,我们考虑围绕wiw_iwi的上下文窗口。假设我们的固定窗口大小是n,那么这个窗口包括该文档中 wiw_iwi的前n个词和后n个词,即词 wi−nw_{i-n}wi−n, … , wi−1w_{i-1}wi−1和wi+1w_{i+1}wi+1, … , wi+nw_{i+n}wi+n。我们构建一个共现矩阵M,这是一个对称的词与词之间的矩阵,其中MijM_{ij}Mij是所有文档中词 ...
tree-sitter生成语法树
Tree-sitter是什么
Tree-sitter 是一个解析器生成工具和增量解析库。它可以为源文件构建具体的语法树,并在编辑源文件时有效地更新语法树。有以下特点
通用 足以解析任何编程语言的通用性
快速 能够在每次编辑源码时及时解析
强大 即使存在语法错误,也足够强大以提供有用的结果
无依赖 所以那些用纯 C 编写的运行时库(runtime lib),可以嵌入到任何应用程序中
通过tree-sitter可以将目标语言实时解析为语法树。
安装
未完待续…
BM25简易实现
什么是BM25
BM25算法是一种常见用来做相关度打分的公式,思路比较简单,主要就是计算一个query里面所有词和文档的相关度,然后在把分数做累加操作,而每个词的相关度分数主要还是受到tf/idf的影响。
BM25算法是常见的用来计算query和文章相关度的相似度的。其实这个算法的原理很简单,就是将需要计算的query分词成w1,w2,…,wn,然后求出每一个词和文章的相关度,最后将这些相关度进行累加,最终就可以的得到文本相似度计算结果。
Score(Q,d)=∑inWi⋅R(qi,d)Score(Q,d) = \sum_{i}^{n}W_{i}\cdot R(q_{i},d)
Score(Q,d)=i∑nWi⋅R(qi,d)
首先Wi表示第i个词的权重,这里一般会使用TF-IDF算法来计算词语的权重这个公式第二项R(qi,d)表示我们查询query中的每一个词和文章d的相关度。一般来说Wi的计算用逆项文本频率IDF的计算公式:
IDF(qi)=logN+0.5n(qi)+0.5IDF(q_i) = \log \frac{N+0.5}{n(q_i)+0.5}
IDF(qi) ...
软件系统设计复习
24软件系统设计
孙顾燚 - v3.0
总体来说考试的简答题还是考察的基础知识,部分题目需要结合知识思考
详细设计部分的设计题不会非常难,但是今年的架构设计题直接gg了
由于博客的markdown不支持渲染[!important],所以博客上看这篇文章怪怪的
24考试回忆
代码违背了什么设计原则,如何修改
设计原则之间的联系
ASR是什么?ASR来源
checklist 7个categories
SOA基本原则,对质量属性的影响
微服务部署模式的上下文,需求,模式,优缺点
Risks,Senstivity Points,Trade-Off Points分别是什么?各举一个例子。
一个在线购物平台,用了策略模式但是有问题,分析问题出在哪里,如何修改
装饰器能否作为组合模式的变种?(忘了位置了,也可能反过来
架构设计大题,需要画不同的views
架构部分 - zh部分
[!IMPORTANT]
【2019】Architecture,structure和Design的区别?
Design 包含 Architecture,Architecture 包含 Structure
结 ...
数据库复习
24数据库开发复习
SEBugMaker version1.0
7-8道题
20%上机+80%期末
编程题
SQL 编程题
3道题(数值、时间、字符串3选2),记住常见函数
数值考虑空值
时间,索引,日期的差
中位数,众数不太容易考
标注使用的数据库
递归查询可能会考一个
可能会用到外连接,数值?
注意函数用对
NULL处理
MySQL提供了三大运算符:
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
example
12select * , columnName1+ifnull(columnName2,0) from tableName;# columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnN ...
最近听的歌第一期
最近听的歌第一期
SEBugMaker最新栏目《最近听的歌》第一期重磅来袭,排名不分先后
NO.1 《飞机场的10:30》- 陶喆
NO.2 《心乱飞》- 陶喆
NO.3 《手拖手》-方大同
NO.4 《小小虫》-方大同
NO.5 《Runaway》- 陶喆
NO.6 《天天》- 陶喆
NO.7 《二十二》- 陶喆
NO.8 《迷宫》- 依加
An Empirical Study on the Usage of Transformer Models for Code Completion
代码补全相关论文 An Empirical Study on the Usage of Transformer Models for Code Completion
代码补全技术大多在预测下一个token的场景中进行评估,只有少数例外扩展到了预测整个代码语句。因此,对于最先进的代码补全方法在更具挑战性的场景中(例如必须生成整个代码块)性能知之甚少。
作者进行了大规模研究,探索了最先进的基于 Transformer 的模型在支持不同粒度级别代码补全方面的能力,包括单个token、一条或多条完整语句,甚至整个代码块(例如 for 循环的迭代块)。我们在代码补全任务中实验了两种基于 Transformer 模型的几种变体,即 RoBERTa 和 Text-To-Text Transfer Transformer(T5)。结果显示,基于 Transformer 的模型,特别是 T5,是代码补全的可行解决方案,其最佳预测率(perfect prediction)从要求模型猜测整个代码块时的约 29% 到在较简单的场景中(从同一代码语句中掩盖[masked]少量标记)的约 69%。
Intro ...
ReACC: A Retrieval-Augmented Code Completion Framework
代码补全相关论文 ReACC: A Retrieval-Augmented Code Completion Framework
一些术语:https://developer.baidu.com/article/details/2686964
Intro
当前对于代码补全的方法仅仅关注文件或者项目内部的代码上下文,但是研究表明程序员倾向于复制来重用现有的代码,所以文章中将输入范围(information scope?)从仅输入文件扩大到了大型的代码库。作者提出 ReACC – a Retrieval-Augmented Code Completion framework,并推测使用具有相同语义的代码作为辅助信息有利于预测后续的code tokens。
在作者的框架下,代码补全任务可以被重新制定(reformulated)为:给定一个用于搜索的源代码库和一份未完成的代码片段,利用未完成的代码片段作为query在源代码库中检索相似的代码片段,然后利用检索到的代码片段来预测后续的code tokens。
ReACC包含两个核心的组件:
用于代码-代码检索的双编码器模型(dual-enco ...
0516Honor笔试
问题一
给定一个数组,计算出现次数超过两个的数字的和
12345678910111213141516171819202122232425import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class question1 { public static void main(String[] args) { Scanner in = new Scanner(System.in); HashMap<Integer, Integer> map = new HashMap<>(); String s = in.nextLine(); String s1 = s.substring(1, s.length() - 1); String[] num = s1.split(" "); for(String q:num){ ...