NLP در بورس سهام

  • 2021-01-10

تجزیه و تحلیل احساسات اعمال شده در پر کردن 10-K به عنوان یک لبه

مدل های یادگیری ماشین که در معاملات اجرا می شوند ، اغلب بر روی قیمت سهام تاریخی و سایر داده های کمی برای پیش بینی قیمت سهام آینده آموزش می یابند. با این حال ، پردازش زبان طبیعی (NLP) ما را قادر می سازد تا اسناد مالی مانند فرم های 10 K را برای پیش بینی حرکات سهام تجزیه و تحلیل کنیم. فرم های 10-K گزارش های سالانه ارائه شده توسط شرکت ها برای ارائه خلاصه ای جامع از عملکرد مالی آنها (این گزارش ها توسط کمیسیون اوراق بهادار و بورس اجباری است). شانه زدن از طریق این گزارش ها اغلب برای سرمایه گذاران خسته کننده است. از طریق تجزیه و تحلیل احساسات ، یک زیرزمین از پردازش زبان طبیعی ، سرمایه گذاران می توانند به سرعت درک کنند که آیا لحن گزارش مثبت ، منفی یا دعاوی و غیره است. احساسات کلی بیان شده در فرم 10-K می تواند برای کمک به سرمایه گذاران در تصمیم گیری در مورد تصمیم گیری در مورد آنها استفاده شود. باید در شرکت سرمایه گذاری کند.

NLP توضیح داد

پردازش زبان طبیعی شاخه ای از هوش مصنوعی است که مربوط به آموزش رایانه ها برای خواندن و استخراج معنی از زبان است. از آنجا که زبان بسیار پیچیده است ، قبل از درک متن ، رایانه ها باید از طریق یک سری مراحل انجام شوند. در زیر توضیحی سریع درباره مراحل موجود در یک خط لوله معمولی NLP وجود دارد.

  1. تقسیم جمله سند متن در جملات فردی تقسیم می شود.
  2. نشانه گذاری هنگامی که سند به جملات شکسته شد ، ما جملات را به کلمات فردی تقسیم می کنیم. هر کلمه یک نشانه نامیده می شود ، از این رو نام نشانه گذاری است.
  3. بخش های از گفتار ، ما هر نشانه را وارد می کنیم و همچنین چند کلمه در اطراف آن را در یک مدل طبقه بندی قسمت از گفتار از قبل آموزش داده شده برای دریافت بخشی از گفتار برای نشانه به عنوان خروجی وارد می کنیم.
  4. کلمات lemmatization اغلب در حالی که به همان شی/عمل اشاره می کنند ، به اشکال مختلف ظاهر می شوند. برای جلوگیری از فکر کردن در رایانه به اشکال مختلف یک کلمه به عنوان کلمات مختلف ، ما لممتراسیون را انجام می دهیم ، فرایند گروه بندی با هم جمع شدن یک کلمه برای تجزیه و تحلیل آنها به عنوان یک مورد واحد ، مشخص شده توسط لیم کلمه (چگونه این کلمه در این کلمه ظاهر می شودفرهنگ لغت).
  5. کلمات بسیار رایج مانند "و" ، "" و "A" را متوقف کنید ، بنابراین ما آنها را به عنوان کلمات متوقف می کنیم تا آنها را از هرگونه تحلیلی که روی متن انجام می شود محروم کنیم.
  6. تجزیه وابستگی یک ساختار نحوی را به جملات اختصاص می دهد و با تغذیه کلمات به یک تجزیه کننده وابستگی ، چگونه کلمات موجود در جمله با یکدیگر ارتباط دارند.
  7. عبارات اسم گروه بندی عبارات اسم در یک جمله با هم می تواند به ساده کردن احکام مواردی که ما به صفت ها اهمیت نمی دهیم کمک کند.
  8. نامگذاری شده به رسمیت شناختن یک مدل به رسمیت شناختن نهاد نامگذاری شده می تواند اشیاء مانند نام افراد ، نام شرکت ها و مکان های جغرافیایی را برچسب گذاری کند.
  9. وضوح هسته ای از آنجا که مدل های NLP احکام فردی را تجزیه و تحلیل می کنند ، آنها با ضمایر با مراجعه به اسم های دیگر جملات اشتباه گرفته می شوند. برای حل این مشکل ، ما از وضوح اصلی استفاده می کنیم که ضمایر را در میان جملات دنبال می کند تا از سردرگمی جلوگیری شود.

برای توصیف عمیق تر NLP: این را بخوانید

پس از طی این مراحل ، متن ما برای تجزیه و تحلیل آماده است. اکنون که NLP را بهتر می فهمیم ، اجازه دهید نگاهی به کد من برای پروژه (پروژه 5 از AI Udacity برای دوره تجارت) بیندازیم. برای مشاهده مخزن کامل GitHub اینجا را کلیک کنید

واردات/بارگیری

اول ، ما واردات لازم را می سازیم. Project_Helper شامل توابع مختلف ابزار و نمودار است.

سپس Corpus stopWords را برای از بین بردن کلمات توقف و corpus wordnet برای lemmatizing بارگیری می کنیم.

10 کیلوگرم دریافت کنید

اسناد 10-K شامل اطلاعاتی مانند تاریخ شرکت ، ساختار سازمانی ، جبران اجرایی ، سهام عدالت ، شرکتهای تابعه و صورتهای مالی حسابرسی شده است. برای جستجوی اسناد 10-K ، ما از CIK منحصر به فرد هر شرکت (کلید فهرست مرکزی) استفاده می کنیم.

اکنون لیستی از 10 Kifed را از SEC می کشیم و داده های آمازون را به عنوان نمونه نمایش می دهیم.

ما لیستی از URL ها را به پرونده های حاوی ابرداده مربوط به هر پر کردن دریافت کردیم. ابرداده به ما ربطی ندارد ، بنابراین ما با تعویض URL با URL پر کننده ، پر کردن را می کشیم. بیایید پیشرفت را با استفاده از TQDM مشاهده کنیم و به یک سند مثال نگاه کنیم.

پرونده های بارگیری شده را در اسناد مرتبط با آنها ، که در قسمت پر کردن برچسب ها قرار گرفته اند ، تقسیم کنیدبرای شروع هر سند وبرای پایان هر سند.

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

با استفاده از عملکرد GET_Document_Type ، اسناد غیر 10 K را از پر کردن فیلتر کنید.

داده های پیش پردازش

HTML را برداشته و تمام متن را برای تمیز کردن متن سند ، حروف کوچک قرار دهید.

اسناد را با استفاده از عملکرد Clean_Text تمیز کنید.

اکنون ما تمام داده ها را lemmatize می کنیم.

کلمات توقف را حذف کنید.

تجزیه و تحلیل احساسات در 10 k

برای انجام تجزیه و تحلیل احساسات در 10-KS از لیست های کلمات Sentiment Loughran-McDonald استفاده کنید (این به طور خاص برای مالی مربوط به تجزیه و تحلیل متنی ساخته شده است).

با استفاده از فهرست‌های واژه‌های احساسی، کیسه‌های کلمات را از اسناد 10 کیلویی ایجاد کنید. کیسه کلمات تعداد کلمات احساسی در هر سند را می شمارد.

ژاکارد شباهت

اکنون که کیسه کلمات را داریم، می‌توانیم آن را به یک آرایه بولی تبدیل کنیم و شباهت جاکارد را محاسبه کنیم. شباهت جاکارد به عنوان اندازه تقاطع تقسیم بر اندازه اتحاد دو مجموعه تعریف می شود. به عنوان مثال، شباهت جاکارد بین دو جمله، تعداد کلمات مشترک بین دو جمله تقسیم بر تعداد کل کلمات منحصر به فرد در هر دو جمله است. هر چه مقدار شباهت جاکارد به 1 نزدیک‌تر باشد، مجموعه‌ها شبیه‌تر هستند. برای درک آسان‌تر محاسبات، شباهت‌های جاکارد را رسم می‌کنیم.

TFIDF

از فهرست‌های واژه‌های احساسی، بیایید عبارت احساسی فرکانس-فرکانس معکوس سند (TFIDF) را از اسناد 10-k تولید کنیم. TFIDF یک تکنیک بازیابی اطلاعات است که برای نشان دادن تعداد دفعاتی که یک کلمه/اصطلاح در مجموعه متن انتخاب شده ظاهر می شود استفاده می شود. به هر عبارت یک امتیاز فرکانس ترم (TF) و بسامد سند معکوس (IDF) اختصاص داده می شود. حاصل ضرب این نمرات به عنوان وزن TFIDF اصطلاح گفته می شود. وزن TFIDF بالاتر نشان دهنده عبارت های نادرتر و امتیازات TFIDF پایین تر نشان دهنده اصطلاحات رایج تر است.

شباهت کسینوس

از مقادیر TFIDF خود، می‌توانیم شباهت کسینوس را محاسبه کرده و آن را در طول زمان رسم کنیم. مشابه شباهت ژاکارد، تشابه کسینوس معیاری است که برای تعیین شباهت اسناد استفاده می شود. تشابه کسینوس شباهت را صرف نظر از اندازه با اندازه گیری کسینوس زاویه بین دو بردار پیش بینی شده در یک فضای چند بعدی محاسبه می کند. برای تجزیه و تحلیل متن، دو بردار مورد استفاده معمولاً آرایه هایی هستند که تعداد کلمات دو سند را شامل می شود.

اطلاعات قیمت

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

تبدیل به Dataframe

Alphalens، یک کتابخانه پایتون برای تجزیه و تحلیل عملکرد فاکتورهای آلفا، از قاب های داده استفاده می کند، بنابراین ما باید فرهنگ لغت خود را به یک دیتافریم تبدیل کنیم.

قبل از اینکه بتوانیم از بسیاری از توابع alphalens استفاده کنیم، باید شاخص ها را تراز کنیم و زمان را به timestamp یونیکس تبدیل کنیم.

همچنین برای سازگاری با توابع همبستگی factor_rank_autocorrelation و mean_return_by_quantile آلفالن باید دیتافریم های فاکتوری با زمان یونیکس ایجاد کنیم.

بازده فاکتور

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

همانطور که انتظار می رفت ، گزارش های 10 K با بیان احساسات مثبت بیشترین سود را به دست آورد ، در حالی که گزارش های 10 K حاوی احساسات منفی بیشترین ضرر را به همراه داشته است.

تجزیه و تحلیل گردش مالی

با استفاده از همبستگی رتبه فاکتور می توانیم تجزیه و تحلیل کنیم که ALPHA ها با گذشت زمان چقدر پایدار هستند. ما می خواهیم که رده های آلفا از دوره به دوره ای نسبتاً یکسان بمانند.

نسبت شارپ

سرانجام ، بیایید نسبت شارپ را محاسبه کنیم ، که میانگین بازده منهای بازده بدون ریسک است که با انحراف استاندارد بازده سرمایه گذاری تقسیم می شود.

نسبت شارپ 1 قابل قبول در نظر گرفته می شود ، نسبت 2 بسیار خوب است و نسبت 3 بسیار عالی است. همانطور که انتظار می رود ، می توانیم ببینیم که احساسات مثبت با نسبت شارپ بالا ارتباط دارد و احساسات منفی با نسبت شارپ کم ارتباط دارد. احساسات دیگر نیز با نسبت های شارپ بالا در ارتباط است. با این حال ، از آنجا که بسیاری از عوامل پیچیده بر قیمت سهام تأثیر می گذارد ، تکرار این بازده در دنیای واقعی بی نهایت سخت تر است.< Pan> همانطور که انتظار می رفت ، گزارش های 10 K با بیان احساسات مثبت بیشترین سود را ایجاد می کند در حالی که گزارش های 10 K حاوی احساسات منفی بیشترین ضرر را به همراه داشته است.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.