Code Monkey home page Code Monkey logo

kg-2019's Introduction

kg-2019-final

2019年百度的三元组抽取比赛( http://lic2019.ccf.org.cn/kg ),“科学空间队”源码,最终测试集第7名(本来第8名,第4名不愿提交报告而弃权,躺着前进了一名...),F1为0.8807。

基于“CNN + Attention + 自行设计的标注结构”的信息抽取模型。

标注结构是自己设计的,我看了很多关系抽取的论文,没有发现类似的做法。所以,如果你基于此模型做出后的修改,最终获奖了或者发表paper什么的,烦请注明一下(其实也不是太奢望)

@misc{
  jianlin2019bdkgf,
  title={A Hierarchical Relation Extraction Model with Pointer-Tagging Hybrid Structure},
  author={Jianlin Su},
  year={2019},
  publisher={GitHub},
  howpublished={\url{https://github.com/bojone/kg-2019}},
}

运行

运行前请用data_trans.py转换原始数据。

模型详细介绍: https://kexue.fm/archives/6671

环境

Python 2.7 + Keras 2.2.4 + Tensorflow 1.8,其中关系最大的应该是Python 2.7了,如果你用Python 3,需要修改几行代码,至于修改哪几行,自己想办法,我不是你的debugger。

欢迎入坑Keras。人生苦短,我用Keras~

交流

QQ交流群:67729435,微信群请加机器人微信号spaces_ac_cn

kg-2019's People

Contributors

bojone avatar cclauss 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kg-2019's Issues

数据集

新手没找到数据集,能否提供个链接?万分感谢!

关于pn1 , pn2 , get_k_inter()的作用?

你好,我是刚接触NLP的小白,我这两天正在学习您的源码,有几个地方不懂,还望赐教。

  1. 在预测subject时,计算的 pn1 pn2 什么作用?我看您科学空间里的博客好像并没有提及这两个张量的意义。

2.这个get_k_inter()函数是什么作用?

def get_k_inter(x, n=6):
seq, k1, k2 = x
k_inter = [K.round(k1 * a + k2 * (1 - a)) for a in np.arange(n) / (n - 1.)]
k_inter = [seq_gather([seq, k]) for k in k_inter]
k_inter = [K.expand_dims(k, 1) for k in k_inter]
k_inter = K.concatenate(k_inter, 1)
return k_inter

问题可能比较肤浅。还望见谅。

运行程序报错 - shape不一致

苏神好,
跑了下代码,Python使用3.6,tf使用1.15,其他环境一致,数据使用GitHub问题列表中用户链接地址,发现报错,但读了遍代码也不知道怎么修改,望苏神回复指导下:

报错文件:
kg_without_ds.py
报错位置:
image

报错信息:

InvalidArgumentError Traceback (most recent call last)
in ()
6 steps_per_epoch=len(train_D),
7 epochs=120,
----> 8 callbacks=[evaluator]
9 )
10 #else:

6 frames
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/client/session.py in call(self, *args, **kwargs)
1470 ret = tf_session.TF_SessionRunCallable(self._session._session,
1471 self._handle, args,
-> 1472 run_metadata_ptr)
1473 if run_metadata:
1474 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

InvalidArgumentError: 2 root error(s) found.
(0) Invalid argument: Incompatible shapes: [64,226,226,8] vs. [64,226,128,1]
[[{{node attention_2/sub_1}}]]
[[loss/add/_1405]]
(1) Invalid argument: Incompatible shapes: [64,226,226,8] vs. [64,226,128,1]
[[{{node attention_2/sub_1}}]]
0 successful operations.
0 derived errors ignored.

苏神好,请问您说的在百度比赛时,基于他们的数据集加的规则是怎么添加的?谢谢

在比赛截止日期的前几天,各个队伍的提升都非常明显,我估计大家都是在不断地找规则来修正预测结果,从而提升的效果,笔者个人也是通过一些规则获得了将近1%的提升!不过这些纯粹是比赛的trick,不在学术范围内,不做过多讨论。
https://kexue.fm/archives/6671)
想向您请教一下如何根据数据集添加规则。

关于mask的作用

请问,在kg_with_ds.py中频繁用到的这个mask的作用到底是什么呢,不太明白,烦请解答

loss先下降后上升再下降的情况

我在跑您代码的时候,用的也是百度的数据.我发现跑程序的过程中遇到的loss先下降后上升再下降的情况,我不知道这个算正常吗?
p0
p1
p2
p3
p4
p5

之后就好像慢慢下降,没看到上升的情况,这种loss的变化算正常吗 ?

随机采样的s的首尾代码

你好,我最近拜读了你的博客文章《基于DGCNN和概率图的轻量级信息抽取模型》,对你分享的代码进行了细心地阅读,受益颇丰,十分感谢你的无私奉献。我在你的原码中发现一处似有不妥,给出代码如下。如我理解有误,请你指教!
原代码
k2 = choice(k2[k2 >= k1])
改为:
k2 = sorted(k2[k2 >= k1])[0]

预测结果

苏神,你好,在跑你开源的这个工程的时候,因为环境问题对代码修改了attention以及gru部分,其他部分基本没有修改,代码链接
https://github.com/MonkeyTB/explore_model/blob/master/keras/InformationExtraction/kg_with_ds.py
预测结果spo_list_pred这里全为空,训练loss也在下降(epoch几次),git上结果时本地少量数据跑了一下,服务器上跑和本地结果现象一致,结果文件链接
https://github.com/MonkeyTB/explore_model/blob/master/keras/InformationExtraction/dev_pred.json
请问以下,这是因为我改动错了还是因为其他原因
环境:tensorflow=2.1.0 ,bert4keras=0.10.5,keras=2.3.1

train_data_vote_me.json

您好,十分感谢您的分享,请问这个文件时哪里生成的train_data_vote_me.json

关于random_generate随机替换实体的意义

苏神你好,
我在阅读你代码的时候发现,你在对训练数据进行预处理的时候,有0.5的概率会对spo对的s和o进行随机替换,替换成具有相同p的s和o。比如,“吴京”和“战狼2”这两个实体,在实际训练的时候可能会换成“张国荣”和“霸王别姬”。(这个操作是在random_generate函数里实现的)
我想问一下,这么做是基于什么目标。是借鉴bert里对于单词进行随机mask的思路么?

候选三元组问题

您好,在知识库中选出候选三元组,那对于一个新的句子,如果没有候选三元组,怎么办呢

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.