这个模型是基于studio-ousia/Luke-japanese-large-lite进行微调的。它可以分析文本中包含的情感(喜悦、悲伤、期待、惊讶、愤怒、恐惧、厌恶、信任)。该模型是使用wrime数据集进行微调的。
LUKE(Language Understanding with Knowledge-based Embeddings)是一种基于Transformer的新型预训练上下文表示模型。LUKE将给定文本中的单词和实体视为独立的标记,并输出它们的上下文表示。LUKE采用了一种实体感知的自注意机制,它是Transformer自注意机制的扩展,并在计算注意力分数时考虑了标记的类型(单词或实体)。
LUKE在包括SQuAD v1.1(抽取式问答)、CoNLL-2003(命名实体识别)、ReCoRD(填空式问答)、TACRED(关系分类)和Open Entity(实体类型)在内的五个流行的自然语言处理基准测试中取得了最新的成果。luke-japanese是LUKE的日本语版,它是一个具有単語和实体知识拓展的预训练Transformer模型。
步骤1:安装python、pytorch和sentencepiece,并更新transformers库(如果版本太旧,可能没有LukeTokenizer)。
步骤2:执行以下代码。
from transformers import AutoTokenizer, AutoModelForSequenceClassification, LukeConfig import torch tokenizer = AutoTokenizer.from_pretrained("Mizuiro-sakura/luke-japanese-large-sentiment-analysis-wrime") config = LukeConfig.from_pretrained('Mizuiro-sakura/luke-japanese-large-sentiment-analysis-wrime', output_hidden_states=True) model = AutoModelForSequenceClassification.from_pretrained('Mizuiro-sakura/luke-japanese-large-sentiment-analysis-wrime', config=config) text='すごく楽しかった。また行きたい。' max_seq_length=512 token=tokenizer(text, truncation=True, max_length=max_seq_length, padding="max_length") output=model(torch.tensor(token['input_ids']).unsqueeze(0), torch.tensor(token['attention_mask']).unsqueeze(0)) max_index=torch.argmax(torch.tensor(output.logits)) if max_index==0: print('joy、うれしい') elif max_index==1: print('sadness、悲しい') elif max_index==2: print('anticipation、期待') elif max_index==3: print('surprise、驚き') elif max_index==4: print('anger、怒り') elif max_index==5: print('fear、恐れ') elif max_index==6: print('disgust、嫌悪') elif max_index==7: print('trust、信頼')
我要感谢山田先生和Studio ousia对Luke的开发。我要感谢山田先生(@ikuyamada)和Studio ousia(@StudioOusia)。
[1]@inproceedings{yamada2020luke, title={LUKE: Deep Contextualized Entity Representations with Entity-aware Self-attention}, author={Ikuya Yamada and Akari Asai and Hiroyuki Shindo and Hideaki Takeda and Yuji Matsumoto}, booktitle={EMNLP}, year={2020}}