daje/en_wiki
收藏영어 위키 데이터셋(En_wiki)
개요
- 이 데이터셋은 영어 위키 데이터를 기반으로 만들어졌습니다.
- 원본 위키 데이터를 처리하기 위해 wikiextractor.py를 사용하여 텍스트 형식으로 변환하였습니다.
- 주요 취지는 영어 자연어 처리 연구와 애플리케이션 개발에 사용할 수 있는 광범위한 텍스트 데이터를 제공하기 위함입니다.
- dataset map을 사용할 때는 반드시
streaming=True를 사용해야 합니다.
데이터 구조
text: 위키 문서의 본문을 포함하는 문자열입니다.
사용 방법
-
huggingface dataset과 map을 활용하는 방법 python from datasets import load_dataset ko_dataset = load_dataset("text", "daje/en_wiki", split="train", streaming=True)
ko_wiki_tokenized = ko_dataset.map(lambda x : tokenizer(x["text"], max_length=256, padding="max_length", truncation=True), remove_columns=["text"])
-
파이썬 스크립트를 사용하는 방법 python import os from tqdm import tqdm from transformers import AutoTokenizer
import argparse parser = argparse.ArgumentParser() parser.add_argument(--input_path, type=str) parser.add_argument(--output_path, type=str) parser.add_argument(--model_name_or_path, type=str) parser.add_argument(--max_seq_length, type=int, default=256) parser.add_argument(--add_sep, default=True, action=store_true) args = parser.parse_args()
def get_num_lines(fname): res = os.popen(fwc -l {fname}).read() lines = res.strip().split()[0] return int(lines)
def main(args): seq_length = args.max_seq_length - 3 # room for [BOS], [EOS], [UNK] input_fs = open(args.input_path, r) output_fs = open(args.output_path, a) total_line = get_num_lines(args.input_path) tokenizer = AutoTokenizer.from_pretrained(args.model_name_or_path)
buffer = [] for doc in tqdm(input_fs, total=total_line): tokens = tokenizer.tokenize(doc) buffer += tokens if args.add_sep: buffer += [tokenizer.eos_token] # 자신이 사용하는 tokenizer에 맞추어서 eos, sep을 넣으시면 됩니다. while len(buffer) > seq_length: text = .join(buffer[:seq_length]) output_fs.write(text) output_fs.write(
) buffer = buffer[seq_length:]
input_fs.close()
output_fs.close()
if name == main: main(args)



