数据集:
allegro/klej-polemo2-out
任务:
语言:
计算机处理:
monolingual大小:
1K<n<10K语言创建人:
other批注创建人:
expert-generated源数据集:
original许可:
PolEmo2.0是一个包含来自四个领域(医药、酒店、产品和大学)的在线消费者评论的数据集。它经过人工注释,可以分为完整评论和句子级别。数据集包含超过8000条评论,其中大约85%来自医药和酒店领域。
我们使用PolEmo2.0数据集构建了两个任务。两个任务使用相同的训练数据集,即来自医药和酒店领域的评论,但在不同的测试集上进行评估。
“跨领域”是第二个任务,我们在跨领域的评论上对模型进行测试,即来自产品和大学领域的评论。由于这些领域的原始测试集很少(每个领域50条评论),我们决定使用原始的跨领域训练集(900条评论)进行测试,并创建了新的开发集和测试集。因此,该任务包含1000条评论,与领域内测试数据集的1400条评论相当。
任务是预测评论的正确标签。
输入(“text”列):句子
输出(“target”列):句子情感的标签(“zero”:中性、“minus”:负面、“plus”:正面、“amb”:模糊)
领域:在线评论
指标:准确率
示例:
输入:Lekarz zalecił mi kurację alternatywną do dotychczasowej, więc jeszcze nie daję najwyższej oceny (zobaczymy na ile okaże się skuteczna). Do Pana doktora nie mam zastrzeżeń: bardzo profesjonalny i kulturalny. Jedyny minus dotyczy gabinetu, który nie jest nowoczesny, co może zniechęcać pacjentki.
输入(由DeepL翻译):医生推荐给我一种替代疗法,所以我还没有给出最高评价(我们将看到它的有效性如何)。对于这位医生我没有任何保留:非常专业和有修养。唯一的缺点是办公室不够现代化,可能会让患者产生反感。
输出:amb(模糊)
| Subset | Cardinality |
|---|---|
| train | 5783 |
| test | 722 |
| validation | 723 |
| Class | Sentiment | train | validation | test |
|---|---|---|---|---|
| minus | positive | 0.379 | 0.334 | 0.368 |
| plus | negative | 0.271 | 0.332 | 0.302 |
| amb | ambiguous | 0.182 | 0.332 | 0.328 |
| zero | neutral | 0.168 | 0.002 | 0.002 |
@inproceedings{kocon-etal-2019-multi,
title = "Multi-Level Sentiment Analysis of {P}ol{E}mo 2.0: Extended Corpus of Multi-Domain Consumer Reviews",
author = "Koco{\'n}, Jan and
Mi{\l}kowski, Piotr and
Za{\'s}ko-Zieli{\'n}ska, Monika",
booktitle = "Proceedings of the 23rd Conference on Computational Natural Language Learning (CoNLL)",
month = nov,
year = "2019",
address = "Hong Kong, China",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/K19-1092",
doi = "10.18653/v1/K19-1092",
pages = "980--991",
abstract = "In this article we present an extended version of PolEmo {--} a corpus of consumer reviews from 4 domains: medicine, hotels, products and school. Current version (PolEmo 2.0) contains 8,216 reviews having 57,466 sentences. Each text and sentence was manually annotated with sentiment in 2+1 scheme, which gives a total of 197,046 annotations. We obtained a high value of Positive Specific Agreement, which is 0.91 for texts and 0.88 for sentences. PolEmo 2.0 is publicly available under a Creative Commons copyright license. We explored recent deep learning approaches for the recognition of sentiment, such as Bi-directional Long Short-Term Memory (BiLSTM) and Bidirectional Encoder Representations from Transformers (BERT).",
}
Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
from pprint import pprint
from datasets import load_dataset
dataset = load_dataset("allegro/klej-polemo2-out")
pprint(dataset['train'][0])
# {'sentence': 'Super lekarz i człowiek przez duże C . Bardzo duże doświadczenie '
# 'i trafne diagnozy . Wielka cierpliwość do ludzi starszych . Od '
# 'lat opiekuje się moją Mamą staruszką , i twierdzę , że mamy duże '
# 'szczęście , że mamy takiego lekarza . Naprawdę nie wiem cobyśmy '
# 'zrobili , gdyby nie Pan doktor . Dzięki temu , moja mama żyje . '
# 'Każda wizyta u specjalisty jest u niego konsultowana i uważam , '
# 'że jest lepszy od każdego z nich . Mamy do Niego prawie '
# 'nieograniczone zaufanie . Można wiele dobrego o Panu doktorze '
# 'jeszcze napisać . Niestety , ma bardzo dużo pacjentów , jest '
# 'przepracowany ( z tego powodu nawet obawiam się o jego zdrowie ) '
# 'i dostęp do niego jest trudny , ale zawsze możliwy .',
# 'target': '__label__meta_plus_m'}
import random
from pprint import pprint
from datasets import load_dataset, load_metric
dataset = load_dataset("allegro/klej-polemo2-out")
dataset = dataset.class_encode_column("target")
references = dataset["test"]["target"]
# generate random predictions
predictions = [random.randrange(max(references) + 1) for _ in range(len(references))]
acc = load_metric("accuracy")
f1 = load_metric("f1")
acc_score = acc.compute(predictions=predictions, references=references)
f1_score = f1.compute(predictions=predictions, references=references, average="macro")
pprint(acc_score)
pprint(f1_score)
# {'accuracy': 0.2894736842105263}
# {'f1': 0.2484406098784191}