-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtxt2KGX.py
More file actions
59 lines (49 loc) · 2.34 KB
/
Copy pathtxt2KGX.py
File metadata and controls
59 lines (49 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import json
import argparse
from extractor import Entity_Relationships_Recognition, process_kgx_json
def main():
"""
Главная функция для парсинга аргументов и запуска обработки.
"""
parser = argparse.ArgumentParser(
description="Извлекает сущности и отношения из текстовой статьи и дозаписывает их в TSV-файлы формата KGX."
)
# Позиционный аргумент для входного файла
parser.add_argument(
'input_file',
type=str,
help='Путь к входному текстовому файлу (статье).'
)
# Опциональные аргументы для выходных файлов
parser.add_argument(
'--nodes-file',
type=str,
default='nodes.tsv',
help='Имя выходного файла для узлов (по умолчанию: nodes.tsv)'
)
parser.add_argument(
'--edges-file',
type=str,
default='edges.tsv',
help='Имя выходного файла для ребер (по умолчанию: edges.tsv)'
)
args = parser.parse_args()
# Чтение текста статьи из файла, указанного в аргументах
try:
with open(args.input_file, 'r', encoding='utf-8') as file:
article_text = file.read()
except FileNotFoundError:
print(f"Ошибка: Входной файл не найден по пути '{args.input_file}'")
return # Прекращаем выполнение, если файл не найден
# Основной блок обработки
try:
# 1. Извлечение данных из текста
kgx_data = Entity_Relationships_Recognition(article_text=article_text)
# 2. Обработка и сохранение данных в TSV
process_kgx_json(kgx_data, args.nodes_file, args.edges_file)
except json.JSONDecodeError:
print("Ошибка: Неверный формат JSON получен от модуля распознавания.")
except Exception as e:
print(f"Произошла непредвиденная ошибка: {e}")
if __name__ == '__main__':
main()