김민수

Upload preparation scripts

import json
import pathlib
cwd = pathlib.Path.cwd()
glob = cwd.glob('Article/*.json')
for idx, json_path in enumerate(glob):
with json_path.open(encoding='utf-8') as json_file:
article = json.load(json_file)
document = article["document"]
with open(f"jsonl/{article['id']}.jsonl", 'w', encoding='utf-8') as write_file:
for doc in document:
metadata = doc["metadata"]
hyphenated = f"{metadata['date'][:4]}-{metadata['date'][4:6]}-{metadata['date'][6:]}"
obj = {
"author": metadata["author"],
"publisher": metadata["publisher"],
"date": hyphenated,
"topic": metadata["topic"],
"paragraph": list(map(lambda line: line["form"], doc["paragraph"]))
}
write_file.write(json.dumps(obj, ensure_ascii=False) + '\n')
if (idx+1) % 100 == 0:
print(f"Converted {idx+1} files")
else:
print(f"Finished: total {idx+1} files are converted")
from pyarrow import json
import pyarrow.parquet as pq
import pathlib
from os import makedirs
cwd = pathlib.Path.cwd()
for idx, json_path in enumerate(cwd.glob('jsonl/*.jsonl')):
with json_path.open('rb') as json_file:
table = json.read_json(json_file)
makedirs(f"parquet/{json_path.stem[:6]}", exist_ok=True)
pq.write_table(table, f"parquet/{json_path.stem[:6]}/{json_path.stem}.parquet")
if (idx+1) % 100 == 0:
print(f"Converted {idx+1} files")
else:
print(f"Finished: total {idx+1} files are converted")
import json
import pathlib
cwd = pathlib.Path.cwd()
glob = cwd.glob('Article/NWRW18*.json')
rows = []
for idx, json_path in enumerate(glob):
with json_path.open(encoding='utf-8') as json_file:
article = json.load(json_file)
document = article["document"]
for doc in document:
metadata = doc["metadata"]
obj = {
"publisher": metadata["publisher"],
"topic": metadata["topic"],
"original_topic": metadata["original_topic"]
}
rows.append(obj)
if(idx+1) % 100 == 0:
print(idx+1)
with open('topic_to_predict.json', 'w', encoding='utf-8') as dataset:
json.dump(rows, dataset, ensure_ascii=False)
print("Finished")
\ No newline at end of file
import pyarrow.parquet as pq
import pandas as pd
import matplotlib.pyplot as plt
category='NIRW19'
table = pq.read_pandas(f"parquet/{category}", columns=['author', 'publisher', 'date', 'topic'])
print(table.schema)
df = table.to_pandas()
publisher=df.groupby('publisher').count()['author']
topic = df.groupby('topic').count()['author']
month = df.groupby(pd.Grouper(key='date', freq='M')).count()['author']
plt.rc('font', family='BATANG')
pub_ax = publisher.plot(kind="bar")
plt.title(f"{category}-Publisher")
for i, v in enumerate(publisher):
pub_ax.text(i-0.25, v, v)
plt.show()
plt.title(f"{category}-Topic")
top_ax=topic.plot(kind="bar")
for i, v in enumerate(topic):
top_ax.text(i-0.25, v, v)
plt.show()
plt.title(f"{category}-Month")
month.plot()
plt.show()
plt.title(f"{category}-Publisher")
publisher.plot.pie(autopct='%1.1f%%')
plt.show()
plt.title(f"{category}-Topic")
topic.plot.pie(autopct='%1.1f%%')
plt.show()
\ No newline at end of file
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import pyarrow as pa\n",
"import pyarrow.parquet as pq\n",
"from pyarrow.dataset import DirectoryPartitioning"
]
},
{
"cell_type": "code",
"execution_count": 2,
"outputs": [],
"source": [
"category=\"NWRW19\" # NIRW19, NLRW19, NPRW19\n",
"\n"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [
{
"data": {
"text/plain": "author: string\n -- field metadata --\n PARQUET:field_id: '1'\npublisher: string\n -- field metadata --\n PARQUET:field_id: '2'\ndate: timestamp[ms]\n -- field metadata --\n PARQUET:field_id: '3'\ntopic: string\n -- field metadata --\n PARQUET:field_id: '4'\nparagraph: list<item: string>\n child 0, item: string\n -- field metadata --\n PARQUET:field_id: '7'\n -- field metadata --\n PARQUET:field_id: '5'"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table = pq.read_table(f\"parquet/{category}\")\n",
"table.schema\n",
"\n"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": " author publisher date topic \\\n0 권경복 조선일보사 2009-01-01 사회 \n1 최우석 조선일보사 2009-01-01 문화 \n2 민구 조선일보사 2009-01-01 사회 \n3 채현선 조선일보사 2009-01-01 생활 \n4 김민철 조선일보사 2009-01-01 사회 \n... ... ... ... ... \n1442425 김종철 한겨레 2018-12-30 사회 \n1442426 김창금 한겨레 2018-12-30 스포츠 \n1442427 김경무 한겨레 2018-12-30 스포츠 \n1442428 김이택 한겨레 2018-12-30 사회 \n1442429 박찬수 한겨레 2018-12-30 사회 \n\n paragraph \n0 ['발틱의 호랑이' 라트비아, 종이호랑이로…, 잘나가던 强小國서 구제금융 받는 신세... \n1 ["부시는 독서광" 재임중 수백권 읽어 참모와 독서 경쟁도, 조지 W 부시 대통령은... \n2 [나와 나의 시, 집요하게 거리 두기를, 당선소감, 음성메시지로 당선을 통보받았다.... \n3 [내가 만든 음식이 설익지 않도록 뜸들일 것, 당선소감, 당선 통보를 받은 날 밤,... \n4 [與野, 새해에도 계속 대화하기로, 대표 회동 이어 원내대표들도 다시 만나, 여야는... \n... ... \n1442425 [사람/재일양심수동우회, “민주시민이 주는 상 받으니 40여년 맺힌 한 완전히 풀렸... \n1442426 [24/손흥민?이달의?선수상?놓고?살라흐?넘을까?, 손흥민 이달의 선수상 경쟁 살라... \n1442427 [24면/벤투호 새해 첫 단추를 잘 끼워라!, 사우디와의 악연, 새해 새벽 ‘종친다... \n1442428 [사설2/해고자, 세밑 ‘9년 만의 출근’, 아직 굴뚝 위엔 사람이 있다, 31일 ... \n1442429 [사설3/아베, 일본 ‘초계기 영상 공개’ 지시한 아베의 정략, 일본 방위성이 28... \n\n[1442430 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>author</th>\n <th>publisher</th>\n <th>date</th>\n <th>topic</th>\n <th>paragraph</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>권경복</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>['발틱의 호랑이' 라트비아, 종이호랑이로…, 잘나가던 强小國서 구제금융 받는 신세...</td>\n </tr>\n <tr>\n <th>1</th>\n <td>최우석</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>문화</td>\n <td>["부시는 독서광" 재임중 수백권 읽어 참모와 독서 경쟁도, 조지 W 부시 대통령은...</td>\n </tr>\n <tr>\n <th>2</th>\n <td>민구</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>[나와 나의 시, 집요하게 거리 두기를, 당선소감, 음성메시지로 당선을 통보받았다....</td>\n </tr>\n <tr>\n <th>3</th>\n <td>채현선</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>생활</td>\n <td>[내가 만든 음식이 설익지 않도록 뜸들일 것, 당선소감, 당선 통보를 받은 날 밤,...</td>\n </tr>\n <tr>\n <th>4</th>\n <td>김민철</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>[與野, 새해에도 계속 대화하기로, 대표 회동 이어 원내대표들도 다시 만나, 여야는...</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>1442425</th>\n <td>김종철</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사람/재일양심수동우회, “민주시민이 주는 상 받으니 40여년 맺힌 한 완전히 풀렸...</td>\n </tr>\n <tr>\n <th>1442426</th>\n <td>김창금</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>스포츠</td>\n <td>[24/손흥민?이달의?선수상?놓고?살라흐?넘을까?, 손흥민 이달의 선수상 경쟁 살라...</td>\n </tr>\n <tr>\n <th>1442427</th>\n <td>김경무</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>스포츠</td>\n <td>[24면/벤투호 새해 첫 단추를 잘 끼워라!, 사우디와의 악연, 새해 새벽 ‘종친다...</td>\n </tr>\n <tr>\n <th>1442428</th>\n <td>김이택</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사설2/해고자, 세밑 ‘9년 만의 출근’, 아직 굴뚝 위엔 사람이 있다, 31일 ...</td>\n </tr>\n <tr>\n <th>1442429</th>\n <td>박찬수</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사설3/아베, 일본 ‘초계기 영상 공개’ 지시한 아베의 정략, 일본 방위성이 28...</td>\n </tr>\n </tbody>\n</table>\n<p>1442430 rows × 5 columns</p>\n</div>"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt=table.to_pandas()\n",
"dt"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 5,
"outputs": [
{
"data": {
"text/plain": " author publisher date topic \\\n0 권경복 조선일보사 2009-01-01 사회 \n1 최우석 조선일보사 2009-01-01 문화 \n2 민구 조선일보사 2009-01-01 사회 \n3 채현선 조선일보사 2009-01-01 생활 \n4 김민철 조선일보사 2009-01-01 사회 \n... ... ... ... ... \n1442425 김종철 한겨레 2018-12-30 사회 \n1442426 김창금 한겨레 2018-12-30 스포츠 \n1442427 김경무 한겨레 2018-12-30 스포츠 \n1442428 김이택 한겨레 2018-12-30 사회 \n1442429 박찬수 한겨레 2018-12-30 사회 \n\n paragraph category \n0 ['발틱의 호랑이' 라트비아, 종이호랑이로…, 잘나가던 强小國서 구제금융 받는 신세... NWRW19 \n1 ["부시는 독서광" 재임중 수백권 읽어 참모와 독서 경쟁도, 조지 W 부시 대통령은... NWRW19 \n2 [나와 나의 시, 집요하게 거리 두기를, 당선소감, 음성메시지로 당선을 통보받았다.... NWRW19 \n3 [내가 만든 음식이 설익지 않도록 뜸들일 것, 당선소감, 당선 통보를 받은 날 밤,... NWRW19 \n4 [與野, 새해에도 계속 대화하기로, 대표 회동 이어 원내대표들도 다시 만나, 여야는... NWRW19 \n... ... ... \n1442425 [사람/재일양심수동우회, “민주시민이 주는 상 받으니 40여년 맺힌 한 완전히 풀렸... NWRW19 \n1442426 [24/손흥민?이달의?선수상?놓고?살라흐?넘을까?, 손흥민 이달의 선수상 경쟁 살라... NWRW19 \n1442427 [24면/벤투호 새해 첫 단추를 잘 끼워라!, 사우디와의 악연, 새해 새벽 ‘종친다... NWRW19 \n1442428 [사설2/해고자, 세밑 ‘9년 만의 출근’, 아직 굴뚝 위엔 사람이 있다, 31일 ... NWRW19 \n1442429 [사설3/아베, 일본 ‘초계기 영상 공개’ 지시한 아베의 정략, 일본 방위성이 28... NWRW19 \n\n[1442430 rows x 6 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>author</th>\n <th>publisher</th>\n <th>date</th>\n <th>topic</th>\n <th>paragraph</th>\n <th>category</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>권경복</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>['발틱의 호랑이' 라트비아, 종이호랑이로…, 잘나가던 强小國서 구제금융 받는 신세...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1</th>\n <td>최우석</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>문화</td>\n <td>["부시는 독서광" 재임중 수백권 읽어 참모와 독서 경쟁도, 조지 W 부시 대통령은...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>2</th>\n <td>민구</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>[나와 나의 시, 집요하게 거리 두기를, 당선소감, 음성메시지로 당선을 통보받았다....</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>3</th>\n <td>채현선</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>생활</td>\n <td>[내가 만든 음식이 설익지 않도록 뜸들일 것, 당선소감, 당선 통보를 받은 날 밤,...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>4</th>\n <td>김민철</td>\n <td>조선일보사</td>\n <td>2009-01-01</td>\n <td>사회</td>\n <td>[與野, 새해에도 계속 대화하기로, 대표 회동 이어 원내대표들도 다시 만나, 여야는...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>1442425</th>\n <td>김종철</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사람/재일양심수동우회, “민주시민이 주는 상 받으니 40여년 맺힌 한 완전히 풀렸...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442426</th>\n <td>김창금</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>스포츠</td>\n <td>[24/손흥민?이달의?선수상?놓고?살라흐?넘을까?, 손흥민 이달의 선수상 경쟁 살라...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442427</th>\n <td>김경무</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>스포츠</td>\n <td>[24면/벤투호 새해 첫 단추를 잘 끼워라!, 사우디와의 악연, 새해 새벽 ‘종친다...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442428</th>\n <td>김이택</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사설2/해고자, 세밑 ‘9년 만의 출근’, 아직 굴뚝 위엔 사람이 있다, 31일 ...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442429</th>\n <td>박찬수</td>\n <td>한겨레</td>\n <td>2018-12-30</td>\n <td>사회</td>\n <td>[사설3/아베, 일본 ‘초계기 영상 공개’ 지시한 아베의 정략, 일본 방위성이 28...</td>\n <td>NWRW19</td>\n </tr>\n </tbody>\n</table>\n<p>1442430 rows × 6 columns</p>\n</div>"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt['category']=category\n",
"dt"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 6,
"outputs": [
{
"data": {
"text/plain": " author publisher date topic \\\n0 오관철기자 경향신문사 2009-01-01 IT/과학 \n1 대전윤희일기자 경향신문사 2009-01-01 IT/과학 \n2 최병준기자 경향신문사 2009-01-01 IT/과학 \n3 손봉석기자 경향신문사 2009-01-02 IT/과학 \n4 이주영기자 경향신문사 2009-01-02 IT/과학 \n... ... ... ... ... \n1442425 성연철 한겨레 2018-12-28 정치 \n1442426 이정애 한겨레 2018-12-28 정치 \n1442427 정유경 한겨레 2018-12-28 정치 \n1442428 정은주 한겨레 2018-12-28 정치 \n1442429 송경화 한겨레 2018-12-29 정치 \n\n paragraph category \n0 [포털시장 ‘독과점’ 심화…콘텐츠업체에 횡포 우려, ㆍ상위3사가 90% 점유… 불공... NWRW19 \n1 [세계 최고·한국 최고 다 모였네 ‘대덕연구개발특구’, ㆍ인공태양·초고전압 현미경·... NWRW19 \n2 [내 몸, 초식동물에 가깝다…채식예찬 이 책 어때요?, 희망의 밥상…제인 구달 사이... NWRW19 \n3 [LG전자, 런던 새해맞이 불꽃놀이 후원, LG전자가 2009년 1월1일 새벽에 거... NWRW19 \n4 [(3) 전자업계 ‘바닥’ 탈출, ㆍ소비 위축에 마이너스성장 예고ㆍ차별화·고부가 제... NWRW19 \n... ... ... \n1442425 [**(1판)3면/문 대통령, 문희상 국회의장 등과 오찬, 문 대통령, 문희상 국회... NWRW19 \n1442426 [3판/8면/민주?“유치원3법?330일?기다릴?필요?없어”…국정조사?재검토?압박, ... NWRW19 \n1442427 [#3판/9면/31일 조국 운영위 출석 벼르는 야당, 어떤 쟁점 펼쳐질까, ‘조국 ... NWRW19 \n1442428 [10면/홍남기 “최저임금법 시행령 노사”, 홍남기 “최저임금법 시행령 개정안, 노... NWRW19 \n1442429 [#3판/8면/이용호 손금주 입당/4매, ‘국민의당 출신’ 무소속 이용호·손금주, ... NWRW19 \n\n[1442430 rows x 6 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>author</th>\n <th>publisher</th>\n <th>date</th>\n <th>topic</th>\n <th>paragraph</th>\n <th>category</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>오관철기자</td>\n <td>경향신문사</td>\n <td>2009-01-01</td>\n <td>IT/과학</td>\n <td>[포털시장 ‘독과점’ 심화…콘텐츠업체에 횡포 우려, ㆍ상위3사가 90% 점유… 불공...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1</th>\n <td>대전윤희일기자</td>\n <td>경향신문사</td>\n <td>2009-01-01</td>\n <td>IT/과학</td>\n <td>[세계 최고·한국 최고 다 모였네 ‘대덕연구개발특구’, ㆍ인공태양·초고전압 현미경·...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>2</th>\n <td>최병준기자</td>\n <td>경향신문사</td>\n <td>2009-01-01</td>\n <td>IT/과학</td>\n <td>[내 몸, 초식동물에 가깝다…채식예찬 이 책 어때요?, 희망의 밥상…제인 구달 사이...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>3</th>\n <td>손봉석기자</td>\n <td>경향신문사</td>\n <td>2009-01-02</td>\n <td>IT/과학</td>\n <td>[LG전자, 런던 새해맞이 불꽃놀이 후원, LG전자가 2009년 1월1일 새벽에 거...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>4</th>\n <td>이주영기자</td>\n <td>경향신문사</td>\n <td>2009-01-02</td>\n <td>IT/과학</td>\n <td>[(3) 전자업계 ‘바닥’ 탈출, ㆍ소비 위축에 마이너스성장 예고ㆍ차별화·고부가 제...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>1442425</th>\n <td>성연철</td>\n <td>한겨레</td>\n <td>2018-12-28</td>\n <td>정치</td>\n <td>[**(1판)3면/문 대통령, 문희상 국회의장 등과 오찬, 문 대통령, 문희상 국회...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442426</th>\n <td>이정애</td>\n <td>한겨레</td>\n <td>2018-12-28</td>\n <td>정치</td>\n <td>[3판/8면/민주?“유치원3법?330일?기다릴?필요?없어”…국정조사?재검토?압박, ...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442427</th>\n <td>정유경</td>\n <td>한겨레</td>\n <td>2018-12-28</td>\n <td>정치</td>\n <td>[#3판/9면/31일 조국 운영위 출석 벼르는 야당, 어떤 쟁점 펼쳐질까, ‘조국 ...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442428</th>\n <td>정은주</td>\n <td>한겨레</td>\n <td>2018-12-28</td>\n <td>정치</td>\n <td>[10면/홍남기 “최저임금법 시행령 노사”, 홍남기 “최저임금법 시행령 개정안, 노...</td>\n <td>NWRW19</td>\n </tr>\n <tr>\n <th>1442429</th>\n <td>송경화</td>\n <td>한겨레</td>\n <td>2018-12-29</td>\n <td>정치</td>\n <td>[#3판/8면/이용호 손금주 입당/4매, ‘국민의당 출신’ 무소속 이용호·손금주, ...</td>\n <td>NWRW19</td>\n </tr>\n </tbody>\n</table>\n<p>1442430 rows × 6 columns</p>\n</div>"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt.sort_values(by=[\"publisher\",\"topic\"],inplace=True,ignore_index=True)\n",
"dt"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 7,
"outputs": [
{
"data": {
"text/plain": "pyarrow.Table\nauthor: string\npublisher: string\ndate: timestamp[ms]\ntopic: string\nparagraph: list<item: string>\n child 0, item: string\ncategory: string"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table.append_column('category',pa.array([category]*len(table)))"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 8,
"outputs": [],
"source": [
"pq.write_to_dataset( table.append_column('category',pa.array([category]*len(table))), root_path='categorized_parquet',\n",
" partition_cols=['category', 'topic'],coerce_timestamps='us')"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 4,
"outputs": [
{
"data": {
"text/plain": "author: string\n -- field metadata --\n PARQUET:field_id: '1'\npublisher: string\n -- field metadata --\n PARQUET:field_id: '2'\ndate: timestamp[ms]\n -- field metadata --\n PARQUET:field_id: '3'\nparagraph: list<item: string>\n child 0, item: string\n -- field metadata --\n PARQUET:field_id: '6'\n -- field metadata --\n PARQUET:field_id: '4'\ntopic: dictionary<values=string, indices=int32, ordered=0>\n-- schema metadata --\npandas: '{\"index_columns\": [], \"column_indexes\": [], \"columns\": [{\"name\":' + 546"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"test = pq.read_table(f\"categorized_parquet/category=NLRW19/\")\n",
"test.schema"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 9,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" ...\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\",\n",
" \"train\"\n",
"]\n"
]
}
],
"source": [
"l=[]\n",
"count=0\n",
"last_topic=''\n",
"for k,v in enumerate(test['topic']):\n",
" if v!=last_topic:\n",
" count=0\n",
" last_topic=v\n",
" mod=count %100\n",
" if mod==49:\n",
" l.append('valid')\n",
" elif mod==99:\n",
" l.append('test')\n",
" else:\n",
" l.append('train')\n",
" count+=1\n",
"print(pa.array(l))"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
\ No newline at end of file