Skip to main content

A utility for storing and reading files for Korean LM training.

Project description

ko_lm_dataformat

PyPI License Code style: black

  • 한국어 언어모델용 학습 데이터를 저장, 로딩하기 위한 유틸리티

    • zstandard, ultrajson 을 사용하여 데이터 로딩, 압축 속도 개선
    • 문서에 대한 메타 데이터도 함께 저장
  • 코드는 EleutherAI에서 사용하는 lm_dataformat를 참고하여 제작

    • 일부 버그 수정
    • 한국어에 맞게 기능 추가 및 수정 (sentence splitter, text cleaner)

Installation

pip3 install ko_lm_dataformat

Usage

1. Write Data

1.1. Archive

import ko_lm_dataformat as kldf

ar = kldf.Archive("output_dir")
ar = kldf.Archive("output_dir", sentence_splitter=kldf.KssV1SentenceSplitter()) # Use sentence splitter

1.2. Adding data

  • meta 데이터를 추가할 수 있음 (e.g. 제목, url)
  • 하나의 document가 들어온다고 가정 (str 이 아닌 List[str] 로 들어오게 되면 여러 개의 sentence가 들어오는 걸로 취급)
  • split_sent=True이면 document를 여러 개의 문장으로 분리하여 List[str] 으로 저장
  • clean_sent=True이면 NFC Normalize, control char 제거, whitespace cleanup 적용
for doc in doc_lst:
    ar.add_data(
        data=doc,
        meta={
          "source": "kowiki",
          "meta_key_1": [othermetadata, otherrandomstuff],
          "meta_key_2": True
        },
        split_sent=False,
        clean_sent=False,
    )

# remember to commit at the end!
ar.commit()

2. Read Data

  • rdr.stream_data(get_meta=True)로 할 시 (doc, meta) 의 튜플 형태로 반환
import ko_lm_dataformat as kldf

rdr = kldf.Reader("output_dir")

for data in rdr.stream_data(get_meta=False):
  print(data)
  # "간단하게 설명하면, 언어를 통해 인간의 삶을 미적(美的)으로 형상화한 것이라고 볼...."


for data in rdr.stream_data(get_meta=True):
  print(data)
  # ("간단하게 설명하면, 언어를 통해 인간의 삶을 미적(美的)으로 형상화한 것이라고 볼....", {"source": "kowiki", ...})

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ko_lm_dataformat-0.3.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

ko_lm_dataformat-0.3.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file ko_lm_dataformat-0.3.0.tar.gz.

File metadata

  • Download URL: ko_lm_dataformat-0.3.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for ko_lm_dataformat-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3f23fbdb5240d2ff03fe20fcfcf4ca94376b7fdc53dfe859f1bd8e7e011c0eeb
MD5 917a7251315d395ce7e1bf05185b6bc2
BLAKE2b-256 65c172cd3ce7a3c1fd10384e9d37bc20e3df72767ab7f334894d026c585afee6

See more details on using hashes here.

File details

Details for the file ko_lm_dataformat-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ko_lm_dataformat-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0bf4f4a2503216ba733de823936899d5f6a7cc31ad874c076c40747004dd1ff
MD5 7046ae898601d5c77a0d35d0e6bacfeb
BLAKE2b-256 9d1ee098481d351011598c4e36e9e9a0b34630edaba96785f4078c3f2dc7c089

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page