embedder readme

This commit is contained in:
ajokar 2025-08-16 14:45:44 +03:30
parent 65a6e39425
commit 91d3f9be6c

View File

@ -0,0 +1,70 @@
# تولید بردار جملات (امبدینگ)
این پروژه شامل یک اسکریپت پایتون (`embedding.py`) برای تولید بردارهای جملات با استفاده از کتابخانه [Sentence Transformers] است.
## پیش‌نیازها
قبل از استفاده از این اسکریپت، کتابخانه‌های زیر را نصب کنید:
```bash
pip install sentence-transformers numpy
```
## نحوه عملکرد
- اسکریپت از مدل آماده `sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2` استفاده می‌کند.
- دو تابع اصلی دارد:
- `single_section_embedder(sentence)`: یک جمله (رشته متنی) را گرفته و بردار عددی متناظر با آن را برمی‌گرداند.
- `do_word_embedder(sections)`: یک دیکشنری از بخش‌ها (هر بخش دارای فیلد `content`) را گرفته، برای هر بخش امبدینگ تولید می‌کند و نتیجه را به صورت فایل JSON ذخیره می‌کند.
## نحوه استفاده
### ۱. دریافت امبدینگ برای یک جمله
```python
from embedding import single_section_embedder
sentence = "این یک جمله نمونه است."
embedding = single_section_embedder(sentence)
print(embedding)
```
### ۲. تولید امبدینگ برای چند بخش و ذخیره در فایل
فرض کنید داده‌های شما به صورت زیر است:
```python
sections = {
"1": {"content": "متن بخش اول"},
"2": {"content": "متن بخش دوم"}
}
```
سپس می‌توانید امبدینگ‌ها را به شکل زیر تولید و ذخیره کنید:
```python
from embedding import do_word_embedder
result = do_word_embedder(sections)
```
پس از اجرا، فایلی با نامی مانند `sections_embeddings_سال-ماه-روز-ساعت.json` در مسیر `./data/embeddings/` ساخته می‌شود که شامل امبدینگ هر بخش است.
## ساختار خروجی
خروجی به صورت یک فایل JSON است که برای هر بخش، بردار امبدینگ اضافه شده است:
```json
{
"1": {
"content": "متن بخش اول",
"embeddings": [0.123, 0.456, ...]
},
...
}
```
## نکات
- قبل از اجرا، پوشه `./data/embeddings/` را ایجاد کنید.
- این اسکریپت از زبان فارسی نیز پشتیبانی می‌کند.