【知识图谱】零基础理论——动手学关系抽取:TextCNN&LSTM
代码文件释义

 BasicModule.py:基类
 BruceCNN.py:继承基类
 embedding.py:单独抽了个类
 
 config:配置文件
 dataset:数据集处理文件
 process:预处理文件
 trainer:训练文件
 utils:工具类
 vocab:词汇的类
 
 relation:十个关系
 test.csv:测试集
 train.csv:训练集
 
 predict:预测脚本
 run.py:整个代码的运行脚本
知识图谱

实体、属性与关系

 
知识图谱与人工智能

 
关系抽取

 
 
CNN

 后面必须加flatten,把二维图像变成一维信息
TextCNN(文本序列的卷积)

 【原创】文本分类算法TextCNN原理详解(一)
 
 
 
 [NLP] TextCNN模型原理和实现 
 
 
 
 卷积核大小可以不一样,但必须一次扫每行
 
RNN
推荐一篇特别精彩的文章:
 循环神经网络 – Recurrent Neural Network | RNN
为什么需要RNN

 
 
 无论取“最好、的、人工智能、科普、网站、是”都不能得到预测结果,得把前面所有的词连在一起得到
 

 
 
 
 
 
 
RNN存在短期记忆

 
 
 
 
 
LSTM——只保留重要信息
长短期记忆网络 – Long short-term memory | LSTM
 
 
 
 
 
 
 
详解 LSTM
 
 
控制LSTM细胞状态的三个门

 第一个开关,负责控制继续保存长期状态c;
 第二个开关,负责控制把即时状态输入到长期状态c;
 第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。
如何在算法中实现这三个开关?
方法:用 门(gate)
 定义:gate 实际上就是一层全连接层,输入是一个向量,输出是一个 0到1 之间的实数向量。
 公式为:
 
 gate 如何进行控制?
 方法:用门的输出向量按元素乘以我们需要控制的那个向量
 原理:门的输出是 0到1 之间的实数向量,
 当门输出为 0 时,任何向量与之相乘都会得到 0 向量,这就相当于什么都不能通过;
 输出为 1 时,任何向量与之相乘都不会有任何改变,这就相当于什么都可以通过。
 
 
 
 
 
 
 f是sigmoid函数
 
LSTM实例

神经网络中的数据形式











