Description:
This is a causal span extraction model based on SPANBert which recognises that causes of emotions in conversations. Given 4 sets of inputs: target utterance, target utterance's emotion, evidence utterance and conversational history, it returns arrays of start and end logits which can be postprocessed to obtain the span which caused the emotion in the target utterance.
Paper:
Recognizing emotion cause in conversations. arXiv preprint arXiv:2012.11820., Dec 2020.
Author(s):
Poria, S., Majumder, N., Hazarika, D., Ghosal, D., Bhardwaj, R., Jian, S.Y.B., Hong, P., Ghosh, R., Roy, A., Chhaya, N., Gelbukh, A. and Mihalcea, R. (2020).
SGnlp is an initiative by AI Singapore's NLP Hub. They aim to bridge the gap between research and industry, promote translational research, and encourage adoption of NLP techniques in the industry.
Various NLP models, other than aspect sentiment analysis are available in the python package. You can try them out at
SGNLP-Demo
|
SGNLP-Github
.
from sgnlp.models.span_extraction import (
RecconSpanExtractionConfig,
RecconSpanExtractionModel,
RecconSpanExtractionTokenizer,
RecconSpanExtractionPreprocessor,
RecconSpanExtractionPostprocessor,
)
# Load model
config = RecconSpanExtractionConfig.from_pretrained(
"https://storage.googleapis.com/sgnlp-models/models/reccon_span_extraction/config.json"
)
tokenizer = RecconSpanExtractionTokenizer.from_pretrained(
"mrm8488/spanbert-finetuned-squadv2"
)
model = RecconSpanExtractionModel.from_pretrained(
"https://storage.googleapis.com/sgnlp-models/models/reccon_span_extraction/pytorch_model.bin",
config=config,
)
preprocessor = RecconSpanExtractionPreprocessor(tokenizer)
postprocessor = RecconSpanExtractionPostprocessor()
# Model predict
input_batch = {
"emotion": ["surprise", "surprise"],
"target_utterance": [
"Hi George ! It's good to see you !",
"Hi George ! It's good to see you !",
],
"evidence_utterance": [
"Linda ? Is that you ? I haven't seen you in ages !",
"Hi George ! It's good to see you !",
],
"conversation_history": [
"Linda ? Is that you ? I haven't seen you in ages ! Hi George ! It's good to see you !",
"Linda ? Is that you ? I haven't seen you in ages ! Hi George ! It's good to see you !",
],
}
tensor_dict, evidences, examples, features = preprocessor(input_batch)
raw_output = model(**tensor_dict)
context, evidence_span, probability = postprocessor(
raw_output, evidences, examples, features)
Training
The train and evaluation datasets were derived from the RECCON dataset. The full dataset can be downloaded from the author's
github repository
.
Training Results
Training Time:
~3 hours for 12 epochs on a single V100 GPU.
SPANBert huggingface.co is an AI model on huggingface.co that provides SPANBert's model effect (), which can be used instantly with this aisingapore SPANBert model. huggingface.co supports a free trial of the SPANBert model, and also provides paid use of the SPANBert. Support call SPANBert model through api, including Node.js, Python, http.
SPANBert huggingface.co is an online trial and call api platform, which integrates SPANBert's modeling effects, including api services, and provides a free online trial of SPANBert, you can try SPANBert online for free by clicking the link below.
aisingapore SPANBert online free url in huggingface.co:
SPANBert is an open source model from GitHub that offers a free installation service, and any user can find SPANBert on GitHub to install. At the same time, huggingface.co provides the effect of SPANBert install, users can directly use SPANBert installed effect in huggingface.co for debugging and trial. It also supports api for free installation.