علم داده

به کارگیری الگوریتم های یادگیری ماشین و یادگیری عمیق در پردازش زبان طبیعی

علم داده

به کارگیری الگوریتم های یادگیری ماشین و یادگیری عمیق در پردازش زبان طبیعی

سلام
من باران، دانشجوی دکترا رشته مهندسی کامپیوتر(نرم افزار) هستم.
در حال حاضر مشغول نوشتن تز هستم و هر روز مطالب مفید و جالب زیادی در زمینه علم داده فرا میگیرم.
این وبلاگ را با هدف به اشتراک گذاری این مطالب ایجاد کردم.

امیدوارم مطالبی که خواهم نوشت برای خوانندگان مفید باشه.

طبقه بندی موضوعی

آخرین مطالب

۲ مطلب با موضوع «NLP» ثبت شده است

سلام.

امروز برای شروع می خوام یه مطلبی در مورد بردارهای کلمه بنویسم که البته خیلی ابتدایی هست ولی برای شروع خوبه.

 

بردار های کلمه (Word vectors) یا تعبیه لغات (Word embedding)

بردارهای کلمه یا تعبیه لغات (word embedding) روشی برای تبدیل کلمات به اعداد یا اصطلاحا روشی برای ارائه کلمات هستند. بعد از اینکه کلمات به اعداد تبدیل شدند اونموقع میتونیم این اعداد را به عنوان ورودی الگوریتم های یادگیری ماشین بکار ببریم.

به سادگی میشه گفت بردارهای کلمه، بردارهایی (همون آرایه هایی که از قدیم می شناختیم)از اعداد هستند که معنی یک کلمه را در بر می گیرند.

 روش های سنتی NLP مانند One-hot encoding و bag of words در برگیرنده اطلاعاتی مانند معنی و محتوای کلمات نبودند. یعنی ارتباطات بین کلمات مانند نزدیکی محتوایی کلمات در روش های سنتی نادیده گرفته می شدند.  به عنوان مثال، روش one-hot encoding نمی تواند ارتباط ساده بین دو کلمه "سگ" و "گربه" را به این صورت که هر دو از حیوانات هستند و در context حیوانات خانگی هستند را بیان نماید. روش های ستنی برای کارهای ساده NLP مانند تشخیص ایمیل های spam مناسب هستند ولی برای کارهای پیچیده تر مانند ترجمه و Speech Recognition کارایی لازم را ندارند. در واقع روش های سنتی مانند one-hot encoding ارتباطات ساختاری(Syntactic) و معنایی(Semantic) میان کلمات را نادیده می گیرند.

در مقایسه با روش های سنتی، بردارهای کلمه، کلمات را به صورت بردارهای چند بعدی از اعداد اعشاری نمایش می دهند، به صورتی که کلمات با معنای مشابه به نقاط نزدیکی در فضای هندسی نگاشته می شوند. به زبان ساده تر یک بردار کلمه، سطری از اعداد حقیقی است که هر نقطه آن یک بعد (Dimension) از معنی کلمه را در بر می گیرد  و کلمات با معنای مشابه، بردارهای مشابهی دارند. این با آن معنی است که کلماتی مانند "چرخ" و "موتور" بردارهای مشابهی با کلمه "ماشین" دارند، در حالیکه  کلمه "موز" اختلاف زیادی با این کلمات دارد. علاوه بر این کلماتی که در محتوای مشابهی استفاده می شوند، به فضای برداری نزدیکی نگاشته می شوند.  زیبایی ارائه کلمات با استفاده از بردارها، امکان استفاده از عملگرهای ریاضی بر روی بردار هاست. برای مثال ما می توانیم بردار ها را به هم اضافه و یا از هم کم کنیم. یک مثال معروف در این زمینه مانند زیر است:

King – man + woman = queen

به عبارت دیگر در این مثال یک معنی از بردار King  کم می شود (معنی مرد بودن) و یک معنی به بردار king اضافه می شود (معنی  زن بودن).

اعداد در بردار کلمه، وزن توزیع شده کلمه در میان dimension ها هستند. به عبارت ساده تر، هر dimension یک معنی را ارائه می نماید و وزن عددی داده شده به dimension در برگیرنده میزان نزدیکی کلمه با آن dimension است. بنابراین معنی یک کلمه در میان ابعاد بردار قرار می گیرد.

منبع

#باران_سیل_سپور

#بردارهای_کلمه

#بردارهای_لغت

#wordvectors

#word_vectors

#word_embedding

#NLP

#پردازش_زبان_طبیعی

#تعبیه لغات

 

یک محقق علم داده
۰۱ دی ۹۸ ، ۱۳:۲۰ موافقین ۰ مخالفین ۰ ۱ نظر

سلام

الان چند روزه که دارم یه دوره آموزشی پایتون برای پردازش زبان طبیعی را مطالعه می کنم.

این دوره از لیندا هست و لازم نیست بگم که چقدر خوبه.

البته بگم هدف این دوره آموزش خیلی دقیق و 0 تا 100 پردازش زبان نیست.

بلکه در این دوره سعی شده تا مقدمه ای هم از یادگیری ماشین گفته بشه.

من خیلی از این دوره استفاده کردم. مدرس دوره آقای Derek Jodamski هم بیان خیلی خوبی داره.

این دوره را میتونید از سایت زیر دانلود کنید.

 

Download NLP with Python for Machine Learning Essential Training

یک محقق علم داده
۱۰ آبان ۹۸ ، ۱۷:۰۲ موافقین ۰ مخالفین ۰ ۰ نظر