یکی از اولین ابزارهای مورد نیاز پروژههای پردازش زبان طبیعی چند زبانه، تشخیص زبان محتوای داده شده است. روشهای مختلفی برای اینکار میتوان استفاده کرد، که سادهترین آن استفاده از مدل ngram است. در ادامه این نوشته این مدل را توضیح داده و در نهایت یک برنامه پرل (Perl) براي استفاده شما معرفي میكنم.
this is a test. en
je suis contente. fr
داده
یک راه ساده برای آماده سازی چنین دادهای اینه که مجموعهای از جملات انگلیسی را به مترجم گوگل داده و ترجمه اون به زبانهای مختلف را در یک فایل جمعآوری کنید. در نهایت باید فایل خودتون را به دو قسمت (بصورت تصادفی ۸۰-۲۰) تقسیم کنید تا بتوانید یک فایل برای آموزش داشته باشید و یکی هم برای ارزیابی نتیجه اون.
مدل
مدل استفاده شده در این برنامه character 3-gram هست. به این معنی که هر زبان بر اساس لیستی از رشتههای ۳تائی از حروف پشت سر هم (3-gram) تعریف شده. این لیست از روی داده آموزشی برای زبان ساخته میشه. در زمان ارزیابی مدل، جمله داده شده به همین صورت تبدیل به حروف ۳تائی میشه و در نهایت فاصله برداری برین جمله داده شده و تمام زبانها اندازهگیری میشه. روشهای مختلفی را میتوان برای اندازهگیری فاصله بین دوبردار استفاده کرد. در این پروژه من از روش اندازه گیری بر اساس کسینوس زاویه بین دو بردار استفاده کردهام که معمولا برای بیشتر مدلها جواب میده.
کد برنامه
سورس کد برنامه را میتوانید از آدرس زیر دانلود کنید. اگر با جیتهاب آشنا باشید براحتی میتوانید کد برنامه را روی سیستم خودتون کپی کنید. اگر هم موردی داشت که نیاز به تصحیح داشت میتوانید در همینجا اعلام کنید یا اینکه در أدرس داده شده مطرح کنید.
اگر مشکلی در متصل شدن به گوگلکد داشتید به من خبر بدین که برنامه را برای شما بفرستم.
هیچ نظری موجود نیست:
ارسال یک نظر