分类: 机器学习

法研杯2019相似案例匹配亚军经验分享

今年五月份,看到了第二届法研杯的比赛介绍,是个法律NLP的竞赛,由于所在公司也是做的法律领域,就用些业余时间做了一下。这也是我第一次参加比赛,最后获得了总榜第二名的成绩,现在把一些比赛经历和心得记录一下。

赛题简介

项目代码见 https://github.com/padeoe/cail2019,报告会 PPT下载链接

关于比赛 Read More.

Bert 模型的使用

本文提供 另一个 html 版本

Bert 是 Google 在 2018 年 10 月提出的一种新的语言模型,全称为 Bidirectional Encoder Representations from Transformers(Bert)。和近年来的一些语言模型譬如 ELMo 不同,BERT 通过在所有层联合调节左右两个上下文来预训练深层双向表示,此外还通过组装长句作为输入增强了对长程语义的理解。Bert 可以被微调以广泛用于各类任务,仅需额外添加一个输出层,无需进行针对任务的模型结构调整,就在文本分类,语义理解等一些任务上取得了 state-of-the-art 的成绩。

Bert 的两种用法

Bert 的论文中对预训练好的 Bert 模型设计了两种应用于具体领域任务的用法,一种是 fine-tune(微调) 方法,一种是 feature extract(特征抽取) 方法。

Read More.

在windows 10的Ubuntu子系统使用Pytorch

Pytorch 不支持 Windows,不过 Windows 10 提供了 Ubuntu 子系统,可以提供近乎原生的 Linux 环境,虽然并不是一个好的选择,但我们仍然可以通过 Ubuntu 子系统来运行 Pytorch 程序。

需要准备

  • Windows 10
  • Pycharm 专业版

基本思路

  • Windows 10 安装 Ubuntu 子系统
  • 子系统开启 SSH
  • Pycharm 编写 Python 代码,使用专业版的上传代码到服务器的功能,将 Python 代码通过 sftp(SSH File Transfer Protocol) 上传到本地 Ubuntu 子系统运行调试。
    Read More.

深度森林

本文是 MLA2017会议上周志华关于深度森林报告的一个笔记。本文的另一个 html 版本。周志华老师花了很大一部分时间谈了谈深度森林背后的一些思考,受益良多。会议 ppt 在 MLA官网

首先,周志华回顾了深度学习的一些基本问题

深度学习是什么?

Deep Learning =? Deep neural networks (DNNs)

当今的深度学习,当前几乎等同于深度神经网络(DNNs)。就是把神经网络的层数加深。周志华认为深度学习的内涵需要思考以下问题

1.神经网络为何要加深

对于神经网络,提升模型复杂度可以提高学习性能。当然,复杂度提高之后一方面容易出现过拟合,因此深度学习同时需要提升数据量。另一方面训练过程变得困难,因此需要很多 tricks 。

但是有一个基本问题就是,如何提升模型复杂度?
Read More.

向量语义学(Vector Semantics)

本文是以文末参考文献[2]为主要参考的读书笔记,建议读者阅读参考文献[2],比本文高明多了。

由于wordpress的markdown转换不是很好看,可查看本文的另一个html版本

基本名词

词条(Lemma)或引用形式(citation form)

指的是一个词典或者词库中的一个单词条目。表示了一个词的基本形式和大致的含义。譬如对于 sing、sung、sang,它们的 Lemma 都是 sing,carpets 的 Lemma 是 carpet。
Read More.

NLP基础与N-Gram模型

wordpress的markdown生成的格式不是很好看,本文另外一个html版 

本文就是个读书笔记,建议读者阅读文末参考文献2和3,比本文不知高到哪儿去了。

自然语言处理的概念

  • 认知角度:理解语句
  • 实践角度:生成语句

自然语言处理的两大途径

规则方法

被称为理性主义方法,主要依赖于人的总结。基于人工整理的 CFG (上下文无关文法,Context-Free Grammar) 规则,给出解决方案。

test

统计方法

被称为经验主义方法,主要依赖于对数据的总结。从数据入手,利用统计机器学习方法解决问题。例如:通过自动学习得到PCFG(概率上下文无关文法),通过概率模型预测句法分析结果。

经验主义方法-统计方法

统计自然语言处理(Statistical NLP)

我们主要采用统计方法来进行机器学习。因此 统计自然语言处理的基本套路: – 问题形式化:将歧义问题转换成分类预测问题 – 语言的表示,建模:譬如n元模型 – 参数训练方法 – 有效的解码、推断

自然语言处理的基本框架

  • 词层面
    • 语言模型
    • 分词
    • 词性标注(POS)
  • 语法层面
    • 句法解析
  • 语义层面
    • 命名实体识别(NER)
    • 语义角色标注(SR)
  • 应用层面
    • 文本分类
    • 机器翻译
    • 自动问答
    • 情感分析

n元模型

统计语言模型

统计语言模型(Statistical Language Model)是一种History-based Model。 P(W)=P(w1w2…wn)=P(w1)P(w2|w1)
P(w3|w1w2)…P(wn|w1w2…wn-1)
定义:统计语言模型是用来刻画一个句子(词串序列)存在可能性的概率模型

该模型认为,语句中当前词是可以通过之前的词预测的。当然这个假设其实有些不切实际的,因为不可能总是通过过去的词预测将来的词。

Read More.