All Projects → Nrgeup → Chinese_semantic_role_labeling

Nrgeup / Chinese_semantic_role_labeling

Licence: mit
基于 Bi-LSTM 和 CRF 的中文语义角色标注

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Chinese semantic role labeling

Multilstm
keras attentional bi-LSTM-CRF for Joint NLU (slot-filling and intent detection) with ATIS
Stars: ✭ 122 (+103.33%)
Mutual labels:  lstm, crf
korean ner tagging challenge
KU_NERDY 이동엽, 임희석 (2017 국어 정보 처리 시스템경진대회 금상) - 한글 및 한국어 정보처리 학술대회
Stars: ✭ 30 (-50%)
Mutual labels:  crf, lstm
Chinese Chatbot
中文聊天机器人,基于10万组对白训练而成,采用注意力机制,对一般问题都会生成一个有意义的答复。已上传模型,可直接运行,跑不起来直播吃键盘。
Stars: ✭ 124 (+106.67%)
Mutual labels:  lstm, chinese-nlp
Fancy Nlp
NLP for human. A fast and easy-to-use natural language processing (NLP) toolkit, satisfying your imagination about NLP.
Stars: ✭ 233 (+288.33%)
Mutual labels:  crf, chinese-nlp
Rnnsharp
RNNSharp is a toolkit of deep recurrent neural network which is widely used for many different kinds of tasks, such as sequence labeling, sequence-to-sequence and so on. It's written by C# language and based on .NET framework 4.6 or above versions. RNNSharp supports many different types of networks, such as forward and bi-directional network, sequence-to-sequence network, and different types of layers, such as LSTM, Softmax, sampled Softmax and others.
Stars: ✭ 277 (+361.67%)
Mutual labels:  lstm, crf
Daguan 2019 rank9
datagrand 2019 information extraction competition rank9
Stars: ✭ 121 (+101.67%)
Mutual labels:  lstm, crf
BiLSTM-CRF-NER-PyTorch
This repo contains a PyTorch implementation of a BiLSTM-CRF model for named entity recognition task.
Stars: ✭ 109 (+81.67%)
Mutual labels:  crf, lstm
End To End Sequence Labeling Via Bi Directional Lstm Cnns Crf Tutorial
Tutorial for End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF
Stars: ✭ 87 (+45%)
Mutual labels:  lstm, crf
knowledge-graph-nlp-in-action
从模型训练到部署,实战知识图谱(Knowledge Graph)&自然语言处理(NLP)。涉及 Tensorflow, Bert+Bi-LSTM+CRF,Neo4j等 涵盖 Named Entity Recognition,Text Classify,Information Extraction,Relation Extraction 等任务。
Stars: ✭ 58 (-3.33%)
Mutual labels:  crf, lstm
lstm-crf-tagging
No description or website provided.
Stars: ✭ 13 (-78.33%)
Mutual labels:  crf, lstm
G2pc
g2pC: A Context-aware Grapheme-to-Phoneme Conversion module for Chinese
Stars: ✭ 155 (+158.33%)
Mutual labels:  crf, chinese-nlp
Ner blstm Crf
LSTM-CRF for NER with ConLL-2002 dataset
Stars: ✭ 51 (-15%)
Mutual labels:  lstm, crf
Ncrfpp
NCRF++, a Neural Sequence Labeling Toolkit. Easy use to any sequence labeling tasks (e.g. NER, POS, Segmentation). It includes character LSTM/CNN, word LSTM/CNN and softmax/CRF components.
Stars: ✭ 1,767 (+2845%)
Mutual labels:  lstm, crf
Hierarchical-Word-Sense-Disambiguation-using-WordNet-Senses
Word Sense Disambiguation using Word Specific models, All word models and Hierarchical models in Tensorflow
Stars: ✭ 33 (-45%)
Mutual labels:  crf, lstm
Ner Lstm Crf
An easy-to-use named entity recognition (NER) toolkit, implemented the Bi-LSTM+CRF model in tensorflow.
Stars: ✭ 337 (+461.67%)
Mutual labels:  lstm, crf
Tf Lstm Crf Batch
Tensorflow-LSTM-CRF tool for Named Entity Recognizer
Stars: ✭ 59 (-1.67%)
Mutual labels:  lstm, crf
Jambot
Stars: ✭ 50 (-16.67%)
Mutual labels:  lstm
Speech Music Detection
Python framework for Speech and Music Detection using Keras.
Stars: ✭ 56 (-6.67%)
Mutual labels:  lstm
Deepseqslam
The Official Deep Learning Framework for Route-based Place Recognition
Stars: ✭ 49 (-18.33%)
Mutual labels:  lstm
Rnn Notebooks
RNN(SimpleRNN, LSTM, GRU) Tensorflow2.0 & Keras Notebooks (Workshop materials)
Stars: ✭ 48 (-20%)
Mutual labels:  lstm

基于 LSTM 和 CRF 的语义标注模型

这个repo是一个课程作业,并无论文发表,数据集是助教提供的CPB里的一部分。Free to download and free to use.

任务描述

论元识别

论元识别 根据中文宾州命题库(CPB),给定某个特定的命题(/rel),识别出句子中的该命题的 论元以及其左右边界。例如在下列例句中:

 我们/PN/O 希望/VV/O 台湾/NR/B-ARG0 当局/NN/E-ARG0 顺应/VV/O 历史/NN/O 发展/NN/O 潮流/NN/O ,/PU/O 把握/VV/rel 时机/NN/S-ARG1 ,/PU/O 就/P/O 两/CD/O 岸/NN/O 政治/NN/O 谈判/NN/O 作出/VV/O 积极/JJ/O 回应/NN/O 和/CC/O 明智/JJ/O 选择/NN/O 。/PU/O

例句已经完成分词和词性标注(part of speech, POS)。对于每一个词块 “A/B/C”,A 是词;B 是词性信息;C 是论元标记。

在上述例句中表征命题的目标动词为“把握”,该命题有两个论元“台湾当局”以 及“时机”,他们所充当的角色是 arg0 和 arg1,参评系统应能正确识别这些论元的左 右边界以及所充当的角色。如果"台湾当局"只识别出来了"台湾",是不可以算识别正确 的论元。

评价指标

论元识别性能采用 P/R/F 指标加以评价,具体而言:

  • 命题论元识别正确率(P)=系统识别正确的命题论元数/系统识别的所有命题论元数*100%
  • 命题论元识别召回率(R)=系统识别正确的命题论元数/标准答案中所有命题论元数*100%
  • 命题论元识别 F 值=2PR/(P+R)

实验方法

模型概览

我们使用了一个双向的 LSTM 加上 CRF 实现语义角色标注。循环神经网络(Recurrent Neural Network)是一种对序列建模的重要模型,在自然语言处理任务中有着广泛地应用。不同于前馈神经网络(Feed-forward Neural Network), RNN 能够处理输入之间前后关联的问题。LSTM 是 RNN 的一种重要变种,常用来学习长序列中蕴含的长程依赖关系。另外用双向循环网络来学到历史和未来的信息。然后用前面 LSTM 网络学习输入的特征表示,在整个网络的末端用条件随机场(Conditional Random Filed)在特征的基础上完成序列标注。示意图如下:

模型图

实验步骤

a) 预处理

词:

我们统计了共有 18418 个词,然后用正则表达式,将将所有的数字转换为_NUMBER、所有的人名换成_NAME、所有的年份替换成_YEAR、所有的日期替换成_DAY、所有的时间替换成_TIME。然后得到一个大小为 16314 的词典,我们选取了前 13000 个词作为词典,不在其中的词我们都替换成_UNK。

词性:

我们得到大小为 32 的词性表。

角色:

我们先将所有角色词前面的‘B-’、 ‘S-’、 ‘I-’、 ‘E-’都删掉(最后我们再恢 复出这些前缀),得到一个大小为 19 的角色词表。

b) 构造输入

输入我们由三个部分拼接而成,分别是词、词性、是不是论元。我们把词、 词性通过词表取词向量转换为实向量表示的词向量序列,然后再拼接上论元的 one-hot 标记方式词向量。

c) 特征表示

将前面的词向量序列作为双向 LSTM 模型的输入;LSTM 模型学习输入序列 的特征表示,得到新的特性表示序列;

d) 序列标注

CRF 以上一步中 LSTM 学习到的特征为输入,以标记序列为监督信号,完成 序列标注;最后用维特比算法解码,得到最终的序列。

实验结果

  1. 实验资源

    • Tensorflow: 1.4
    • Python: 3.6
    • 在 2 块 TITAN X 12G 显存训练
  2. 模型参数

    • LSTM hidden unit: 120
    • Word embedding dim: 100
    • Pos embedding dim: 19
    • Optimizer: Adam
    • Batch_size: 128
  3. 实验结果

我们在验证集上的结果见下表第一行:

(验证集文件:./data/best_eval_dev.txt)

(预测的测试文件:见根目录下 eval_test.txt)

Precision Recall F1
Ours 0.727667 0.736989 0.732299
w/o 替换词 0.702766 0.713769 0.708225
w/o CRF 0.686026 0.644268 0.664492

从上表中看出,第二行是我们与没有做替换词的方法的比较,可以看出替 换掉人名、数字、年份、时间等这些可以帮助提高效果。另外,我们也对比了 不用 CRF,而是直接用 LSTM 的输出结果作为标注序列的方法,可以看出,使用 CRF 来标记能很大程度提高实验结果,这说明了 CRF 作为概率化结构模型, 能更好的弥补神经网络标记偏执,不能全局归一的问题。

我们训练了大约 1.4K 个 epoch 之后稳定,时间约为 4 小时,loss 图如下:

learning cure

  1. 程序运行方式

cd src

python main.py

建议在Linux环境下打开,windows下请用除记事本外的编辑器打开

参考文献

  1. Sun W, Sui Z, Wang M, et al. Chinese Semantic Role Labeling with Shallow Parsing[C]. empirical methods in natural language processing, 2009: 1475-1483.
  2. Zhou J, Xu W. End-to-end learning of semantic role labeling using recurrent neural networks[C]. meeting of the association for computational linguistics, 2015: 1127-1137.
  3. Huang Z, Xu W, Yu K, et al. Bidirectional LSTM-CRF Models for Sequence Tagging[J]. arXiv: Computation and Language, 2015.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].