Skip to content

Commit

Permalink
docs: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
monologg committed Jun 29, 2021
1 parent 2921440 commit 2a9cbc7
Showing 1 changed file with 18 additions and 24 deletions.
42 changes: 18 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,29 @@
# ko_lm_dataformat

<div align="left">

[![PyPI](https://img.shields.io/pypi/v/ko_lm_dataformat)](https://pypi.org/project/ko_lm_dataformat/)
[![License](https://img.shields.io/github/license/ko_lm_dataformat/ko_lm_dataformat)](https://github.com/monologg/ko_lm_dataformat/blob/master/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

<h3 align="left">
<p>A utility for storing and reading files for Korean LM training</p>
</h3>
- **한국어 언어모델용 학습 데이터를 저장, 로딩**하기 위한 유틸리티

</div>
- [`zstandard`](https://github.com/facebook/zstd), [`ultrajson`](https://github.com/ultrajson/ultrajson) 을 사용하여 **데이터 로딩, 압축 속도 개선**
- 문서에 대한 **메타 데이터**도 함께 저장

## About
- 코드는 EleutherAI에서 사용하는 [lm_dataformat](https://github.com/leogao2/lm_dataformat)를 참고하여 제작
- 일부 버그 수정
- 한국어에 맞게 기능 추가 및 수정 (sentence splitter, text cleaner)

## Installation

```bash
pip3 install ko_lm_dataformat
```

- 한국어 언어모델 학습 데이터를 저장하기 위한 유틸리티
- 코드는 EleutherAI에서 사용하는 [lm_dataformat](https://github.com/leogao2/lm_dataformat)를 참고하여 제작.

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

- [`zstandard`](https://github.com/facebook/zstd), [`ultrajson`](https://github.com/ultrajson/ultrajson) 을 사용하여 데이터 로딩, 압축 속도 개선

## Usage

### 1. Write data
### 1. Write Data

- Load Archive
- [kss sentence splitter](https://github.com/likejazz/korean-sentence-splitter) 사용 가능
- [kss sentence splitter](https://github.com/likejazz/korean-sentence-splitter) 사용 가능

```python
import ko_lm_dataformat as kldf
Expand All @@ -39,10 +33,10 @@ ar = kldf.Archive("output_dir", sentence_splitter=kldf.KssSentenceSplitter()) #
```

- Adding data
- `meta` 데이터를 추가할 수 있음 (e.g. 제목, url 등등)
- `meta` 데이터를 추가할 수 있음 (e.g. 제목, url)
- 하나의 document가 들어온다고 가정 (`str` 이 아닌 `List[str]` 로 들어오게 되면 여러 개의 sentence가 들어오는 걸로 취급)
- `split_sent=True`이면 document를 여러 개의 문장으로 분리하여 `List[str]` 으로 저장함.
- `clean_sent=True`이면 NFC Normalize, control char 제거, whitespace clean 적용됨.
- `split_sent=True`이면 **document를 여러 개의 문장으로 분리**하여 `List[str]` 으로 저장
- `clean_sent=True`이면 **NFC Normalize**, **control char 제거**, **whitespace cleanup** 적용

```python
for doc in doc_lst:
Expand All @@ -60,7 +54,7 @@ for doc in doc_lst:

### 2. Read Data

- `rdr.stream_data(get_meta=True)`로 할 시 `(doc, meta)` 의 튜플 형태로 반환.
- `rdr.stream_data(get_meta=True)`로 할 시 `(doc, meta)` 의 튜플 형태로 반환

```python
import ko_lm_dataformat as kldf
Expand All @@ -69,10 +63,10 @@ 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", ...})
# ("간단하게 설명하면, 언어를 통해 인간의 삶을 미적(美的)으로 형상화한 것이라고 볼....", {"source": "kowiki", ...})
```

0 comments on commit 2a9cbc7

Please sign in to comment.