You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
conversion_utils/run.py

60 lines
2.1 KiB

import os
from conversion_utils.conllu_to_tei import convert_file
import csv
# dir_path = 'data/conllu'
# out_dir_path = 'data/tei'
# for filename in os.listdir(dir_path):
# in_name = os.path.join(dir_path, filename)
# out_filename = filename.split('.')[:-1]
# out_filename = '.'.join(out_filename) + '.xml'
# out_name = os.path.join(out_dir_path, out_filename)
# convert_file(in_name, out_name)
metadata_list = []
with open('data/metadata.csv', newline='') as csvfile:
for line in csv.reader(csvfile):
metadata_list.append(line)
metadata = [{} for i in range(len(metadata_list[0]) - 1)]
for i in range(1, len(metadata_list[0])):
metadata[i - 1]['title'] = metadata_list[0][i]
metadata[i - 1]['subtitle'] = metadata_list[1][i]
metadata[i - 1]['authors'] = metadata_list[2][i]
metadata[i - 1]['first_edition'] = metadata_list[3][i]
metadata[i - 1]['edition_in_corpus'] = metadata_list[4][i]
metadata[i - 1]['layer_according_to_SEJO'] = metadata_list[5][i]
metadata[i - 1]['audience'] = metadata_list[6][i]
metadata[i - 1]['hours_of_classes'] = metadata_list[7][i]
metadata[i - 1]['publisher'] = metadata_list[8][i]
metadata[i - 1]['file_name'] = metadata_list[9][i]
dir_path = 'data/conllu'
out_path = 'data/tei/tei.xml'
out_dir = 'data/conllu.conllu'
# out_dir = dir_path + '/conllu_small.conllu'
metadata_indices = [6, 16, 13, 7, 2, 1, 3, 14, 15, 0, 8, 4, 11, 9, 12, 5, 10]
out_file = open(out_dir, 'w')
metadata_indices = []
for fn_i, filename in enumerate(os.listdir(dir_path)):
in_name = os.path.join(dir_path, filename)
out_filename = filename.split('.')[:-1]
out_filename = '.'.join(out_filename)
for m_i, el in enumerate(metadata):
if el['file_name'] == out_filename:
metadata_indices.append(m_i)
out_filename = out_filename + '.xml'
out_name = os.path.join(out_dir, out_filename)
in_file = open(in_name, 'r')
data = f'# newdoc id = doc{str(fn_i+1)}\n'
data += in_file.read()
in_file.close()
out_file.write(data)
out_file.close()
shuffled_metadata = [metadata[el] for el in metadata_indices]
convert_file(out_dir, out_path, shuffled_metadata)