First Initialization
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
# اضافه کردن مسیر روت پروژه برای دسترسی به پوشه modules
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
# وارد کردن کلاسها با نامهای صحیح و بهروزرسانی شده
|
||||
from modules.segmenter import Segmenter
|
||||
from modules.api_handler import APIHandler
|
||||
|
||||
|
||||
def test_pipeline():
|
||||
print("در حال بارگذاری ماژولها...")
|
||||
|
||||
# نمونهسازی با نامهای صحیح
|
||||
segmenter = Segmenter()
|
||||
api = APIHandler()
|
||||
|
||||
# اصلاح نیمفاصلههای خراب (حذف علامت ¬) برای چاپ تمیزتر در ترمینال
|
||||
sample_text = """ظهور دادهها و رشد قدرت محاسباتی، به همراه روشهای یادگیری نوین، منجر به دستاوردهای قابل توجهی در بسیاری از حوزههای علمی شده است. در چند سال اخیر، یادگیری ماشینی و هوش مصنوعی یک موج جدید از توجهات را به خود جلب کردهاند که علت اصلی آن، حجم عظیم و روزافزون داده و قدرت محاسباتی، و همچنین کشف الگوریتمهای یادگیری بهبود یافته، میباشد[1]. با این حال، ایدهی یادگیری یک رایانه از مجموعهای از مفاهیم انتزاعی و تبدیل دادهها به اطلاعات و استفاده از آنها برای پیش بینی، جدید نیست و حداقل از دهه ۱۹۵۰ زمانی که اولین شبکههای عصبی توسعه یافتند، وجود داشته است [2]. همانگونه که ذکر شد، حجم زیاد دادهها ما را به دوران جدیدی از رشد نمایی در حجم و پیچیدگی دادهها وارد کرده است؛ اینترنت، تلفنهای همراه، کامپیوترها و تجهیزات ضبط باعث ظهور معدنهای بزرگ داده شده و انسان را به یک تغییر شیب در فرآیند تحقیقات سوق میدهد [3]. دانش مدفون در این معدن داده نیازمند فناوریهای کاوش داده است تا الگوهای جالب، معنیدار و قوی را کشف کند. این روش جایگزین تحقیقات نسبت به رویکرد سنتی، اثرات چشمگیری بر همه حوزههای تحقیقات داشته است. کاوش داده در واقع فناوری جدید ارائه میدهد تا به ما در آشکار کردن الگوهای پنهان کمک کند، که قابلیت کمک به نوآوری و توسعه نظریات جدید را دارد و اثرات انقلابی بر توسعه نظریه در بسیاری از رشتهها را ارتقا میدهد [4].
|
||||
طبقه بندی یکی از تکنیک های کاوش داده است. در این روش تمام دادهها بر اساس برچسبهای از قبل تعریف شده طبقه بندی میشوند. الگوریتم های طبقه بندی به شکل وسیعی در دامنه های مختلف استفاده میشوند، از آن جمله برخی از کاربردهایی آنها عبارت اند از پیشگویی ورشکستگی [5]، پیشگویی سرطان [6]، تشخیص چهره [7]، تشخیص کلاه برداری [8]و پیشگویی خرابی نرم افزار [9]. جهت کارایی و عملکرد بهتر در راستای کاربردهایی مذکور بعلاوهی کاربردهای زیادی دیگر، الگوریتمهایی طبقه بندی نیاز به مجموعه دادههای کوچکتر و خالصتر دارند که با استفاده از روشهایی کاهش نمونه روی مجموعه دادههای اصلی بدست میآیند."""
|
||||
|
||||
# ۱. استخراج جملات
|
||||
sentences = segmenter.extract_sentences(sample_text)
|
||||
print(f"\nتعداد کل جملات: {len(sentences)}")
|
||||
|
||||
# ۲. سگمنتبندی
|
||||
print("در حال سگمنتبندی...")
|
||||
# متد segment_items جایگزین متدهای قدیمی شده است
|
||||
segments = segmenter.segment_items(sentences)
|
||||
|
||||
# ۳. دریافت واحد معنایی (خلاصه) از API برای هر سگمنت
|
||||
print("\n--- نتایج پایپلاین ---")
|
||||
for i, seg_sentences in enumerate(segments):
|
||||
print(f"\nسگمنت {i + 1} (شامل {len(seg_sentences)} جمله):")
|
||||
for s in seg_sentences:
|
||||
print(f" - {s}")
|
||||
|
||||
print("در حال دریافت واحد معنایی از API...")
|
||||
semantic_unit = api.get_semantic_unit(seg_sentences)
|
||||
print(f"** واحد معنایی (خلاصه): {semantic_unit} **")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_pipeline()
|
||||
@@ -0,0 +1,37 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
# اضافه کردن مسیر روت پروژه برای دسترسی به ماژولها
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
from modules.segmenter import TextSegmenterGapCosine
|
||||
|
||||
def test_segmentation():
|
||||
# ۱. راهاندازی سگمنتر
|
||||
print("شروع تست سگمنتر...")
|
||||
segmenter = TextSegmenterGapCosine()
|
||||
|
||||
# ۲. متن تستی شامل چند موضوع مختلف
|
||||
sample_text = """"ظهور دادهها و رشد قدرت محاسباتی، به همراه روشهای یادگیری نوین، منجر به دستاوردهای قابل توجهی در بسیاری از حوزههای علمی شده است. در چند سال اخیر، یادگیری ماشینی و هوش مصنوعی یک موج جدید از توجهات را به خود جلب کردهاند که علت اصلی آن، حجم عظیم و روزافزون داده و قدرت محاسباتی، و همچنین کشف الگوریتمهای یادگیری بهبود یافته، می¬باشد[1]. با این حال، ایدهی یادگیری یک رایانه از مجموعه¬ای از مفاهیم انتزاعی و تبدیل داده¬ها به اطلاعات و استفاده از آنها برای پیش بینی، جدید نیست و حداقل از دهه ۱۹۵۰ زمانی که اولین شبکههای عصبی توسعه یافتند، وجود داشته است [2]. همان¬گونه که ذکر شد، حجم زیاد داده¬ها ما را به دوران جدیدی از رشد نمایی در حجم و پیچیدگی دادهها وارد کرده است؛ اینترنت، تلفنهای همراه، کامپیوترها و تجهیزات ضبط باعث ظهور معدن¬های بزرگ داده شده و انسان را به یک تغییر شیب در فرآیند تحقیقات سوق می¬دهد [3]. دانش مدفون در این معدن داده نیازمند فناوریهای کاوش داده است تا الگوهای جالب، معنیدار و قوی را کشف کند. این روش جایگزین تحقیقات نسبت به رویکرد سنتی، اثرات چشمگیری بر همه حوزههای تحقیقات داشته است. کاوش داده در واقع فناوری جدید ارائه میدهد تا به ما در آشکار کردن الگوهای پنهان کمک کند، که قابلیت کمک به نوآوری و توسعه نظریات جدید را دارد و اثرات انقلابی بر توسعه نظریه در بسیاری از رشتهها را ارتقا میدهد [4].
|
||||
طبقه بندی یکی از تکنیک های کاوش داده است. در این روش تمام داده¬ها بر اساس برچسب¬های از قبل تعریف شده طبقه بندی می¬شوند. الگوریتم های طبقه بندی به شکل وسیعی در دامنه های مختلف استفاده می¬شوند، از آن جمله برخی از کاربردهایی آنها عبارت اند از پیشگویی ورشکستگی [5]، پیشگویی سرطان [6]، تشخیص چهره [7]، تشخیص کلاه برداری [8]و پیشگویی خرابی نرم افزار [9]. جهت کارایی و عملکرد بهتر در راستای کاربردهایی مذکور بعلاوه¬ی کاربردهای زیادی دیگر، الگوریتم¬هایی طبقه بندی نیاز به مجموعه داده¬های کوچک¬تر و خالص¬تر دارند که با استفاده از روش¬هایی کاهش نمونه روی مجموعه داده¬های اصلی بدست می¬آیند.
|
||||
"""
|
||||
|
||||
# ۳. استخراج جملات
|
||||
sentences = segmenter.extract_sentences(sample_text)
|
||||
print(f"\nتعداد کل جملات استخراج شده: {len(sentences)}")
|
||||
for idx, s in enumerate(sentences):
|
||||
print(f"جمله {idx + 1}: {s}")
|
||||
|
||||
# ۴. اجرای فرآیند سگمنتبندی (یک مرحله)
|
||||
print("\nدر حال محاسبه سگمنتها...")
|
||||
segments = segmenter.segment_items(sentences)
|
||||
|
||||
# ۵. نمایش خروجی
|
||||
print("\n--- نتیجه سگمنتبندی ---")
|
||||
for i, seg in enumerate(segments):
|
||||
print(f"\nسگمنت {i + 1} (شامل {len(seg)} جمله):")
|
||||
for sentence in seg:
|
||||
print(f" - {sentence}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_segmentation()
|
||||
Reference in New Issue
Block a user