Spaces:
Sleeping
Sleeping
File size: 18,170 Bytes
fbed18d 9ce9909 fbed18d 9ce9909 fbed18d 9ce9909 fbed18d 9ce9909 fbed18d 9ce9909 fbed18d 9ce9909 fbed18d 9ce9909 | 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | import numpy as np
from sentence_transformers import SentenceTransformer, util
from datetime import datetime
import re
EMBEDDING_MODEL = "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
QUERY = "по каким стандартам может быть применена сталь 08X18H10T?"
CHUNK_FULL = """
ТАБЛИЦА - из документа НП-089-15
НАЗВАНИЕ: Перечень основных материалов и крепёжных изделий, применяемых для изготовления оборудования и трубопроводов
АЭУ в соответствии с требованиями федеральных норм и правил в области использования атомной энергии
«Правила устройства и безопасной эксплуатации оборудования и трубопроводов атомных энергетических
установок» НП-089-15
РАЗДЕЛ: Приложение № 1 к Сводному перечню документов по стандартизации
======================================================================
ЗАГОЛОВКИ: Тип материала | Марка материала | Стандарт или технические условия на материалы | Листы | Трубы | Поковки | Крепежные изделия | Сортовой прокат | Отливки | Максимальная допускаемая температура применения, Tmax, °C
ДАННЫЕ:
92. Тип материала: Хромо-никелевые стали аустенитного класса | Марка материала: 08X18H10Т | Стандарт или технические условия на материалы: ГОСТ 5632-72 (срок действия до 31 декабря 2020 года), ТУ 14-1-2583-78, ГОСТ 24030-80, ТУ 14-3P-197-2001, ТУ 14-3-935-80, ТУ 108-713-77, ТУ 21-4-83, ОСТ 108.109.01-92, ТУ 108.11.894-87, ТУ 14-3-197-73*, ТУ 108-713-77*, ТУ 108-668-86* | Листы: ГОСТ 5582-75, ГОСТ 7350-77 ( с обязательным выполнением УЗК по п. 3.10б.), ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ТУ 14-1-2542-78, ТУ 14-1-3199-81, ТУ 108-930-80 (без п. 4.7, с обязательным выполнением п. 1.3.6, УЗК и контроля макроструктуры), ОСТ 95-29-72 (с обязательным выполнением УЗК), ТУ 14-1-394-72 (с обязательным выполнением УЗК.), ТУ 14-1-5040-91, ТУ 14-1-5041-91, ТУ 108.11.906-87, ГОСТ 4986-79, ТУ 0993-036-00212179-2009, ОСТ 108.109.01-79* | Трубы: ГОСТ 9940-81 ( только для трубопроводов группы С с обязательным выполнением УЗК.), ГОСТ 9941-81 (только для трубопроводов группы С с обязательным выполнением УЗК.), ОСТ 95-29-72 (с обязательным выполнением УЗК.), ТУ 3-316-87, ТУ 95.349-2000 (только для трубопроводов группы С при максимально допустимой температуре применения 350 °С.), ТУ 14-3-1109-82, ТУ 14-3-1490-87, ГОСТ 24030-80 (кроме группы А.), ТУ 14-3P-197-2001, ТУ 14-3-935-80 (только для трубопроводов группы С.), ТУ 21-4-83, ТУ 108-713-77, ТУ 3113-004-16801570-2002, ТУ 187-ТУ-039С, ТУ 14-158-131-2008, ТУ 14-3P-760-2006, ТУ 3113-027-07516250-2008, ТУ 95.349-86* (только для трубопроводов группы С при максимально допустимой температуре применения 350 °С.), ТУ 14-3-197-73* | Поковки: ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ОСТ 95-29-72 (с обязательным выполнением УЗК), ГОСТ 25054-81 (группы 4, 4К, 5 и 5К с обязательным выполнением УЗК по п. 3.3.), ТУ 108-930-80 (без п. 4.7, с обязательным выполнением п. 1.3.6, УЗК и контроля макроструктуры.), ТУ 108.11.894-87, ОСТ108.109.01-79*, ТУ 108-668-86* | Крепежные изделия: ГОСТ 20700-75 (ГОСТ 20700-75- только для оборудования и трубопроводов группы С.), ГОСТ 23304-78 | Сортовой прокат: ГОСТ 5949-75 ( с обязательным выполнением УЗК.), ОСТ 95-29-72 (с обязательным выполнением УЗК.), ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ТУ 14-1-5039-91, ТУ 14-1-2583-78 | Максимальная допускаемая температура применения, Tmax, °C: 600 | _idx: 92
93. Тип материала: Хромо-никелевые стали аустенитного класса | Марка материала: 08X18H10T-Ш | Стандарт или технические условия на материалы: ТУ 08.001.05015348-92, ТУ 108.668-86 | Листы: ТУ 0993-036-00212179-2009 | Трубы: ТУ 14-3P-197-2001, ТУ 14-3P-760-2006 | Поковки: ТУ 108.668-86 | Сортовой прокат: ТУ 08.001.05015348-92, ТУ 108-668-86* | Максимальная допускаемая температура применения, Tmax, °C: 600 | _idx: 93
Строки 92-93 из 146
======================================================================
КОНЕЦ ТАБЛИЦЫ - ИЗ НП-089-15
"""
CHUNK_SHORT = """
ТАБЛИЦА - из документа НП-089-15
НАЗВАНИЕ: Перечень основных материалов и крепёжных изделий, применяемых для изготовления оборудования и трубопроводов
АЭУ в соответствии с требованиями федеральных норм и правил в области использования атомной энергии
«Правила устройства и безопасной эксплуатации оборудования и трубопроводов атомных энергетических
установок» НП-089-15
РАЗДЕЛ: Приложение № 1 к Сводному перечню документов по стандартизации
ДАННЫЕ:
92. Тип материала: Хромо-никелевые стали аустенитного класса; Марка материала: 08X18H10Т; Стандарт или технические условия на материалы: ГОСТ 5632-72 (срок действия до 31 декабря 2020 года), ТУ 14-1-2583-78, ГОСТ 24030-80, ТУ 14-3P-197-2001, ТУ 14-3-935-80, ТУ 108-713-77, ТУ 21-4-83, ОСТ 108.109.01-92, ТУ 108.11.894-87, ТУ 14-3-197-73*, ТУ 108-713-77*, ТУ 108-668-86*; Листы: ГОСТ 5582-75, ГОСТ 7350-77 ( с обязательным выполнением УЗК по п. 3.10б.), ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ТУ 14-1-2542-78, ТУ 14-1-3199-81, ТУ 108-930-80 (без п. 4.7, с обязательным выполнением п. 1.3.6, УЗК и контроля макроструктуры), ОСТ 95-29-72 (с обязательным выполнением УЗК), ТУ 14-1-394-72 (с обязательным выполнением УЗК.), ТУ 14-1-5040-91, ТУ 14-1-5041-91, ТУ 108.11.906-87, ГОСТ 4986-79, ТУ 0993-036-00212179-2009, ОСТ 108.109.01-79*; Трубы: ГОСТ 9940-81 ( только для трубопроводов группы С с обязательным выполнением УЗК.), ГОСТ 9941-81 (только для трубопроводов группы С с обязательным выполнением УЗК.), ОСТ 95-29-72 (с обязательным выполнением УЗК.), ТУ 3-316-87, ТУ 95.349-2000 (только для трубопроводов группы С при максимально допустимой температуре применения 350 °С.), ТУ 14-3-1109-82, ТУ 14-3-1490-87, ГОСТ 24030-80 (кроме группы А.), ТУ 14-3P-197-2001, ТУ 14-3-935-80 (только для трубопроводов группы С.), ТУ 21-4-83, ТУ 108-713-77, ТУ 3113-004-16801570-2002, ТУ 187-ТУ-039С, ТУ 14-158-131-2008, ТУ 14-3P-760-2006, ТУ 3113-027-07516250-2008, ТУ 95.349-86* (только для трубопроводов группы С при максимально допустимой температуре применения 350 °С.), ТУ 14-3-197-73*; Поковки: ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ОСТ 95-29-72 (с обязательным выполнением УЗК), ГОСТ 25054-81 (группы 4, 4К, 5 и 5К с обязательным выполнением УЗК по п. 3.3.), ТУ 108-930-80 (без п. 4.7, с обязательным выполнением п. 1.3.6, УЗК и контроля макроструктуры.), ТУ 108.11.894-87, ОСТ108.109.01-79*, ТУ 108-668-86*; Крепежные изделия: ГОСТ 20700-75 (ГОСТ 20700-75- только для оборудования и трубопроводов группы С.), ГОСТ 23304-78; Сортовой прокат: ГОСТ 5949-75 ( с обязательным выполнением УЗК.), ОСТ 95-29-72 (с обязательным выполнением УЗК.), ОСТ 108.109.01-92 (с ограничением содержания кобальта в соответствии с примечанием 1 к пункту 1.5), ТУ 14-1-5039-91, ТУ 14-1-2583-78; Максимальная допускаемая температура применения, Tmax, °C: 600
93. Тип материала: Хромо-никелевые стали аустенитного класса; Марка материала: 08X18H10T-Ш; Стандарт или технические условия на материалы: ТУ 08.001.05015348-92, ТУ 108.668-86; Листы: ТУ 0993-036-00212179-2009; Трубы: ТУ 14-3P-197-2001, ТУ 14-3P-760-2006; Поковки: ТУ 108.668-86; Сортовой прокат: ТУ 08.001.05015348-92, ТУ 108-668-86*; Максимальная допускаемая температура применения, Tmax, °C: 600"""
CHUNK_3000_30="""
ТАБЛИЦА - из документа НП-089-15
НАЗВАНИЕ: Перечень основных материалов и крепёжных изделий, применяемых для изготовления оборудования и трубопроводов
АЭУ в соответствии с требованиями федеральных норм и правил в области использования атомной энергии
«Правила устройства и безопасной эксплуатации оборудования и трубопроводов атомных энергетических
установок» НП-089-15
РАЗДЕЛ: Приложение № 1 к Сводному перечню документов по стандартизации
======================================================================
ЗАГОЛОВКИ: Тип материала | Марка материала | Стандарт или технические условия на материалы | Листы | Трубы | Поковки | Крепежные изделия | Сортовой прокат | Отливки | Максимальная допускаемая температура применения, Tmax, °C
ДАННЫЕ:
97. Тип материала: Хромо-никелевые стали аустенитного класса | Марка материала: 09X18H9 | Стандарт или технические условия на материалы: ТУ 14-1-3409-2007,
ТУ 14-3-1061-81,
ТУ 14-1-1288-75,
ТУ 14-159-295-2004,
ТУ 14-161-216-2003,
ТУ 14-123-194-2006,
ТУ 14-156-101-2013,
ТУ У27.2-05757883-150:2007/ТУ 14-3-1233:2007,
ТУ 14-3-52-72*,
ТУ 108.11.328-78*,
ТУ 14-1-3409-82*,
ТУ 14-3-760-78* | Листы: ТУ 14-123-194-2006 (с обязательным выполнением УЗК для листов толщиной 5 мм и более.), ТУ 14-1-3409-2007 (без примечания 3 к таблице 1.), ТУ108-111-328-78*, ТУ 14-1-3409-82* (без примечания 4 к табл. 2.) | Трубы: ТУ 14-3P-760-2006, ТУ 14-3-1061-81, ТУ 14-159-295-2004, ТУ 14-161-216-2003, ТУ 156-101-2013, ТУ У27.2-05757883-150:200/ТУ 14-3-1233:2007, ТУ 14-3-760-78*, ТУ 14-3-52-72* | Поковки: ТУ 14-1-1288-75 (в термообработанном состоянии с обязательным выполнением УЗК.) | Сортовой прокат: ТУ 14-1-1288-75 (в термообработанном состоянии с обязательным выполнением УЗК.) | Максимальная допускаемая температура применения, Tmax, °C: 600 | _idx: 97
98. Тип материала: Хромо-никелевые стали аустенитного класса | Марка материала: 08X18H12Т | Стандарт или технические условия на материалы: ГОСТ 5632-72 (срок действия до 31 декабря 2020 года), ТУ 14-3P-197-2001, ТУ 14-3-197-73*, ТУ 14-3-1109-82* | Листы: ГОСТ 5582-75, ГОСТ 7350-77 ( с обязательным выполнением УЗК по п. 3.10б.), ТУ 14-1-394-72 (с обязательным выполнением УЗК.) | Трубы: ГОСТ 9940-81 ( только для трубопроводов и оборудования группы С в термообработанном состоянии с обязательным
выполнением УЗК), ГОСТ 9941-81 (только для трубопроводов и оборудования группы С в термообработанном состоянии с обязательным выполнением УЗК), ТУ 14-3-1109-82, ТУ 95.349-2000, ОСТ 95-29-72, (с обязательным выполнением УЗК), ГОСТ 14162-79, ТУ 3113-004-16801570-2002, ТУ 187-ТУ-039С, ТУ 14-158-131-2008 | Максимальная допускаемая температура применения, Tmax, °C: 600 | _idx: 98
Строки 97-98 из 146
======================================================================
КОНЕЦ ТАБЛИЦЫ - ИЗ НП-089-15
"""
mapping = {
'X': 'Х', 'H': 'Н', 'T': 'Т', 'C': 'С', 'B': 'В', 'K': 'К', 'M': 'М', 'A': 'А', 'R': 'Р', 'P': 'Р',
'x': 'х', 'h': 'н', 't': 'т', 'c': 'с', 'b': 'в', 'k': 'к', 'm': 'м', 'a': 'а', 'r': 'р', 'p': 'р'
}
token_re = re.compile(r'\b[0-9A-Za-zА-Яа-яЁё\-\+_/\.]+\b')
def replace_latin_in_steel_tokens(text):
def repl_token(match):
token = match.group(0)
has_digit = any(ch.isdigit() for ch in token)
has_latin = any('A' <= ch <= 'Z' or 'a' <= ch <= 'z' for ch in token)
if has_digit and has_latin:
new_chars = []
for ch in token:
if ord(ch) < 128 and ch in mapping:
new_chars.append(mapping[ch])
else:
new_chars.append(ch)
return ''.join(new_chars)
else:
return token
return token_re.sub(repl_token, text)
def cosine_similarity(a, b):
return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))
def main():
model = SentenceTransformer(EMBEDDING_MODEL)
print(f"🔹 Loaded embedding model: {EMBEDDING_MODEL}\n")
query_fixed = replace_latin_in_steel_tokens(QUERY)
chunk_fixed = replace_latin_in_steel_tokens(CHUNK_FULL)
chunk_fixed_2 = replace_latin_in_steel_tokens(CHUNK_SHORT)
chunk_fixed_3 = replace_latin_in_steel_tokens(CHUNK_3000_30)
embeddings = model.encode([query_fixed, chunk_fixed, chunk_fixed_2, chunk_fixed_3])
query_emb, full_emb, short_emb, chunk_3000_emb = embeddings
sim_full = cosine_similarity(query_emb, full_emb)
sim_short = cosine_similarity(query_emb, short_emb)
sim_3000_30 = cosine_similarity(query_emb, chunk_3000_emb)
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
result_text = (
f"Запрос: {QUERY}\n\n"
f"Сходство (полный чанк): {sim_full:.4f}\n"
f"Сходство (сокращённый чанк): {sim_short:.4f}\n"
f"Сходство (чанк 3000 символов, 30 строк): {sim_3000_30:.4f}\n\n"
f"Вывод: {'Сокращённый чанк ближе к запросу' if sim_short > sim_full else 'Полный чанк ближе к запросу'}\n"
)
output_file = f"chunk_similarity_results_{timestamp}.txt"
with open(output_file, "w", encoding="utf-8") as f:
f.write(result_text)
print(result_text)
print(f"✅ Результаты сохранены в файл: {output_file}")
if __name__ == "__main__":
main() |