| فایل اولیهی دادگان آموزش و آزمون را میتوانید از [این لینک](/contest/assignments/89594/download_problem_initial_project/304433/) دانلود کنید. |
|:-:|
**توجه: در این سوال نیازی به استفاده از LLM ندارید!**
### توضیحات داده
در این سوال شما قراره نسبت کلمهها به هم دیگه رو پیدا کنید.
به شما سه کلمه به فرمت `A : B :: C : ?` داده میشه و شما باید کلمهی چهارم رو پیدا کنید.
(یعنی نسبت `A` به `B`، مثل نسبت `C` هست به `؟`)
### هدف
- ورودی شما فایل متنی است که در هر سطر سه توکن (کلمه) داره: A B C ? و دستهبندی مربوط به آن هست.
- برای هر سطر باید یک کلمهٔ پاسخ (D) تولید کنید؛ خروجی شما فایلی است که در هر سطر دقیقاً همان یک پاسخ نوشته شده.
- شما باید بر روی سیستم خود از یک مدل لوکال word embedding استفاده کرده و نتیجه را محاسبه کنید. سپس نتیجه و کدی که نتیجه را تولید کرده است را ارسال کنید.
مثلا:
- `boy : king :: girl : ? → queen`
- `Athens : Greece :: Tokyo ? → Japan`
- `Canada : dollar :: Europe ? → euro`
- `dancing : danced :: swim ? → swam`
- `write : writes :: go ? → goes`
فایل **word-analogy-train.txt** را میتوانید برای صحتسنجی کد خود استفاده کنید.
ولی ارزیابی اصلی بر روی خروجی که از فایل **word-analogy-test.csv** ارسال میکنید، انجام میشود.
دقت شود که در این فایلها تعدادی از خطوط کتگوری کلمات را مشخص میکنند. این خطوط با # شروع میشوند.
توکنها را دقیق و بدون تغییر چاپ کنید. (حساسیت به آندرلاین و کوچکی/بزرگی حروف وجود دارد.)
همچنین عبارات چندکلمهای با آندرلاین آماده است؛ مثلاً United_States. حروف را همانطور که در فایل هست، نگه دارید.
دقت کنید که برای حل سوال، استفاده از مدلهای زبانی مجاز نمیباشد و میبایست از مدل لوکال استفاده کنید.
برای ارزیابی، کد شما اجرا میشود و میبایست خروجیای را که به عنوان submission.csv آپلود کردهاید، تولید کند.
**نحوه امتیازدهی**
- معیار اصلی، دقت Top-1 روی کل دادهی تست هست؛ یعنی چند درصد پاسخهای شما دقیقاً درستاند.
# آنچه باید آپلود کنید
**فایل `result.zip`** شامل موارد زیر باشد:
1. **`submission.csv`** — خروجی اصلی برای مقایسهٔ خودکار.
**فرمت دقیق و اجباری:**
| ستون | توضیح |
| ----------- | ----- |
| category| دستهبندی مربوطه|
| word4|کلمهی تولید شده|
دقت شود که نام ستونهای این فایل category و word4 میباشند.
مثال:
```
category,word4
capital-common-countries,Germany
capital-common-countries,England
```
2. شما باید فایل `solution.py` را ارسال کنید که در آن کلاس `WordAnalogy` را پیادهسازی کنید که حاوی تابعی به اسم `run` باشد که یک آرگومان بهعنوان ورودی میگیرد. برای مثال:
```python solution.py
class WordAnalogy:
def run(self, input):
```
ورودی تابع(یعنی input) لیستی تودرتو از سطرهای فایل csv ورودی است. خروجی کد شما نیز میبایست فایل تولید شدهی submission.csv باشد.
3. فایل requirements.txt
اگر از کتابخانهای استفاده کردهاید که نیاز به نصب دارد، نام آنها و ورژن موردنظر را در این فایل بیاورید.(در هر خط، یک کتابخانه)
4. فایل model.txt
در این فایل در صورت نیاز، لینک دانلود مدل خود را قرار دهید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.