embedder readme
This commit is contained in:
parent
65a6e39425
commit
91d3f9be6c
|
@ -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/` را ایجاد کنید.
|
||||||
|
- این اسکریپت از زبان فارسی نیز پشتیبانی میکند.
|
Loading…
Reference in New Issue
Block a user