ONNX Model Zoo

ondame/room-name-similarity

By ondame · ↓ 0 · ♥ 0 · Updated 2025-11-18

What's in this repo

This page lists the files in ondame/room-name-similarity, including encoder.onnx.

  • 1 ONNX models (.onnx files)
  • 6 files, including 1 .md, 1 .onnx, 1 .py, 1 .pth, 1 .json
  • Last updated 2025-11-18

ONNX files

File Size Download
encoder.onnx — Download

How to use

These ONNX files can be loaded with ONNX Runtime. To inspect a model graph, upload the file to the Netron viewer. Download links point to the original files on Hugging Face.

README

Room Name Similarity Model

객실명 텍스트 유사도 측정을 위한 Siamese 네트워크 모델입니다.

모델 개요

이 모델은 숙소 객실명 간의 유사도를 측정하여 동일한 물리적 객실을 식별하는 데 사용됩니다. BERT 기반 Siamese 네트워크를 사용하여 한국어와 영어 텍스트를 모두 처리할 수 있습니다.

모델 정보

  • 모델명: name_similarity_model_0.2
  • 기반 모델: klue/bert-base
  • 최대 시퀀스 길이: 64
  • 어휘 크기: 32,000
  • 언어: 한국어, 영어

사용법

Python으로 모델 사용

import torch
from transformers import AutoTokenizer, AutoModel
import json

# 모델 정보 로드
with open('name_similarity_model_0.2_model_info.json', 'r') as f:
    model_info = json.load(f)

with open('name_similarity_model_0.2_tokenizer_info.json', 'r') as f:
    tokenizer_info = json.load(f)

# 토크나이저 로드
tokenizer = AutoTokenizer.from_pretrained(tokenizer_info['model_name'])

# 모델 로드 (PyTorch)
model = torch.load('name_similarity_model_0.2.pth', map_location='cpu')
model.eval()

# ONNX 모델 사용 (더 빠른 추론)
import onnxruntime as ort
onnx_session = ort.InferenceSession('name_similarity_model_0.2.onnx')

def calculate_similarity(text1, text2):
    # 텍스트 토크나이징
    inputs1 = tokenizer(text1, return_tensors='pt', max_length=64, padding=True, truncation=True)
    inputs2 = tokenizer(text2, return_tensors='pt', max_length=64, padding=True, truncation=True)
    
    # 유사도 계산
    with torch.no_grad():
        similarity = model(inputs1, inputs2)
    
    return similarity.item()

# 예시 사용
text1 = "스탠다드 더블룸"
text2 = "Standard Double Room"
similarity_score = calculate_similarity(text1, text2)
print(f"유사도: {similarity_score:.4f}")

ONNX 모델 사용 (권장)

import onnxruntime as ort
import numpy as np
from transformers import AutoTokenizer

# ONNX 세션 생성
session = ort.InferenceSession('name_similarity_model_0.2.onnx')

# 토크나이저 로드
tokenizer = AutoTokenizer.from_pretrained('klue/bert-base')

def calculate_similarity_onnx(text1, text2):
    # 텍스트 토크나이징
    inputs1 = tokenizer(text1, return_tensors='np', max_length=64, padding=True, truncation=True)
    inputs2 = tokenizer(text2, return_tensors='np', max_length=64, padding=True, truncation=True)
    
    # ONNX 모델 추론
    input_feed = {
        'input_ids_1': inputs1['input_ids'].astype(np.int64),
        'attention_mask_1': inputs1['attention_mask'].astype(np.int64),
        'input_ids_2': inputs2['input_ids'].astype(np.int64),
        'attention_mask_2': inputs2['attention_mask'].astype(np.int64)
    }
    
    similarity = session.run(None, input_feed)[0]
    return similarity[0][0]

# 예시 사용
similarity_score = calculate_similarity_onnx("스탠다드 더블룸", "Standard Double Room")
print(f"유사도: {similarity_score:.4f}")

모델 파일

  • name_similarity_model_0.2.pth: PyTorch 모델 파일
  • name_similarity_model_0.2.onnx: ONNX 모델 파일 (추론 최적화)
  • name_similarity_model_0.2_model_info.json: 모델 메타데이터
  • name_similarity_model_0.2_tokenizer_info.json: 토크나이저 정보

성능

  • 정확도: 85% 이상
  • F1 Score: 0.85 이상
  • 처리 속도: 1000 쌍/초 이상 (ONNX 모델 기준)

훈련 데이터

이 모델은 다음과 같은 데이터로 훈련되었습니다:

  • 긍정 쌍: 같은 roomtype_id를 가진 객실명들
  • 부정 쌍: 같은 property_id이지만 다른 roomtype_id를 가진 객실명들

라이선스

MIT License

참고

이 모델은 Room Clusterer 프로젝트의 일부로 개발되었습니다. 더 자세한 정보는 프로젝트 저장소를 참조하세요.

Model info

feature-extraction transformers
transformers onnx siamese-network text-similarity feature-extraction korean room-classification bert ko en license:mit endpoints_compatible
↓ 0 ♥ 0

Created: 2025-09-26

Updated: 2025-11-18

View on Hugging Face

Files (6)

.gitattributes
README.md
encoder.onnx ONNX
inference_example.py
model.pth
model_info.json

Related models