File size: 3,627 Bytes
961b569
 
9ce4d60
 
 
 
 
 
 
 
 
961b569
9ce4d60
 
 
dfcd81c
 
 
2f1101c
dfcd81c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fd43029
dfcd81c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ce4d60
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
---
license: apache-2.0
language:
- fa
base_model:
- IRI2070/fa-address-bert-small
pipeline_tag: sentence-similarity
tags:
- address
- etl
- record-linkage
---

<div dir="rtl">

# 📑 مدل embedding اختصاصی برای آدرس‌های فارسی

## 🏛 معرفی
این مدل محصول جانبی و نسخه ریز تنظیم شده مدل پایه [`fa-address-bert-small`](https://huggingface.co/IRI2070/fa-address-bert-small) است که بر اساس آدرس‌های واقعی توسعه داده شده است. هدف اصلی مدل، **تولید بردار embedding برای هر آدرس فارسی** است تا بتوان از آن در وظایف **شباهت‌سنجی، تطبیق رکورد، خوشه‌بندی و جستجوی معنایی آدرس‌ها** استفاده کرد.

---

## 🎯 کاربردها
- محاسبه شباهت معنایی بین آدرس‌های فارسی  
- استفاده در سیستم‌های تطبیق رکورد و پاکسازی داده  
- خوشه‌بندی آدرس‌ها
- جستجوی هوشمند آدرس در پایگاه‌های داده بزرگ  

---

## 📂 داده‌های آموزشی
مدل روی دیتاستی با حدود **۱ میلیون رکورد آدرس** آموزش دیده است. فرآیند تولید داده به شرح زیر است:

- استخراج آدرس‌های صحت‌سنجی‌شده از **سامانه ثبت‌نام مالیاتی (گام ۴۴ و ۴۵)**  
- پاکسازی و نرمال‌سازی کامل آدرس‌ها  
- تطبیق کد پستی این آدرس‌ها با جدول پروژه **GNAF شرکت پست جمهوری اسلامی ایران**  
- تولید مثال‌های آموزشی به ازای هر آدرس:
  - **۱ مثال Hard Positive**: آدرس واقعی با کد پستی منطبق در جدول GNAF
  - **۹ مثال Hard Negative**: آدرس‌های بسیار شبیه از نظر متن ولی با کد پستی متفاوت در جدول GNAF

برای تولید مثال‌های Hard Negative از یک مدل **FastText سفارشی** استفاده شد که بر اساس کورپوس ۱۰۰ گیگابایتی آدرس‌های فارسی آموزش دیده بود (همان کورپوسی که برای مدل [`fa-address-bert-small`](https://huggingface.co/IRI2070/fa-address-bert-small) استفاده شده بود).

---

## ⚙️ معماری و تنظیمات
- Base architecture: [SBERT](https://www.sbert.net)  
- زبان: فارسی  
- تعداد رکورد آموزشی: ~1,000,000  
- نوع مثال‌ها: Hard Positive / Hard Negative  
- هدف آموزش: Triplet/Contrastive embedding learning برای شباهت‌سنجی دقیق آدرس‌ها  

---

## 🧾 نحوه استفاده

</div>


```python
from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer("IRI2070/fa-address-bert-small-embedding")

address_1 = "تهران، خیابان آزادی، نبش خوش، پلاک ۱۲"
address_2 = "تهران، خ آزادی، تقاطع خوش، پلاک ۱۲"

embedding_1 = model.encode(address_1, convert_to_tensor=True)
embedding_2 = model.encode(address_2, convert_to_tensor=True)

similarity = util.cos_sim(embedding_1, embedding_2)
print(f"Similarity score: {similarity.item():.4f}")
```

---

<div dir="rtl">

© این مدل توسط **وزارت امور اقتصادی و دارایی، سازمان امور مالیاتی کشور، معاونت فناوری‌های مالیاتی، دفتر علوم داده** توسعه یافته است.

</div>