<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangbichen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangbichen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangbichen]]></copyright><item><title><![CDATA[Hierarchical Attention Networks for Document Classification阅读报告]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/119879865</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/119879865</guid><author>wangbichen</author><pubDate>Tue, 24 Aug 2021 22:00:57 +0800</pubDate><description><![CDATA[HAN网络：
按照我的理解HAN网络是用于文本分类的，是对文本的一个向量表示。但表示过程是层次化的。
摘要
HAN网络有两大特点，1HAN是层次化的模型，可以暗示了文本本身具有的层次化特征2.使用了两级注意力机制，允许关注更重要的信息。在六个大型分类任务上都取得了良好的成绩。
介绍
文本分类是NLP的基本任务。目标是为一个文本联系一个标签。传统分类方法基于稀疏的从词特征，比如n_gram，再放入SVM中。如今神经网络已经在其中大规模应用。
虽然神经网络方法已经足够有效，但这篇文章表名，如果把文本结构集成到网]]></description><category></category></item><item><title><![CDATA[Convolutional Neural Networks for Sentence Classification阅读梗概]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/119841231</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/119841231</guid><author>wangbichen</author><pubDate>Sat, 21 Aug 2021 17:27:46 +0800</pubDate><description><![CDATA[开端
本人有幸加入哈工大赛尔NLP实验室。慢慢学习与NLP有关的知识。这篇论文是要求阅读项目中的一篇。本文也不算翻译，只是总结每一部分的重点。我希望能够通过这种写博客的方式巩固自己的知识，也和大家一起分享。
综述
这篇论文介绍的是在word2vec上预训练词向量使用卷积神经网络完成句子级别的分类任务。简单的CNN使用静态的词向量可以达到多个好结果在多任务上。如果进一步允许学习词向量能够获得更好的表现。
介绍
介绍部分介绍了深度学习模型在计算机视觉和语音识别获得了很好的成果。许多深度学习方面的研究都使用了从语]]></description><category></category></item><item><title><![CDATA[泛型类型擦除的愚蠢]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/106591090</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/106591090</guid><author>wangbichen</author><pubDate>Mon, 08 Jun 2020 18:37:30 +0800</pubDate><description><![CDATA[一.泛型的通配符与object
嘛，今天翻看了一下以前的程序的warning，虽然都测试完了，但还是有warning。看到一个有趣的事情，有一个泛型还是原始类型没有进行处理。本着消除warning的原则，我让eclipse推断一下类型参数，没想到推断出了编译错误。于是我又改成了?通配符，希望勉强给一个万能类型参数，结果还是有编译问题。只好放在那里勉强能跑。
感觉有点儿迷惑，以前觉得java类型擦除后，原始类型，无界通配符，Object限定类都是一回儿事。
PlanningEntryAPIs method =]]></description><category></category></item><item><title><![CDATA[JUL日志简易上手使用（上）]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/106264487</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/106264487</guid><author>wangbichen</author><pubDate>Thu, 21 May 2020 18:58:34 +0800</pubDate><description><![CDATA[一JUL是什么？
java.util.Logging 看名字就知道是Java原生的日志框架。不需要使用第三方库，小型简单，是他的优点，也是我为什么选择学习并记录这个日志类。
二JUL框架
JUL一般包含
Logger(记录器) ：我们通过logger的api发布日志，logger也是我们日志程序的一个入口。
Handler:logger关联一个handler,logger把日志交给handler处理，handler负责做记录。handler的具体实现决定了日志处理方式。这么设计感觉有一点儿体现了策略设计模式]]></description><category></category></item><item><title><![CDATA[探究一下try返回后finally还能返回是怎么在java虚拟机实现的？]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/106151989</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/106151989</guid><author>wangbichen</author><pubDate>Sat, 16 May 2020 00:37:41 +0800</pubDate><description><![CDATA[一.JAVA部分字节码
上次听说吧，好像finally能覆盖return 嗯？在我学习中从来没有return后还能执行的东西。感觉有点儿见鬼。想看看它的机器码长什么样子？
我想知道究竟是在函数中return后又执行的finally的return?还是一起执行取finally作为结果？还是只执行finally的return?
不幸的是JAVA使用了JAVA字节码而不是汇编，但看起来好像理解了汇编这也没什么难的.
嘛，幸运的是我只想看看JAVA字节码finally双返回是怎么编译的，了解一点儿就行了。
二.反编]]></description><category></category></item><item><title><![CDATA[软件构造第六章——面向健壮与正确的软件设计上]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/106063451</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/106063451</guid><author>wangbichen</author><pubDate>Mon, 11 May 2020 22:52:10 +0800</pubDate><description><![CDATA[一.正确性与健壮性
健壮性：程序在用户非法输入下，非法环境下表示正常的程度，也可以叫鲁棒性。
面对用户输入错误时，要能提示错误，处理未期望行为，并且应该要显示有助于DEBUG的错误信息。
健壮性原则
1.伯斯塔尔原则：对自己严格，对他人宽容。
封闭全部细节，考虑所有情况。
正确性：程序按照spec执行的能力。正如第二章就说明的，spec是决定正确性的。
与健壮性对比
1.健壮性倾向于用户，容纳用户的输入错误。
正确性倾向于开发者，对不符合spec的输入任意处理。
2.健壮性倾向于对外接口，正确性倾向于对内实]]></description><category></category></item><item><title><![CDATA[软件构造第五章——面向可维护性的设计模式]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105817143</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105817143</guid><author>wangbichen</author><pubDate>Tue, 28 Apr 2020 18:08:40 +0800</pubDate><description><![CDATA[一.五大设计模式原则
SRP：单一职责原则
OCP：开闭原则
LSP:  里氏替换原则
ISP:   接口隔离原则
DIP：依赖倒置原则
这些设计模式原则之前我的博客上应该都写过，上课的时候专门把五种SOILD组合在一起，面向软件维护。
二.面向可维护性的设计模式
1.面向可维护性的创建模式
     创建模式解决的是软件运行中构建对象的问题，上次没有提过。

工厂模式
    问题：客户端不知道...]]></description><category></category></item><item><title><![CDATA[软件构造第四章——委派，六种复用设计模式]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105775336</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105775336</guid><author>wangbichen</author><pubDate>Sun, 26 Apr 2020 20:36:15 +0800</pubDate><description><![CDATA[一.委派的定义
委派的定义很简单，一个对象请求另一个对象的功能罢了。
就是自己不干活,而交给别人干,自己负责调度，负责管。委派本身在我看来并不强大，强大的是委派与继承的共用。
二.委派的分类
委派中A对象调用B对象，根据B对象的来源不同，可以分为不同的种类。
依赖：B对象是动态传入A，并且A不保存B对象。B对象只是与A的方法依赖。这是临时性的委派。
关联: B作为A的成员被保存。
关联分为两类：组...]]></description><category></category></item><item><title><![CDATA[软件构造第四章——复用软件评价与开发]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105586910</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105586910</guid><author>wangbichen</author><pubDate>Sun, 26 Apr 2020 19:18:54 +0800</pubDate><description><![CDATA[复用软件评价
一.什么是软件复用
1.面向复用性编程：开发可以服用的软件
2.基于复用编程:利用可复用的软件开发
开发可复用的软件会导致：开发成本高，泛用性强，性能好。
度量可复用性
1.复用的频繁程度
2.复用的代价程度
二.复用层面
1.源码级复用:对源代码进行复制修改。
2.模块层面复用：对已有的类进行复用。
继承与委托技术，扩展现有类
3.库层面的复用:API复用
库:提供一组类与方法
4...]]></description><category></category></item><item><title><![CDATA[通过一个软构问题了解System.out.println]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105439907</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105439907</guid><author>wangbichen</author><pubDate>Fri, 10 Apr 2020 19:45:59 +0800</pubDate><description><![CDATA[一.一个问题
突然看到一个问题，看了别人的答案觉得不是很理想。好像扭曲了问题核心。
	public static void main(String[] args) {
		
      if(...)
      {
    	  System.out.println("a");
      }else
      {
    	  System.out.println("b");
      }...]]></description><category></category></item><item><title><![CDATA[软件构造——equals方法与hashcode方法]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105368366</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105368366</guid><author>wangbichen</author><pubDate>Tue, 07 Apr 2020 18:48:26 +0800</pubDate><description><![CDATA[一.等价性
抽象函数AF：内部表示-&gt;抽象表示的映射。
我们可以基于抽象函数AF定义ADT的等价操作。
等价性是我们定义的自反，对称，传递关系。判断对象是否相等。
二.不可变类型的等价性
我们可以利用AF，若AF映射到的抽象值相等，那么我们就认为对象相等。
如果observer函数所提供的值相等那么也能判定相等。
不论哪种方式，我们都可以看出。等价和ADT内部实现无关都是在观察角度说明的等价...]]></description><category></category></item><item><title><![CDATA[软件构造第三章——ADT设计.方法规约]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105329366</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105329366</guid><author>wangbichen</author><pubDate>Sun, 05 Apr 2020 18:01:42 +0800</pubDate><description><![CDATA[一.方法规约
程序写出来的目的1.给机器看，2.给人看。一个大型项目中一定有程序员的互相交流，而规约就是为了交流存在的。我们不可能考虑所有的情况，所以我们指定一些假设保证我们的程序正确运行需要的内容。我们需要做一些设计决策。为了交流这些东西，我们要书写规约。
规约是使用者与开发者之间的的契约，隔离了具体的细节，让客户端不了解具体实现也能正确调用方法。
二.为什么要写规约？
1.必要性：Bug来自与...]]></description><category></category></item><item><title><![CDATA[软件构造第三章——ADT设计数据类型]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105328679</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105328679</guid><author>wangbichen</author><pubDate>Sun, 05 Apr 2020 16:52:50 +0800</pubDate><description><![CDATA[一.数据类型
正如老师所说，编程比作写文章的时候，数据就是里面的名词。但我觉得这么比喻有点儿不充分，我觉得文章本身就是一种数据类型，尤其像JAVA面向对象来说，把数据，操作，代码绑定的十分紧密。在现实生活中很难找到一个概念与现在我们要探讨的数据相区分，不如说这个概念就是现实世界本身。
我们定义数据类型就是一组值和其上能进行的操作。
而变量就是空间，可存储满足约束的值。
JAVA类型包括基本类型和引...]]></description><category></category></item><item><title><![CDATA[软件构造第三章——ADT的设计细节]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105327985</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105327985</guid><author>wangbichen</author><pubDate>Sun, 05 Apr 2020 16:14:50 +0800</pubDate><description><![CDATA[一.回顾
上一篇我们说了ADT定义，应该遵循的一些原则，表示独立性，不变性，防止表示泄露。这回我认为我们侧重于ADT设计的一些具体内容。
二.RI与AF
一个ADT是定义在一组操作上的数据类型，操作有了以后，我们要实现rep,而rep是具体的，功能是抽象的。我们需要解释如何把具体的rep映射成抽象的表示。
我们把具体的rep值空间称之为R空间，把抽象的值称为A空间。
比如说：我们要表示一个小写字母...]]></description><category></category></item><item><title><![CDATA[软件构造第三章——ADT的设计综述]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105325845</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105325845</guid><author>wangbichen</author><pubDate>Sun, 05 Apr 2020 15:39:53 +0800</pubDate><description><![CDATA[一.抽象数据类型
抽象数据类型是一种定义在操作上的数据类型。与以前的数据类型不同，ADT倾向于操作，而不是具体的存储逻辑。对于JAVA来说，就像LIST抽象接口，我们只需要存，取，索引操作，而对具体的链表还是数组很多情况我们不需要考虑。
二.ADT类型与操作分类
ADT设计中不可变类型与可变类型的决定，是很重要的设计原则。
可变类型要求提供改变数据值的方法（这个值请参考下文）。
不可变类型中不提供...]]></description><category></category></item><item><title><![CDATA[Java设计模式原则]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/105208623</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/105208623</guid><author>wangbichen</author><pubDate>Mon, 30 Mar 2020 21:07:32 +0800</pubDate><description><![CDATA[Java设计模式原则
学了一些设计模式，看完了一把构建用的模式，自己也用了一点儿，感觉到了很多好处。但这些模式都遵循一些模式，自己代码再进行修改明显更简单，扩展也更棒。老师上课也提及了一个里氏替换原则，自己查了一下还有几个设计原则。
这些设计原则只有用到了才能感到他们的意义，代码不可能是一成不变的，也不可能是不修改的。这些原则都是前代软件工程师发现的有意义的东西，我们按照这些原则写的代码能达到很好...]]></description><category></category></item><item><title><![CDATA[Java语言快速上手之类与对象]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/104629897</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/104629897</guid><author>wangbichen</author><pubDate>Tue, 03 Mar 2020 13:27:32 +0800</pubDate><description><![CDATA[一.面向对象编程
按照博主的理解，编程是一个对客观世界建立模型的过程。面向对象编程就是把客观世界的事情看做是对象的沟通，而各个对象划分为不同的种类。
与面向过程相比，这种方法更适合于大型项目的构建与开发。更适合与多人协作模型。
就比如说，要对一个学校的人数统计然后分类然后对于各类做处理做一个程序。在C程序思考中，我们会把数据类型与函数分开，函数接受一个名单数组，然后对于名单数组里的名字进行遍历然后...]]></description><category></category></item><item><title><![CDATA[Java语言快速上手]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/104606248</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/104606248</guid><author>wangbichen</author><pubDate>Mon, 02 Mar 2020 11:39:07 +0800</pubDate><description><![CDATA[写这个博客，是我的老朋友建议的。他希望我能写一写博客来介绍Java语言，虽然我也是个二把手，但我也想写一写。这篇博客会把Java和c捆绑在一起类比介绍。但肯定会损失Java编程的很多好处，可是没关系，这篇文章就是为了Java能够直接上手。先是把C语言中概念比照一下Java，让人直接上手，燃起对Java乐趣。
一.类
Java中的类有点儿像C语言中结构体，我们可以把类当作一种特殊的自定义结构体，但是...]]></description><category></category></item><item><title><![CDATA[JUnit测试框架常用assert]]></title><link>https://blog.youkuaiyun.com/wangbichen/article/details/104588579</link><guid>https://blog.youkuaiyun.com/wangbichen/article/details/104588579</guid><author>wangbichen</author><pubDate>Sun, 01 Mar 2020 11:55:10 +0800</pubDate><description><![CDATA[嘛，最近大致了解了一下JUnit。写个博客总结一下，也是第一个博客。
JUnit是什么东西？
JUnit是一个Java语言的单元测试框架。也是目前最流行的单元测试框架。用来编写和运行可重复的测试，用来测试。
对于JUnit包和类库了，Eclipse应该都已经把这些集成好了，import 一下就好了。但注意不同版本的导入语句不太一样。
断言（assert）
据我所知，JUnit提供了大量的断言方法。...]]></description><category></category></item></channel></rss>