Este é o repositório para os recursos no artigo da Conll 2020 "O que você está tentando fazer? Digição semântica de processos de eventos". Este repositório contém o código -fonte e links para alguns conjuntos de dados usados em nosso artigo.
Este artigo estuda uma nova tarefa de digitação semântica (motivada cognitiva), digitação do processo de eventos de vários eixos , que, dado um processo de evento, tenta inferir rótulos de tipo de forma livre que descrevem (i) o tipo de ação feita pelo processo e (ii) o tipo de objeto que o processo procura afetar. Essa tarefa é inspirada em estudos computacionais e cognitivos do entendimento de eventos, que sugerem que a compreensão dos processos dos eventos é frequentemente dirigida pelo reconhecimento dos objetivos, planos ou intenções do (s) protagonista (s). Desenvolvemos um grande conjunto de dados contendo mais de 60k de processos de eventos, apresentando digitação de granulação ultra finente nos eixos de ação e tipo de objeto com vocabulários de etiquetas muito grandes (10^3∼10^4). Em seguida, propomos uma estrutura de aprendizagem híbrida, P2GT, que aborda o problema desafiador de digitação com a supervisão indireta do Glosses1 e uma estrutura conjunta de aprendizagem a rank. Como nossos experimentos indicam, o P2GT suporta a identificação da intenção dos processos, bem como o tipo semântico fino do objeto afetado. Também demonstra a capacidade de lidar com poucos casos e forte generalização em processos fora do domínio

python 3.6
Transformers (Huggingface) version 2.11.0 (Important)
PyTorch with CUDA support
nltk 3.4.5
AllenNLP 1.0
./data contém o conjunto de dados de digitação do processo de evento WikiHow contribuído neste trabalho. A mesma pasta também contém verbos e substantivos do WordNet, e o conjunto de dados SEMCOR usado para WSD.
O arquivo bruto do conjunto de dados de digitação do processo de eventos do WikiHow é fornecido como data_seq.tsv, onde cada linha registra o conteúdo e digita os rótulos de um processo. Especificamente, cada linha separada da guia contém uma sequência de conteúdo de subevent, e as duas últimas células são os rótulos de ação e objeto.
O arquivo binário é uma instância salva do objeto Data.py no UTILS, que já leu os dados do processo e os brilhos da etiqueta e forneceu as informações de indexação necessárias para dividir (estado aleatório = 777 sempre deve fornecer a mesma divisão), treinar e testar.
./process arquiva vários programas para o propriedade de conjunto de dados.
O programa ./run_joint/jointssmrl_roberta_bias.py executa o experimento para treinamento e teste com divisão de teste excluída de 10%. Deve ser executado com o seguinte padrão
python jointSSmrl_roberta_bias.py <skip_training> <alpha> <margin_1> <margin_2>
Por exemplo:
CUDA_VISIBLE_DEVICES=4 python jointSSmrl_roberta_bias.py 0 1. 0.1 0.1
./run_joint/console_roberta_bias.py é um aplicativo de console em que o usuário pode digitar processos de eventos e obter as informações do tipo de eixo múltiplo. Executar este programa simples, aguarde até carregar um modelo pré-treinado e digite um processo de evento em que os subeventos são separados por '@'. Por exemplo, a seguinte entrada
read papers@attend conferences@go to seminars@write a thesis
receberia informações de tipo como
[('get', 0.6021211743354797), ('retain', 0.6217673718929291), ('absorb', 0.6397878527641296), ('pass', 0.6577234268188477), ('submit', 0.6673179864883423), ('present', 0.6688072383403778)]
[('doctorate', 0.5141586363315582), ('psychology', 0.5413682460784912), ('genetic', 0.5501004457473755), ('science', 0.5507515966892242), ('determinism', 0.5621879994869232), ('grade', 0.5723227560520172)]
Link para os modelos completos pré-treinados para demonstração de console: https://drive.google.com/drive/folders/1b8pevvrnanl7r_wnyyt4psynroiloft?usp=sharing
Os usuários também podem treinar o modelo no conjunto de dados do processo de evento WikiHow completo executando ./runjoint/train_full_roberta_bias.py
Uma demonstração da web deve estar em execução em https://cogcomp.seas.upenn.edu/page/demo_view/step 
Bibtex:
@inproceedings{chen-etal-2020-what,
title = {``{W}hat {A}re {Y}ou {T}rying {T}o {D}o?'' {S}emantic {T}yping of {E}vent {P}rocesses},
author = "Chen, Muhao and Zhang, Hongming and Wang, Haoyu and Roth, Dan",
booktitle = "Proceedings of the 24th Conference on Computational Natural Language Learning (CoNLL)",
year = "2020",
publisher = "Association for Computational Linguistics"
}