Sentence-ALDi项目介绍
Sentence-ALDi是一个使用BERT模型的项目,主要用于估算阿拉伯语文本的方言程度。这个工具对于研究和分析阿拉伯语中现代标准阿拉伯语(MSA)与方言阿拉伯语(DA)的混杂现象非常有用。MSA是学校里教授的标准语言,而DA是日常交流中使用的语言。
项目背景
阿拉伯语的书写和口语中通常会混合使用标准和地方方言。之前的阿拉伯语自然语言处理工作的重点在于识别句子或单词级别的方言(Dialect Identification, DI)。然而,传统的DI方法将这个任务视为二元分类问题,而实际上,阿拉伯语使用者感知的方言程度是一个连续的光谱。Sentence-ALDi旨在通过细化这方面的研究,量化文本的方言程度,即阿拉伯语方言等级(Arabic Level of Dialectness,ALDi)。
项目内容
Sentence-ALDi模型是一个基于BERT的回归模型,通过微调用于预测文本的阿拉伯语方言程度。该模型从MarBERT模型进行微调,具有强大的语言处理能力,专注于阿拉伯语。
数据集
项目中使用的数据集是AOC-ALDi,这是从AOC数据集衍生出的一个包含127,835个句子的集合,其中17%来自新闻文章,83%来自这些文章的用户评论。所有这些文本都经过人工标注,以表明其方言程度。通过这一数据集训练的模型可以高效地识别其他语料库中的方言程度,包括不在AOC-ALDi中的方言和文体,提供比传统DI系统更为细致的视角。
使用方法
用户可以通过Python代码简单地集成该模型,并使用特定方法来计算句子的方言程度。以下是一个示例代码,展示如何使用该模型:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "AMR-KELEG/Sentence-ALDi"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def compute_score(sentence):
inputs = tokenizer(sentence, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
return min(max(0, logits[0][0].item()), 1)
if __name__ == "__main__":
s1 = "الطقس جيد اليوم"
s2 = "الجو حلو النهاردة"
print(s1, round(compute_score(s1), 3)) # 0
print(s2, round(compute_score(s2), 3)) # 0.951
应用与影响
通过Sentence-ALDi,研究者和开发者可以更好地理解和分析阿拉伯语方言在不同语境中的使用情况。这对语言学研究尤其是社会语言学分析非常有帮助,因为它能够揭示说话者在不同场合中的语言风格选择。
项目贡献者
该模型由Amr Keleg等人开发,通过以上的详细介绍,可以帮助更多人了解其应用价值与使用方式。如果认为模型有用,研究者们也鼓励在相关学术领域进行引用。