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.txtfile placed at_datafolder;- 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
CSVreading) - 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|