返回模型
说明文档
房型名称相似度模型
这是一个用于测量房型名称文本相似度的孪生网络(Siamese)模型。
模型概述
该模型用于测量住宿房型名称之间的相似度,以识别相同的物理房型。使用基于BERT的孪生网络,可以同时处理韩语和英语文本。
模型信息
- 模型名称:
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'])
# 加载模型
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分数: 0.85以上
- 处理速度: 1000对/秒以上 (基于ONNX模型)
训练数据
该模型使用以下数据进行训练:
- 正样本对: 具有相同
roomtype_id的房型名称 - 负样本对: 具有相同
property_id但不同roomtype_id的房型名称
许可证
MIT License
参考
该模型是Room Clusterer项目的一部分开发的。更多信息请参阅项目仓库。
ondame/room-name-similarity
作者 ondame
feature-extraction
transformers
↓ 0
♥ 0
创建时间: 2025-09-26 06:56:28+00:00
更新时间: 2025-11-18 03:49:36+00:00
在 Hugging Face 上查看文件 (6)
.gitattributes
README.md
encoder.onnx
ONNX
inference_example.py
model.pth
model_info.json