-
ํ๊ตญ์ด ์ธ์ด๋ชจ๋ธ์ฉ ํ์ต ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๋ก๋ฉํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ
-
์ฝ๋๋ EleutherAI์์ ์ฌ์ฉํ๋ lm_dataformat๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ์
- ์ผ๋ถ ๋ฒ๊ทธ ์์
- ํ๊ตญ์ด์ ๋ง๊ฒ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ์์ (sentence splitter, text cleaner)
pip3 install ko_lm_dataformat
- kss v1 sentence splitter ์ฌ์ฉ ๊ฐ๋ฅ
import ko_lm_dataformat as kldf
ar = kldf.Archive("output_dir")
ar = kldf.Archive("output_dir", sentence_splitter=kldf.KssV1SentenceSplitter()) # Use sentence splitter
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()
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", ...})