CoolFace
Datasetpublic

intelli-zen/language_identification

语种识别 Tips: 语种 zh 代表是中文, 可能是简体, 也可能是繁体. 语种 zh-cn 则代表是简体中文, zh-tw 代表繁体中文. 数据来源 数据集从网上收集整理如下: 多语言语料 数据 原始数据/项目地址 样本个数 原始数据描述 替代数据下载地址 amazon_reviews_multi Multilingual Amazon Reviews Corpus; 2010.02573 TRAIN: 1191160, VALID: 29665, TEST: 29685 我们提出了多语言亚马逊评论语料库 (MARC),这是用于多语言文本分类的大规模亚马逊评论集合。 该语料库包含 2015 年至 2019 年间收集的英语、日语、德语、法语、西班牙语和中文评论。 amazon_reviews_multi xnli XNLI; D18-1269.pdf TRAIN: 7702055, VALID: 49750, TEST: 100129 我们希望我们的数据集 XNLI… See the full description on the dataset page: https://huggingface.co/datasets/intelli-zen/language_identification.

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes806downloads
plan_1.py163 linesDownload Raw Back to load_data
1#!/usr/bin/python32# -*- coding: utf-8 -*-3import argparse4import json5import os6import random7import sys8 9pwd = os.path.abspath(os.path.dirname(__file__))10sys.path.append(os.path.join(pwd, "../../../"))11 12from datasets import load_dataset, DownloadMode13 14from project_settings import project_path15 16 17def get_args():18    parser = argparse.ArgumentParser()19    parser.add_argument(20        "--dataset_cache_dir",21        default=(project_path / "hub_datasets").as_posix(),22        type=str23    )24    parser.add_argument(25        "--train_subset",26        default="train.jsonl",27        type=str28    )29    parser.add_argument(30        "--valid_subset",31        default="valid.jsonl",32        type=str33    )34    args = parser.parse_args()35    return args36 37 38s = """39|   ar   |     arabic     |  10000   |     iwslt2017    |40|   bg   |   bulgarian    |  10000   |       xnli       |41|   bn   |    bengali     |  10000   |  open_subtitles  |42|   bs   |    bosnian     |  10000   |  open_subtitles  |43|   cs   |     czech      |  10000   |       ecb        |44|   da   |     danish     |  10000   |  open_subtitles  |45|   de   |     german     |  10000   |       ecb        |46|   el   |  modern greek  |  10000   |       ecb        |47|   en   |    english     |  10000   |       ecb        |48|   eo   |   esperanto    |  10000   |     tatoeba      |49|   es   |    spanish     |  10000   |     tatoeba      |50|   et   |    estonian    |  10000   |      emea        |51|   fi   |    finnish     |  10000   |       ecb        |52|   fo   |    faroese     |  10000   |  nordic_langid   |53|   fr   |    french      |  10000   |     iwslt2017    |54|   ga   |    irish       |  10000   | multi_para_crawl |55|   gl   |    galician    |  3096    |     tatoeba      |56|   hi   |     hindi      |  10000   |  open_subtitles  |57|  hi_en |     hindi      |  7180    | cmu_hinglish_dog |58|   hr   |    croatian    |  10000   |   hrenwac_para   |59|   hu   |    hungarian   |  3801    |   europa_ecdc_tm; europa_eac_tm   |60|   hy   |    armenian    |   660    |  open_subtitles  |61|   id   |   indonesian   |  10000   |   id_panl_bppt   |62|   is   |   icelandic    |  2973    |   europa_ecdc_tm; europa_eac_tm   |63|   it   |    italian     |  10000   |     iwslt2017    |64|   ja   |    japanese    |  10000   |     iwslt2017    |65|   ko   |    korean      |  10000   |     iwslt2017    |66|   lt   |   lithuanian   |  10000   |       emea       |67|   lv   |    latvian     |  4595    |   europa_ecdc_tm; europa_eac_tm   |68|   mr   |    marathi     |  10000   |     tatoeba      |69|   mt   |    maltese     |  10000   | multi_para_crawl |70|   nl   |    dutch       |  10000   |       kde4       |71|   no   |   norwegian    |  10000   | multi_para_crawl |72|   pl   |    polish      |  10000   |       ecb        |73|   pt   |   portuguese   |  10000   |     tatoeba      |74|   ro   |    romanian    |  10000   |       kde4       |75|   ru   |    russian     |  10000   |       xnli       |76|   sk   |    slovak      |  10000   | multi_para_crawl |77|   sl   |   slovenian    |  4589    |   europa_ecdc_tm; europa_eac_tm   |78|   sw   |    swahili     |  10000   |       xnli       |79|   sv   |    swedish     |  10000   |       kde4       |80|   th   |     thai       |  10000   |       xnli       |81|   tl   |    tagalog     |  10000   | multi_para_crawl |82|   tn   |    serpeti     |  10000   |   autshumato     |83|   tr   |    turkish     |  10000   |       xnli       |84|   ts   |    dzonga      |  10000   |    autshumato    |85|   ur   |     urdu       |  10000   |       xnli       |86|   vi   |   vietnamese   |  10000   |       xnli       |87|   yo   |     yoruba     |  9970    |    menyo20k_mt   |88|   zh   |    chinese     |  10000   |       xnli       |89|   zu   |  zulu, south africa  |  10000   |    autshumato    |90"""91 92 93def main():94    args = get_args()95 96    subset_dataset_dict = dict()97 98    lines = s.strip().split("\n")99 100    with open(args.train_subset, "w", encoding="utf-8") as ftrain, open(args.valid_subset, "w", encoding="utf-8") as fvalid:101        for line in lines:102            row = str(line).split("|")103            row = [col.strip() for col in row if len(col) != 0]104 105            if len(row) != 4:106                raise AssertionError("not 4 item, line: {}".format(line))107 108            abbr = row[0]109            full = row[1]110            total = int(row[2])111            subsets = [e.strip() for e in row[3].split(";")]112 113            count = 0114            for subset in subsets:115                if subset in subset_dataset_dict.keys():116                    dataset_dict = subset_dataset_dict[subset]117                else:118                    dataset_dict = load_dataset(119                        "qgyd2021/language_identification",120                        name=subset,121                        cache_dir=args.dataset_cache_dir,122                        # download_mode=DownloadMode.FORCE_REDOWNLOAD123                    )124                    subset_dataset_dict[subset] = dataset_dict125 126                train_dataset = dataset_dict["train"]127                for sample in train_dataset:128                    text = sample["text"]129                    language = sample["language"]130                    data_source = sample["data_source"]131 132                    if count > total:133                        break134 135                    if language != abbr:136                        continue137 138                    split = "train" if random.random() < 0.8 else "valid"139 140                    row_ = {141                        "text": text,142                        "label": language,143                        "language": full,144                        "data_source": data_source,145                        "split": split,146                    }147                    row_ = json.dumps(row_, ensure_ascii=False)148 149                    if split == "train":150                        ftrain.write("{}\n".format(row_))151                    elif split == "valid":152                        fvalid.write("{}\n".format(row_))153                    else:154                        raise AssertionError155 156                    count += 1157 158    return159 160 161if __name__ == "__main__":162    main()163