数据集:
deutsche-telekom/ger-backtrans-paraphrase
这是一个包含超过2100万个德语选词复述的数据集。这些是具有相同含义但用不同词语表达的文本对。选词复述的来源是不同的德语/英文平行文本语料库。英文文本被机器翻译回德语以获得选词复述。
例如,可以使用 SentenceTransformers 和 MultipleNegativesRankingLoss 来训练语义文本嵌入。
该数据集是由 Philip May 开源,并由 One Conversation 团队的 Deutsche Telekom AG 维护。
除了反向翻译之外,我们还添加了更多列(详见下文)。我们进行了以下预处理和筛选:
你可能不想直接使用数据集,而是进一步筛选。数据集的附加列就是为此而设的。对我们来说,删除以下句子对非常有用:
明显的是, OpenSubtitles 文本有奇怪的破折号前缀。具体情况如下:
- Hast du was draufgetan?
你可以应用以下函数来去除它们:
import re
def clean_text(text):
text = re.sub("^[-\s]*", "", text)
text = re.sub("[-\s]*$", "", text)
return text
df["de"] = df["de"].apply(clean_text)
df["en_de"] = df["en_de"].apply(clean_text)
| Corpus name & link | Number of paraphrases |
|---|---|
| 12320321 | 18,764,810 |
| 12321321 | 1,569,231 |
| 12322321 | 313,105 |
| 12323321 | 289,374 |
| 12324321 | 285,722 |
| 12325321 | 70,547 |
| sum | . 21,292,789 |
我们通过 Fairseq 的帮助从英语翻译回德语。我们使用transformer.wmt19.en-de模型来实现这个目的:
en2de = torch.hub.load(
"pytorch/fairseq",
"transformer.wmt19.en-de",
checkpoint_file="model1.pt:model2.pt:model3.pt:model4.pt",
tokenizer="moses",
bpe="fastbpe",
)
为了计算Jaccard相似度,我们使用 SoMaJo tokenizer 将文本拆分为标记。然后,我们使用lower()对标记进行处理,使得大小写字母不再有差别。下面是一段代码片段,详细说明了这个过程:
from somajo import SoMaJo
LANGUAGE = "de_CMC"
somajo_tokenizer = SoMaJo(LANGUAGE)
def get_token_set(text, somajo_tokenizer):
sentences = somajo_tokenizer.tokenize_text([text])
tokens = [t.text.lower() for sentence in sentences for t in sentence]
token_set = set(tokens)
return token_set
def jaccard_similarity(text1, text2, somajo_tokenizer):
token_set1 = get_token_set(text1, somajo_tokenizer=somajo_tokenizer)
token_set2 = get_token_set(text2, somajo_tokenizer=somajo_tokenizer)
intersection = token_set1.intersection(token_set2)
union = token_set1.union(token_set2)
jaccard_similarity = float(len(intersection)) / len(union)
return jaccard_similarity
# pip install datasets
from datasets import load_dataset
dataset = load_dataset("deutsche-telekom/ger-backtrans-paraphrase")
train_dataset = dataset["train"]
如果你想下载csv文件,然后使用Pandas加载它,可以像这样操作:
df = pd.read_csv("train.csv")
OpenSubtitles
WikiMatrix v1
Tatoeba v2022-03-03
TED2020 v1
News-Commentary v16
GlobalVoices v2018q4
@misc{ger-backtrans-paraphrase,
title={Deutsche-Telekom/ger-backtrans-paraphrase - dataset at Hugging Face},
url={https://huggingface.co/datasets/deutsche-telekom/ger-backtrans-paraphrase},
year={2022},
author={May, Philip}
}
版权所有 2022 Philip May , Deutsche Telekom AG
本作品在 CC-BY-SA 4.0 下获得许可。