数据集:

allegro/klej-polemo2-out

语言:

pl

计算机处理:

monolingual

大小:

1K<n<10K

语言创建人:

other

批注创建人:

expert-generated

源数据集:

original
英文

klej-polemo2-out

描述

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)

链接

HuggingFace

Source

Paper

示例

加载

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}