embedding_model/data_preprocess_notebook/data_loader_miracle.ipynb
2025-11-08 14:25:39 +00:00

183 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "f79319fa",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2107\n",
"21844\n",
"2207172\n"
]
}
],
"source": [
"dataset_miracle_topics = []\n",
"with open('/home/firouzi/embedding_model/data_preprocess/data/miracl/miracl-v1.0-fa/topics/topics.miracl-v1.0-fa-train.tsv', 'r') as f:\n",
" for line in f:\n",
" qid, topic = line.strip().split('\\t')\n",
" dataset_miracle_topics.append({'qid': qid, 'topic': topic})\n",
"\n",
"dataset_miracle_qrels = []\n",
"with open('/home/firouzi/embedding_model/data_preprocess/data/miracl/miracl-v1.0-fa/qrels/qrels.miracl-v1.0-fa-train.tsv', 'r') as f:\n",
" for line in f:\n",
" qid, _, docid, rel = line.strip().split('\\t')\n",
" dataset_miracle_qrels.append({'qid': qid, 'docid': docid, 'rel': rel})\n",
"\n",
"import json\n",
"\n",
"dataset_miracle_corpus = {}\n",
"for i in range(5):\n",
" with open(f'/home/firouzi/embedding_model/data_preprocess/data/miracl-corpus/miracl-corpus-v1.0-fa/docs-{i}.jsonl', 'r', encoding='utf-8') as f:\n",
" for line in f:\n",
" json_data = json.loads(line)\n",
" dataset_miracle_corpus[json_data['docid']] = json_data\n",
"\n",
"print(len(dataset_miracle_topics))\n",
"print(len(dataset_miracle_qrels))\n",
"print(len(dataset_miracle_corpus.keys()))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8ce0ad2b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2107\n"
]
}
],
"source": [
"all_dataset = []\n",
"for data_topic in dataset_miracle_topics:\n",
" qid = data_topic['qid']\n",
" topic = data_topic['topic']\n",
"\n",
" passgae_positive = []\n",
" passgae_negative = []\n",
" for data_qrel in dataset_miracle_qrels:\n",
"\n",
" if qid == data_qrel['qid']:\n",
" data_corpus = dataset_miracle_corpus[data_qrel['docid']]\n",
" \n",
" if data_qrel['rel'] == '1':\n",
" passgae_positive.append({'title': data_corpus['title'].replace('\\u200c', ' '), 'text': data_corpus['text'].replace('\\u200c', ' ')})\n",
" \n",
" else:\n",
" passgae_negative.append({'title': data_corpus['title'].replace('\\u200c', ' '), 'text': data_corpus['text'].replace('\\u200c', ' ')})\n",
"\n",
" all_dataset.append({'question': topic, 'passgae_positive': passgae_positive, 'passgae_negative': passgae_negative})\n",
"\n",
"print(len(all_dataset))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "68c6b79d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'question': 'برای ازبین بردن آفات هز چه سمی استفاده می شود؟',\n",
" 'passgae_positive': [{'title': 'آلودگی خاک',\n",
" 'text': 'سموم دفع آفات ماده ای است که برای از بین بردن آفت استفاده می شود. سموم دفع آفات ممکن است یک ماده شیمیایی، عامل بیولوژیکی (مانند ویروس یا باکتری)، ضد میکروبی، ضد عفونی کننده یا وسیله ای باشد که در برابر هر نوع آفت استفاده می شود. آفات شامل حشرات، عوامل بیماری زای گیاهی، علف های هرز، نرم تنان، پرندگان، پستانداران، ماهی ها، نماتدها (کرم های گرد) و میکروب هایی است که برای غذا با انسان رقابت می کنند، اموال را از بین می برند، گسترش می یابند یا ناقل بیماری هستند یا باعث آزار می شوند. اگرچه استفاده از سموم دفع آفات فوایدی دارد، اما اشکالاتی مانند سمیت بالقوه برای انسان و موجودات دیگر نیز وجود دارد.'}],\n",
" 'passgae_negative': [{'title': 'آفت کش',\n",
" 'text': 'در قرن پانزدهم میلادی از عناصر سمی مانند آرسنیک، جیوه و سرب برای ازبین بردن آفت ها استفاده می شده است.'},\n",
" {'title': 'آتلیه عکاسی',\n",
" 'text': 'سعی کنید زاویه های غیرمعمولی مانند عکسبرداری حشرات از طرف، جلو یا پایین را پیدا کنید. اگر نمی خواهید روی زمین خزید، از صفحه نمایش تلنگر خود استفاده کنید. اگر این حشره در یک گیاه یا یک برگ قرار دارد، سعی کنید آن گیاه را به سمت آن در برابر آسمان نگه دارید این یک زاویه جالب و زمینه ای زیباتر است.'},\n",
" {'title': 'رتینیت',\n",
" 'text': 'مراجعه منظم به چشم پزشک بسیار مهم است. در حالی که مکمل های یادشده در بالا ممکن است به کاهش علائم کمک کند، خود شبکیه قابل درمان نیست. افزون بر این، از وسایلی مانند ذره بین های کم بینایی می توان برای کمک به بینایی در بیماران مبتلا به ناامیدی بینایی به دلیل رتینیت استفاده کرد. خدمات توانبخشی همچنین ممکن است به بیمار کمک کند تا بیماران از بینایی خود به نحو موثرتری استفاده کنند. در پایان، پیشنهاد می شود حتی در روزهای تاریک از عینک آفتابی استفاده کنید تا از چشم در برابر اشعه فرابنفش محافظت شود.'},\n",
" {'title': 'درم ابریژن',\n",
" 'text': 'در این روش، پزشک می کوشد با سایش فیزیکی (یا با مواد شیمیایی)، لایه های سطحی و حتی بخشی از لایه های میانیِ اپیدرم را که اغلب ناهموار و حاوی سلول های فرسوده و مرده است، بردارد تا پوست جدیدی که جوان تر و مسطح تر است جایگزین آن ها شود. معمولاً از برس یا پودرهای ساینده مانند اکسید آلومینیوم استفاده می شود. قبل از لایه برداری گاه از بی حسی موضعی استفاده می شود و پس از آن به بیمار توصیه می شود تا چند روز از مواجهه با نور خورشید اجتناب نموده و از پمادهای ترمیم کننده استفاده کند. اگر لایه برداری خیلی عمقی باشد احتمال خونریزی جزئی وجود دارد.'},\n",
" {'title': 'عکاسی از مجسمه',\n",
" 'text': 'انتخاب زاویه دید صرفاً از دیدگاه پرسپکتیو صحیح کافی نیست، بلکه برای بهتر نشان دادن مجسمه از حالت و وضع آن نیز باید یاری جست. کافی است دور مجسمه بچرخید تا ببینید برای قرار دادن دوربین چقدر نقاط زیادی وجود دارد. تصادفاً اغلب آنها نیز خوب و مناسب است. در این میان آنهایی ترجیح دارند که اصالت اثر را بر هم نزنند. بر حسب اینکه بخواهید سر تا پای مجسمه را بگیرید یا فقط نیمی از اندام آن را، تمام صورت یا جزئی از حالت صورت را، خواهید توانست تصاویر بسیار متعدد و مختلفی از یک مجسمه به دست آورید. یکی از شرایط مهم و اصلی موفقیت در عکاسی از مجسمه، نمایاندن جنس آن است، به نحوی که با یک نگاه، مرمر از سنگ و فلز از چوب تشخیص داده شود.'},\n",
" {'title': 'سالک (بیماری)',\n",
" 'text': 'هنگام خوابیدن در فضای آزاد از پشه بند استفاده شود. روی درها و پنجره های ورودی تورهای بسیار ریز نصب شود. از نگهداری دام و طیور در منازل خودداری شود. از انباشتن و ریختن خاکروبه و نخالهٔ ساختمانی زباله و کودهای حیوانی در مناطق مسکونی اجتناب شود. بهسازی محیط و ترمیم محل استراحت و رشد و تکثیر پشه (شکاف دیوارها) به طور دقیق و صحیح صورت پذیرد. از رها شدن فاضلاب ها در گذرگاه ها خودداری گردد. گردآوری و درمان سگ های ولگرد و مبارزه با جوندگان به روش صحیح. برای درمان آن فریز کردن ویاتزریق آمپول گلوکانتین توصیه می شود.'},\n",
" {'title': 'کانسیلر',\n",
" 'text': 'تصحیح رنگ شامل استفاده از کانسیلرهای با رنگ هلو، سبز و بنفش برای از بین بردن برخی از مناطق تغییر رنگ پوست می باشد. هر کدام از این رنگ ها، یک رنگ یا تیرگی خاص را برطرف می کند. وقتی می خواهید قرمزی را از بین ببرید، از رنگ سبز استفاده می شود. رنگ هلویی برای از بین بردن حلقه های تیره آبی استفاده می شود و نهایتاً بنفش، لکه های زرد را از بین می برد. هنگام استفاده از این تکنیک توجه به این نکته مهم است که این کار باید قبل از استفاده از کرم پودر و فقط به صورت لایه ای نازک استفاده شود.'},\n",
" {'title': 'آندش',\n",
" 'text': 'مرسوم ترین روش جهت آندش می باشد که ضخامتی در حدود ۰٫۰۱ تا ۰٫۰۰۱ اینچ را ایجاد می نماید. ۶۷ درصد به درون قطعه نفوذ کرده و ۳۳ درصد روی سطح رشد می نماید. این روش برای ایجاد سختی و مقاومت به سایش و خوردگی بسیار مناسب است. فیلم آندی ایجاد شده به این روش قابلیت جذب مناسبی جهت انواع رنگ را دارد که پس از انجام مناسب سیل(Seal) ثبات مطلوبی نیز خواهد داشت.قطعات اپتیکی جهت حذف انعکاس نور، بدنه شیرهای هیدرولیک، تجهیزات نظامی، قطعات کامپیوتر و الکترونیک، تجهیزات سخت افزار مکانیکی'},\n",
" {'title': 'افت حرارتی',\n",
" 'text': 'در بسیاری از آزمایشگاه های تحقیقاتی استفاده از دستکش آزبست (پنبه ای نسوز) هنگام کار کردن با کوره ضروری است زیرا می تواند به دمای بسیار بالایی برسد. همچنین استفاده از ماسک صورت در دماهای بالاتر نیز برای اطمینان از ایمنی محققان و اعضای جوان آزمایشگاه توصیه می شود. همچنین توصیه می شود محققانی که آزمایش LOI(افت حرارتی) را انجام می دهند، باید تمام ساعت و جواهرات خود را باز کنند زیرا آنها رساناهای گرمایی خوبی هستند. هنگام جداکردن نمونه ها در دماهای بالا، این لوازم جانبی به راحتی گرم می شوند و منجر به سوختگی، درون آنها می شود.'}]}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_dataset[151]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "76337eb1",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Fetching 5 files: 100%|██████████| 5/5 [00:12<00:00, 2.50s/it]\n"
]
},
{
"data": {
"text/plain": [
"'/home/firouzi/embedding_model/data_preprocess/miracl-corpus'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from huggingface_hub import snapshot_download\n",
"\n",
"snapshot_download(\n",
" repo_id=\"miracl/miracl-corpus\",\n",
" repo_type=\"dataset\", # or \"dataset\", \"space\" depending on repo\n",
" allow_patterns=[\"miracl-corpus-v1.0-fa/**\"], # only download this folder\n",
" local_dir=\"miracl-corpus\"\n",
")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}