Tensorflow-based framework which lists implementation of conventional neural network models (CNN, RNN-based) for Relation Extraction classification tasks as well as API for custom model implementation
Project description
AREnets
AREnets -- is an OpenNRE like project, but the kernel based on tensorflow
library, with implementation of neural networks on top of it, designed for Attitude and Relation Extraction tasks.
AREnets is a result of advances in Sentiment Attitude Extraction task
but introduced in generalized form and applicable for other relation-extraction related classification tasks.
It provides ready to use neural networks and API for subject
→object
pairs classification in a given samples.
This project is powered by
AREkit
core API, squeezed into a tiny
kernel.
Contents
Installation
pip install git+https://github.com/nicolay-r/AREnets@master
Quick Start
Simply just open and follow the google-colab version like IDE to modify the train and inference code of provided tutorial:
The complete examples are in tutorials folder.
First of all, prepare your _data
folder with data required for training model and performing inference.
- Input samples: check out input data formatting guide.
- Embeddings could be obtained from NLPL repository,
with
model.txt
file placed at_data
folder;- See downloading script;
More on input features could be found here.
Train
from arenets.quickstart.train import train
from arenets.enum_name_types import ModelNames
train(input_data_dir="_data", labels_count=3, model_name=ModelNames.CNN, epochs_count=10)
Runs cnn
model with 10
epochs for 3-class
classification problem;
all the model-related details will be stored at _data
model by default.
Predict
from arenets.quickstart.predict import predict
from arenets.arekit.common.data_type import DataType
from arenets.enum_name_types import ModelNames
predict(input_data_dir="_data", output_dir="_out", labels_count=3, model_name=ModelNames.CNN, data_type=DataType.Test)
Predict test
results for pre-trained cnn
model and saves them into _out
folder
Models List
- Aspect-based Attentive encoders:
- Multilayer Perceptron (MLP) [code] / [github:nicolay-r];
- Self-based Attentive encoders:
- P. Zhou et. al. [code] / [github:SeoSangwoo];
- Z. Yang et. al. [code] / [github:ilivans];
- Single Sentence Based Architectures:
- CNN [code] / [github:roomylee];
- CNN + Aspect-based MLP Attention [code];
- PCNN [code] / [github:nicolay-r];
- PCNN + Aspect-based MLP Attention [code];
- RNN (LSTM/GRU/RNN) [code] / [github:roomylee];
- IAN (frames based) [code] / [github:lpq29743];
- RCNN (BiLSTM + CNN) [code] / [github:roomylee];
- RCNN + Self Attention [code];
- BiLSTM [code] / [github:roomylee];
- Bi-LSTM + Aspect-based MLP Attention [code]
- Bi-LSTM + Self Attention [code] / [github:roomylee];
- RCNN + Self Attention [code];
- Multi Sentence Based Encoders Architectures:
FAQ
How to prepare input data?
How to setup jsonl
or csv
data reader?
How to implement a custom model with attention?
How to customize the prediction output?
Test Details
This project has been tested under the following setup:
- NVidia GTX-1060/1080 TI
- CUDA compilation tools, release 10.0, V10.0.130
- Python 3.6.9
- Pandas 0.25.3 (Optional, only for
CSV
reading) - Pip freeze package list
How to cite
Our one and my personal interest is to help you better explore and analyze attitude and relation extraction related tasks with AREnets. A great research is also accompanied with the faithful reference. if you use or extend our work, please cite as follows:
@misc{arenets2023,
author={Nicolay Rusnachenko},
title={{AREnets}: Tensorflow-based framework of attentive neural-network
models for text classfication and relation extraction tasks},
year={2023},
url={https://github.com/nicolay-r/AREnets},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file arenets-0.23.1.tar.gz
.
File metadata
- Download URL: arenets-0.23.1.tar.gz
- Upload date:
- Size: 155.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0c08d43e4aab1eaa764ee489514436240306de648f7ef9e10d600dc6716acbe |
|
MD5 | 5f1ee9611c1a07d33bd8826f7722e81b |
|
BLAKE2b-256 | 9711e68da648cfd95dfcfd7fb357e252f33d6b4d754cf0cb10201d03734fa9e0 |
File details
Details for the file arenets-0.23.1-py3-none-any.whl
.
File metadata
- Download URL: arenets-0.23.1-py3-none-any.whl
- Upload date:
- Size: 224.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d93d0a8653a5f2bc5ee4d66b32e7b2c59ac5fd95f8e803dc07084abfe84445f |
|
MD5 | d5cbb092edd5e993878627ce023e75c0 |
|
BLAKE2b-256 | 005b7c2a5bc30cf4f987542f57035ebb70cc4f40ae145dd718f755c44c77ea80 |