Git Product home page Git Product logo

book-of-qna-code's Introduction

快速购书

快速购书链接

在线讲解

《智能问答与深度学习》的在线课程由本书作者团队,CSDN 学院和电子工业出版社联合发布【详情链接】。

从0开始深度学习链接

精彩书评

本书不是简单的罗列算法,而是指向了如何让计算机处理语言这样一个有挑战性的话题,以最终构造一个问答系统为目标,充满了好奇和实践精神,是陪伴读者学习人工智能和语言处理的好书。

-- 王小川,搜狗CEO
本书介绍了近年来自然语言处理、信息检索系统和机器阅读理解的成果,带有翔实的示例,对实际应用有很好的借鉴意义,而且从原理上进行了解释,可以帮助读者掌握这些技术,是入门自然语言处理和深度学习的好书。

-- 李纪为,香侬科技CEO

《智能问答与深度学习》随书附带源码

《智能问答与深度学习》 这本书是服务于准备入门机器学习和自然语言处理的学生和软件工程师的,在理论上介绍了很多原理、算法,同时也提供很多示例程序增加实践性,这些程序被汇总到示例程序代码库,这些程序主要是帮助大家理解原理和算法的,欢迎大家下载和执行。代码库的地址是:

https://github.com/l11x0m7/book-of-qna-code

在阅读本书的过程中,各章有示例程序的段落会说明对应代码库的路径。同时,在代码库中,也有文档介绍如何执行程序。

安装依赖软件

快速执行源码的最佳实践是通过 docker 容器,读者需要在计算机中安装

  • Git

Git 是一个分布式版本管理工具,目前很多开源码项目使用它发布和协作,下载地址:

https://git-scm.com/

  • Docker

Docker 是容器技术,容器是一种构建、发布和执行软件服务的标准,容器能屏蔽操作系统的不一致性,简便了软件发布、开发和运维,下载地址:

https://www.docker.com/

这两个工具能兼容多种操作系统,我们强烈建议在阅读本书的第三章前,安装二者。

下载源码

在命令行终端,使用下面的方式下载源码:

git clone https://github.com/l11x0m7/book-of-qna-code.git book-of-qna-code

执行示例程序

启动容器:

cd book-of-qna-code
./admin/run.sh # Mac OSX, Linux, Unix

初次运行该脚本时,会下载 docker 的镜像,在这个镜像中,我们安装了示例代码执行需要的依赖环境,这一步骤可能占用半个小时或更长时间,程序执行完毕,命令行终端会自动进入容器内部,如下图:

至此,读者就具有可执行示例程序的环境了,详细使用说明参考各项目文件夹内的文档。

引用本书

BibTex Source 格式书写:

  • English
@Book{qnadlbook2019,
  author    = {Hailiang Wang, Zhuohuan Li, Xuming Lin, Kexin Chen, Sizhen Lee},
  editor    = {Liujie Zheng},
  publisher = {Beijing:Publishing House of Electronics Industry},
  title     = {Intelligent Question-Answer System and Deep Learning},
  year      = {2019},
  edition   = {1},
  isbn      = {9787121349218},
  url       = {https://github.com/l11x0m7/book-of-qna-code},
}
  • 中文
@Book{qnadlbook2019,
  author    = {王海良, 李卓桓, 林旭鸣, 陈可心, 李思珍},
  editor    = {郑柳洁},
  publisher = {电子工业出版社},
  title     = {智能问答与深度学习},
  year      = {2019},
  edition   = {1},
  isbn      = {9787121349218},
  url       = {https://github.com/l11x0m7/book-of-qna-code},
}

联系我们

在您遇到关于软件安装、容器运行、程序代码执行等问题时,可通过下面地址反馈给我们:

https://github.com/l11x0m7/book-of-qna-code/issues

第二章 机器学习基础

马尔可夫链

隐马尔可夫模型

CRF 模型

第三章 自然语言处理基础

有向无环图(DAG)

MMSEG 中文分词器

HMM 中文分词器

依存关系分析之 transition-based 经典算法

依存关系分析之 transition-based 神经网络算法

Apache Lucene 示例程序

Elasticsearch 信息检索

第四章 深度学习初步

lightnn:教学用神经网络工具包

Siamese 神经网络完成问答任务

Siamese 卷积神经网络完成问答任务

Siamese 循环神经网络完成问答任务

第五章 词向量实现及应用

该章节主要为大家介绍深度学习在自然语言处理中必不可少的部分:embedding。此处我们为大家介绍了三种比较经典的词向量模型:word2vec,glove 以及 fasttext。通过实现这三个模型,并在小数据集上测试,帮助大家更好的理解这三个模型的原理。

N 元模型(ngrams)

word2vec 的简单实现

glove 的简单实现

fasttext 的简单实现

第六章 社区问答中的 QA 匹配

该章节主要介绍社区问答中的问答匹配问题,并介绍具有代表性的几个深度匹配模型。在该章中我们给出一个简单易用的 pairwise 的问答匹配网络 QACNN。

Pairwise 形式的 QACNN 模型

Decomposable Attention 模型:复现《A Decomposable Attention Model for Natural Language Inference》

多比较方式的比较-集成模型:复现《A COMPARE-AGGREGATE MODEL FOR MATCHING TEXT SEQUENCES》

BiMPM 模型:复现《Bilateral Multi-Perspective Matching for Natural Language Sentence》

License

Apache 2.0

chatoper banner

Chatopera 云服务

https://bot.chatopera.com/

Chatopera 云服务是一站式实现聊天机器人的云服务,按接口调用次数计费。Chatopera 云服务是 Chatopera 机器人平台的软件即服务实例。在云计算基础上,Chatopera 云服务属于聊天机器人即服务的云服务。

Chatopera 机器人平台包括知识库、多轮对话、意图识别和语音识别等组件,标准化聊天机器人开发,支持企业 OA 智能问答、HR 智能问答、智能客服和网络营销等场景。企业 IT 部门、业务部门借助 Chatopera 云服务快速让聊天机器人上线!

展开查看 Chatopera 云服务的产品截图

自定义词典

自定义词条

创建意图

添加说法和槽位

训练模型

测试对话

机器人画像

系统集成

聊天历史

立即使用

book-of-qna-code's People

Contributors

hailiang-wang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

book-of-qna-code's Issues

勘误P84

原:S→aSbS→ε
改:S→aSb S→ε

关于compare-aggreate实验结果

你好,我是智能问答与深度学习的读者,我在复现compare-aggreate实验的时候,最后只得出了map0.639,mrr0.640,代码没有改动,请问作者你当时实验的时候,是把论文的结果复现出来了吗?

P69混淆矩阵图标识错误

列:实际(P、N)
行:预测(P‘、N‘)
即,将矩阵标识中的“预测”和“实际”更换位置。

ch5 word2vec镜像运行报错

老师,您好,我报错,“ImportError: No module named scipy”,我直接运行的镜像文件,但是提示依旧没有装scipy,直接装又显示已经安装,无法运行
`ot@482cb3762c01:/app/ch5/word2vec# ./run.sh
active python2.7 environment
Python 2.7.13

  • python word2vec.py
    Traceback (most recent call last):
    File "word2vec.py", line 16, in
    import scipy
    ImportError: No module named scipy
  • echo 'deactivate python2.7 environment ...'
    deactivate python2.7 environment ...
  • deactivate
  • unset -f pydoc
  • '[' -z _ ']'
  • PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • export PATH
  • unset _OLD_VIRTUAL_PATH
  • '[' -z '' ']'
  • '[' -n /bin/bash ']'
  • hash -r
  • '[' -z _ ']'
  • PS1=
  • export PS1
  • unset _OLD_VIRTUAL_PS1
  • unset VIRTUAL_ENV
  • '[' '!' '' = nondestructive ']'
  • unset -f deactivate
    root@482cb3762c01:/app/ch5/word2vec# pip install scipy
    Requirement already satisfied: scipy in /usr/local/lib/python3.6/site-packages (1.0.0)
    Requirement already satisfied: numpy>=1.8.2 in /usr/local/lib/python3.6/site-packages (from scipy) (1.14.4)
    root@482cb3762c01:/app/ch5/word2vec# `

关于第六章使用训练模型进行实际问答任务的Demo

您好,感谢分享。
作为本书的忠实读者,想问下,我如果按照第六章的QA问答模型代码进行了训练,在实际业务中怎么部署模型。
比如,给定一个接口,让用户输入问题,输出为问题的答案或“无法回答”。
请问,是否有类似的Demo可以参考?
谢谢啦。

Permission denied

我能进app文件夹,但不能执行ls命令查看内容
root@d705cbe34e3a:/app# ls
ls: cannot open directory '.': Permission denied

前言

提交错误网址是错的,
111x0m7
to
I11x0m7

勘误#1

P9,定义4 张量(Tensor):原文“将矢量视为一阶张量”,这句本无问题,但是建议修正为:“将向量(又称矢量)视为一阶张量”。在数学中一般称为向量。
P10,矩阵与矩阵相乘,这节最后一句“矩阵的乘积服从分配率和结合律”,分配率的率应为“律”,即:“矩阵的乘积服从分配律和结合律...”

勘误P46

37页,假设2:“状态与具体时间无关”建议改为“状态转移概率矩阵与具体时间无关”,以便与公式吻合。
38页,表2-5和表2-6,建议将“t(i)→t(i+1)”分别改为“i(t)→i(t+1)”和“i(t)→b(t)”,分别代表t时刻的状态转移到t+1时刻的状态的概率、t时刻由状态发射至观测值的概率。
46页,递推公式Ψt(i)中,aij应该改为aji,以对应维特比变量δ(j),j→i,即由t时刻状态j转移至t+1时刻状态i。

第二章读者反馈

读者在读书的过程中,有一些不同的意见,可能是专业不同,习惯之间会有差异,我就大胆的提出来,请前辈们批评指正。

2.1线性代数

1.在科学研究中,非线性模型通常被近似为线性模型。
我建议这样可能更不容易引起误解
在科学研究中,很多变量之间是非线性的,但是通过适当地变换之后,变换之后的新变量之间就会有近似的线性相关关系。
这是因为非线性模型不能直接近似为线性模型,比如说变量之间是指数依赖,那就不能直接近似为线性关系。

标量,向量,矩阵和张量

1.什么是线性空间,线性空间是一个特殊的集合,在这个集合上定义加法和纯量乘法运算,并且满足运算的八条性质,这样的集合都叫线性空间。借助几何上的意义,也叫向量空间。所以有0维的向量空间,只有一个元素,零元素;也有1维的向量空间,就是标量。这就说明,向量空间中的向量也是可以有大小,但没有方向的。当然还有无穷维的空间中的向量,比如函数,很难说是哪个方向。所以读者建议,加上是在哪个空间上的向量 比如$R^n,n>1,n\in N$.
2.线性算子是线性空间中的概念,一般都在泛函中这么叫。
如果是有限维的线性空间,一般较线性映射。
如果是线性空间M 映射到N,叫线性映射,M映射到M,也叫线性变换。
3.如果说矩阵是二维数组,那还没有说什么是数组。

矩阵运算

4.一般很少叫$m\times n$的矩阵,一般叫$m\times n$矩阵或$m \times n$阶矩阵
5.在定义A-B的时候,-B还没有定义
6.很少见过$A \lambda$这种写法,一般写$A x$的时候,$x$是向量。
7.第10页最上面,矩阵元素开始省略的时候,一般只写两行就开始省略。
8.定义8多了一个右括号
9.定义8最后一句感觉是病句。
10.我看很多树上写 矩阵的乘法不满足交换律,就是说只要找到一个不满足就是不满足。

线性相关

11.2.1.4 线性相关性,写一组向量的时候,一般不写圆括号,一般直接写 $a_1,a_2,...,a_n$,向量用圆括号括起来一般是矩阵。

线性子空间

12.线性子空间的定义,线性子空间仍然是线性空间,所以,不仅要有相同的运算,还要满足线性运算的八条性质。
13.极大无关组的定义错了。
域F上的线性空间V中,如果向量组$a_1,a_2,a_s$的一个部分组称为极大无关组,如果这部分是线性无关的,但是添进去任何向量都会变成线性相关。

范数

14.一般很少叫范数函数,虽然范数就是函数,一般叫范数。
15.范数的定义少了一条$f(x)>0$,另外还是没有说x是什么,f是什么。哪些集合上可以定义范数。
16.范数虽然可以导出距离,但是定义距离的不是范数,而是在集合上定义距离。范数可以看成是到0的距离。
17.矩阵的元素,前面用的是$a_{i,j}$后面用的是$A_{i,j}$

run.sh报错repository name must be lowercase.

拉取最新的docker镜像 ...
1.0.1: Pulling from chatopera/qna-book
Digest: sha256:fada13441e097ab76b3dd338b03960ee0c65806069829f578ed2db38d76f8798
Status: Image is up to date for chatopera/qna-book:1.0.1
运行容器 ...
docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.