Kyon Huang 的博客

Github 连接不稳定,请科学上网以获取最佳访问效果

0%

5 月 6 日刚从杭州回到武大准备毕业答辩,得知赫赫有名的杨强老师第二天将来武大,介绍他带领的微众银行人工智能团队在联邦学习上的一些工作和思考。我们实验室的研究方向包括迁移学习的应用,而杨强老师是迁移学习领域的领头人,因此一定是要前往聆听的。老师的讲座内容没有很多算法模型上的硬核知识,但也非常有宏观上的启发性。下面,我基于讲座的内容笔记及个人思考做一个整理。

阅读全文 »

一直以来感觉自己对 LSTM 的理解缺了点什么。这次看到一篇不错的博客 Understanding LSTM Networks,对 LSTM 的机制和公式有逐条的解释。正好最近手头的工作也和门机制有一定联系,因此决定翻译一下,帮助自己理解和记忆公式。主要靠意译,省略了一点无关紧要的内容,有条件可以自己看看原文。

阅读全文 »

在保研尘埃落地、回学校参加院队热身赛结果弄伤膝盖、从十一假期养到现在,终于提笔开始写这一篇博客。现在已经是十月中旬,开学都已经一个半月了,但对我来说,大四似乎才刚刚开始。且简单地和大家分享一下我保研的结果和做出决定的一些想法,也给自己即将面临的新挑战打个气。

阅读全文 »

如果想要开始研究基于深度学习的自然语言处理,你很难逃开 Word2vec 这一最为经典的词嵌入学习算法。然而,想要透彻理解 Word2vec 又并非易事。因此,我写这篇博文,力图叙述清楚 Word2vec 的原理,以对学到的知识做一个梳理。

阅读全文 »

《利用Python进行数据分析》是一本非常不错的 Cookbook。早在去年年底的时候我就一边看一边记录一遍敲代码,阅读完比较重要的章节,整理了这篇笔记。有时候有些 API 忘记了,就翻看查找,比直接看 pdf 要方便。现在为了查找更方便,将这篇笔记迁移到博客上来。

阅读全文 »

原文链接:Deep Learning for Sentiment Analysis: A Survey

作者:Lei Zhang, Shuai Wang, Bing Liu

简介:该文首先对深度学习的技术进行了概述,然后对基于深度学习的情感分析研究进行了全面的综述。

选读原因:之前想把手头情感分析的工作再进一步推动一下,因此选择在 arXiv 上找一篇相关综述进行阅读。同样,也是对自然语言处理中的一些概念和技术的了解和复习。这篇综述相对较新,质量很高,而且作者之一刘兵老师是情感分析领域最有影响力的学者之一。当然,综述只是帮助对某一研究领域建立一个初步的印象,要想真正开始深入还是得读海量的 paper + 选择复现。这篇综述中对相关工作建立表格详细介绍,因此原文仍值得一看。

研究概况

研究背景

情感分析(Sentiment analysis)或意见挖掘(Opinion mining)是对人群对于产品、服务、组织、个体、问题、事件、话题等实体的意见、情感、情绪、评价、态度的计算研究。鉴于网络社交媒体的风行,我们拥有了海量的情绪化数据。情感分析已经成为自然语言处理中最有吸引力的研究领域之一,它与管理科学、社会科学领域有交集。

早期的情感分析技术包括监督方法(支持向量机、最大熵、朴素贝叶斯等监督机器学习方法)和无监督方法(包括利用情感词典、语法分析和句法模式的各种方法),而深度学习走红后,其应用到情感分析的出色效果催生大量基于深度学习的情感分析研究。

阅读全文 »

简单地复习一下数据库系统。重在思想,基本不会涉及到 SQL 语句,有需要可以在文末的参考资料中找到相应资料。

数据库简介

基于文件系统的局限根源

基于文件的系统存在的局限性(分离孤立、冗余、依赖性、文件格式不相容)可以归结为两个原因:

  • 数据的定义被嵌入到应用程序中,而不是分开和独立地存储;
  • 除了应用程序规定之外的那些数据访问和操作无法得到控制。

因此,引入数据库和数据库管理系统。

数据库与数据库管理系统

  • 数据库:为满足某个组织机构的信息要求而设计的一个逻辑相关数据及其描述的共享集。
    • 数据库是“逻辑相关的”,当分析一个组织需要的信息时,总是试图找出实体、属性和联系;
    • 实体是组织中一个独立的、将要在数据库中体现出来的对象(人、地点、东西、概念、事件);
    • 属性描述我们想要记录的对象的某一方面的特性;
    • 联系描述实体之间的关联。
  • 数据库管理系统(DBMS):一个支持用户对数据库进行定义、创建、维护及控制访问的软件系统。
    • 允许用户定义数据库,通常是通过数据定义语言(DDL)
    • 允许用户在数据库中对数据进行增删改查,通常通过数据操作语言(DML),最常见的查询语言是结构化查询语言(SQL)
    • 提供数据库的受控访问。

DBMS 的功能:

  • 数据存储、检索和更新;
  • 提供用户可访问的目录;
  • 提供事务支持;
  • 并发控制的服务;
  • 恢复服务、授权服务、完整性服务;
  • 提高数据独立性的服务;
  • 支持数据通信。

DBMS 的优点:

  • 受控的数据冗余;
  • 数据一致性;
  • 相同数据量表示更多信息;
  • 数据共享;
  • 增强的数据完整性;
  • 增强的安全性;
  • 强制执行标准;
  • 经济合算的规模;
  • 平衡各种需求冲突;
  • 增强的数据可访问性和响应性;
  • 提高的生产率;
  • 通过数据的独立性增强可维护性;
  • 提高的并发性;
  • 增强的备份和恢复服务。

DBMS 的缺点:

  • 复杂性高;
  • 规模大;
  • DBMS 的费用高;
  • 需要附加的硬件费用;
  • 转化费用大;
  • 性能相对较低;
  • 故障带来的影响较大。
阅读全文 »

“中文短文本情感分析 web 应用”是我带领的小组在《软件工程》这门课的大作业选题。按照这门课大作业的传统风格,就是做一个比较寻常的网站/APP,不过我这次提议另辟蹊径,一是我个人对情感分析这个方面比较感兴趣,想要借此机会进行了解和实践;二是组内成员都志在继续深造,做一个带有科研意味的项目或许能为简历添色。

先简单介绍一下我们的项目。该 web 应用可分析用户输入的中文短文本中蕴含的情感,并输出数值化结果。前端使用 Vue.js 开发,后台使用 Flask 开发。算法部分目前包含自主实现的词袋模型和引入的 SnowNLP。项目地址如下(目前服务器关了,想要尝试效果可以将项目 clone 到本地,照着 README 运行):

截止这篇博文写作时,这个项目算是成型,也在 Github 上获得了 7 个 star。但是也遇到了一些问题,当然最大的问题就是分析效果不好。效果不好的原因包括很多,后文会一一介绍,当然其中一个是我们目前的算法部分还没有涉及到深度学习,不过我正在争取在近期用 LSTM 等实现效果较好的模型。

这篇博文首先会简单介绍情感分析的概念、技术和难点。之后针对我们的项目,详细介绍我们使用的算法、迄今为止遇到的问题和一些改进措施。

阅读全文 »

作为一个软件工程的大三学生,如果要求我立刻回答“面向对象程序设计是什么?”、“面向对象的特性是什么?”等问题,我想我是难以做到的。这是因为我们专业的“面向对象程序设计”这一门课程后有一个“(Java)”,在上这门课的时候我们可能更多地关注 Java 语法,而忽略了面向对象程序设计思想的一些精髓。实际上这些精髓映射出的是软件工程发展过程的智慧成果,只是当时我们什么也不懂。而面向对象程序设计的思想及设计模式的韵味则需要更大的代码量才能一探究竟。总之,这篇复习笔记会比较简洁地重温一下这些精髓的概念,真正去理解面向对象的思想,才会发现这些概念的设计精妙之处。

概念重温

  • 对象:一个自包含的实体,用一组可识别的特性和行为来标识。
  • :具有相同的属性和功能的对象的抽象的集合。
  • 实例化:创建对象的过程。
  • 方法重载:提供创建同名的多个方法的能力,但这些方法需使用不同的参数类型。好处是在不改变原方法的基础上,新增功能。

面向对象

面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。在 OOP 中,不必关心对象的具体实现,只要能够满足用户的需求即可

传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题,首先确定如何操作数据,然后再决定如何组织数据。而 OOP 则把数据放在第一位,然后再考虑操作数据的算法。

面向对象的好处

封装、继承、多态面向对象的三大特性降低了程序的耦合度,从而存在以下优点:

  • 可维护
  • 可复用
  • 可扩展
  • 灵活性好
阅读全文 »

原文链接:基于 Web 的问答系统综述

作者:李舟军,李水华

简介:详细介绍了基于 Web 的问答系统的研究背景、架构及其问题分析、信息检索、答案抽取这三大关键技术的研究进展,并分析了基于 Web 的问答系统所面临的问题。

选读原因:选了一篇中文的基于 Web 的问答系统综述,和手头上工作比较贴近,来对接下来的研究方向有个大致的了解和思考,因此记录也比较详细。

阅读全文 »