项目文件夹

文件
2026-07-13 12:37:18 +08:00

31 行
1.1 KiB
Python

# -*- coding:utf-8 -*-
# Author: hankcs
# Date: 2020-12-07 21:45
import os
import shutil
from hanlp.components.parsers.ud.udify_util import get_ud_treebank_files
from hanlp.utils.io_util import get_resource
from hanlp.utils.log_util import flash
def concat_treebanks(home, version):
ud_home = get_resource(home)
treebanks = get_ud_treebank_files(ud_home)
output_dir = os.path.abspath(os.path.join(ud_home, os.path.pardir, os.path.pardir, f'ud-multilingual-v{version}'))
if os.path.isdir(output_dir):
return output_dir
os.makedirs(output_dir)
train, dev, test = list(zip(*[treebanks[k] for k in treebanks]))
for treebank, name in zip([train, dev, test], ["train.conllu", "dev.conllu", "test.conllu"]):
flash(f'Concatenating {len(train)} treebanks into {name} [blink][yellow]...[/yellow][/blink]')
with open(os.path.join(output_dir, name), 'w') as write:
for t in treebank:
if not t:
continue
with open(t, 'r') as read:
shutil.copyfileobj(read, write)
flash('')
return output_dir