diff --git a/document.aux b/document.aux index 973abbe..4255b0d 100644 --- a/document.aux +++ b/document.aux @@ -75,13 +75,13 @@ \abx@aux@segm{0}{0}{6} \abx@aux@cite{10} \abx@aux@segm{0}{0}{10} -\abx@aux@cite{11} -\abx@aux@segm{0}{0}{11} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tweepy Python Package}{14}{section*.17}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{14}{section*.18}} \newlabel{sentiment}{{}{14}{Sentiment Analysis}{section*.18}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Natural Language Processing}{14}{section*.19}} \newlabel{algorithms}{{}{14}{Natural Language Processing}{section*.19}{}} +\abx@aux@cite{11} +\abx@aux@segm{0}{0}{11} \abx@aux@cite{12} \abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12} @@ -147,46 +147,56 @@ \abx@aux@cite{31} \abx@aux@segm{0}{0}{31} \abx@aux@segm{0}{0}{30} +\abx@aux@cite{32} +\abx@aux@segm{0}{0}{32} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Machine Learning}{20}{section*.26}} \newlabel{machine}{{}{20}{Machine Learning}{section*.26}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Naive Bayes}{20}{section*.27}} +\abx@aux@segm{0}{0}{32} +\abx@aux@cite{33} +\abx@aux@segm{0}{0}{33} +\abx@aux@segm{0}{0}{8} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Solution Approach}{22}{section*.28}} \newlabel{solution}{{}{22}{Solution Approach}{section*.28}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Solution Summary}{22}{section*.29}} -\newlabel{sumary}{{}{22}{Solution Summary}{section*.29}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Requirements}{22}{section*.30}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data flow Overview}{22}{section*.31}} -\newlabel{data-flow}{{}{22}{Data flow Overview}{section*.31}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Packages, Tools and Techniques}{22}{section*.32}} -\newlabel{tools}{{}{22}{Packages, Tools and Techniques}{section*.32}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{System Design and Implementation}{23}{section*.33}} -\newlabel{implementation}{{}{23}{System Design and Implementation}{section*.33}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data collection}{23}{section*.34}} -\newlabel{collection}{{}{23}{Data collection}{section*.34}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-series Data}{23}{section*.35}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data processing}{23}{section*.36}} -\newlabel{processing}{{}{23}{Data processing}{section*.36}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Preprocessing}{23}{section*.37}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Filtering}{23}{section*.38}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Text Cleaning}{23}{section*.39}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Ngram based Language detection filtering}{23}{section*.40}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Spam Filtering}{23}{section*.41}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Processing}{23}{section*.42}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Naive Bayes model}{23}{section*.43}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{23}{section*.44}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{VADER}{23}{section*.45}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Recurrent Neural Network - LSTM}{23}{section*.46}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Training and Testing Model}{23}{section*.47}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Scoring and Validation}{23}{section*.48}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Future Prediction Forecasting}{23}{section*.49}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Testing: Verification and Reflection}{24}{section*.50}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Discussion: Contribution and Reflection}{25}{section*.51}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Limitations}{25}{section*.52}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Conclusion and Future Improvements}{26}{section*.53}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Conclusion}{26}{section*.54}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Improvements}{26}{section*.55}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Appendices}{29}{section*.57}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix A - Project Initiation Document}{29}{section*.58}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data gathering}{22}{section*.29}} +\abx@aux@segm{0}{0}{23} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Spam Filtering}{23}{section*.30}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Language Detection}{23}{section*.31}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Solution Summary}{23}{section*.32}} +\newlabel{sumary}{{}{23}{Solution Summary}{section*.32}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Requirements}{23}{section*.33}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data flow Overview}{23}{section*.34}} +\newlabel{data-flow}{{}{23}{Data flow Overview}{section*.34}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Packages, Tools and Techniques}{23}{section*.35}} +\newlabel{tools}{{}{23}{Packages, Tools and Techniques}{section*.35}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{System Design and Implementation}{24}{section*.36}} +\newlabel{implementation}{{}{24}{System Design and Implementation}{section*.36}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data collection}{24}{section*.37}} +\newlabel{collection}{{}{24}{Data collection}{section*.37}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-series Data}{24}{section*.38}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data processing}{24}{section*.39}} +\newlabel{processing}{{}{24}{Data processing}{section*.39}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Preprocessing}{24}{section*.40}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Filtering}{24}{section*.41}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Text Cleaning}{24}{section*.42}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Ngram based Language detection filtering}{24}{section*.43}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Spam Filtering}{24}{section*.44}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Processing}{24}{section*.45}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Naive Bayes model}{24}{section*.46}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{24}{section*.47}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{VADER}{24}{section*.48}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Recurrent Neural Network - LSTM}{24}{section*.49}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Training and Testing Model}{24}{section*.50}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Scoring and Validation}{24}{section*.51}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Future Prediction Forecasting}{24}{section*.52}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Testing: Verification and Reflection}{25}{section*.53}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Discussion: Contribution and Reflection}{26}{section*.54}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Limitations}{26}{section*.55}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Conclusion and Future Improvements}{27}{section*.56}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Conclusion}{27}{section*.57}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Improvements}{27}{section*.58}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Appendices}{31}{section*.60}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix A - Project Initiation Document}{31}{section*.61}} \abx@aux@refcontextdefaultsdone \abx@aux@defaultrefcontext{0}{1}{none/global//global/global} \abx@aux@defaultrefcontext{0}{2}{none/global//global/global} @@ -220,4 +230,5 @@ \abx@aux@defaultrefcontext{0}{30}{none/global//global/global} \abx@aux@defaultrefcontext{0}{31}{none/global//global/global} \abx@aux@defaultrefcontext{0}{32}{none/global//global/global} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix B - Log book}{42}{section*.59}} +\abx@aux@defaultrefcontext{0}{33}{none/global//global/global} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix B - Log book}{44}{section*.62}} diff --git a/document.bbl b/document.bbl index 04f6158..219c395 100644 --- a/document.bbl +++ b/document.bbl @@ -1081,8 +1081,8 @@ \strng{authorbibnamehash}{baa9695b2bf77f7b33bb07b5d116d7e1} \strng{authornamehash}{baa9695b2bf77f7b33bb07b5d116d7e1} \strng{authorfullhash}{baa9695b2bf77f7b33bb07b5d116d7e1} - \field{sortinit}{8} - \field{sortinithash}{07edf88d4ea82509b9c4b4d13f41c452} + \field{sortinit}{5} + \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{booktitle}{IJCAI 2001 workshop on empirical methods in artificial intelligence} @@ -1099,6 +1099,33 @@ \verb https://www.cc.gatech.edu/~isbell/reading/papers/Rish.pdf \endverb \endentry + \entry{33}{inproceedings}{} + \name{author}{1}{}{% + {{hash=1e48a059b3f2c3703bea8d54a9e002c9}{% + family={Roesslein}, + familyi={R\bibinitperiod}, + given={Joshua}, + giveni={J\bibinitperiod}}}% + } + \strng{namehash}{1e48a059b3f2c3703bea8d54a9e002c9} + \strng{fullhash}{1e48a059b3f2c3703bea8d54a9e002c9} + \strng{bibnamehash}{1e48a059b3f2c3703bea8d54a9e002c9} + \strng{authorbibnamehash}{1e48a059b3f2c3703bea8d54a9e002c9} + \strng{authornamehash}{1e48a059b3f2c3703bea8d54a9e002c9} + \strng{authorfullhash}{1e48a059b3f2c3703bea8d54a9e002c9} + \field{sortinit}{5} + \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Tweepy Documentation} + \field{year}{2009} + \verb{urlraw} + \verb http://docs.tweepy.org/en/v3.5.0/ + \endverb + \verb{url} + \verb http://docs.tweepy.org/en/v3.5.0/ + \endverb + \endentry \enddatalist \endrefsection \endinput diff --git a/document.bcf b/document.bcf index 7611244..5325cd5 100644 --- a/document.bcf +++ b/document.bcf @@ -1977,6 +1977,11 @@ 30 31 30 + 32 + 32 + 33 + 8 + 23 * diff --git a/document.blg b/document.blg index fc06e6e..9403f39 100644 --- a/document.blg +++ b/document.blg @@ -1,20 +1,20 @@ [0] Config.pm:302> INFO - This is Biber 2.9 [0] Config.pm:305> INFO - Logfile is 'document.blg' -[18] biber:313> INFO - === Tue Apr 23, 2019, 18:58:50 -[34] Biber.pm:371> INFO - Reading 'document.bcf' -[79] Biber.pm:854> INFO - Using all citekeys in bib section 0 -[88] Biber.pm:3981> INFO - Processing section 0 -[96] Biber.pm:4154> INFO - Looking for bibtex format file 'report.bib' for section 0 -[97] bibtex.pm:1468> INFO - LaTeX decoding ... -[124] bibtex.pm:1294> INFO - Found BibTeX data source 'report.bib' -[167] Utils.pm:169> WARN - year field 'Mar 13, 2016' in entry '23' is not an integer - this will probably not sort properly. -[199] Utils.pm:169> WARN - Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name -[228] Utils.pm:169> WARN - BibTeX subsystem: warning: comma(s) at end of name (removing) -[228] Utils.pm:169> WARN - BibTeX subsystem: author, warning: comma(s) at end of name (removing) -[245] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' -[245] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' -[245] Biber.pm:3809> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' -[245] Biber.pm:3815> INFO - No sort tailoring available for locale 'en-US' -[262] bbl.pm:617> INFO - Writing 'document.bbl' with encoding 'ascii' -[273] bbl.pm:720> INFO - Output to document.bbl -[273] Biber.pm:110> INFO - WARNINGS: 4 +[20] biber:313> INFO - === Tue Apr 23, 2019, 21:27:28 +[37] Biber.pm:371> INFO - Reading 'document.bcf' +[87] Biber.pm:854> INFO - Using all citekeys in bib section 0 +[97] Biber.pm:3981> INFO - Processing section 0 +[106] Biber.pm:4154> INFO - Looking for bibtex format file 'report.bib' for section 0 +[108] bibtex.pm:1468> INFO - LaTeX decoding ... +[139] bibtex.pm:1294> INFO - Found BibTeX data source 'report.bib' +[203] Utils.pm:169> WARN - year field 'Mar 13, 2016' in entry '23' is not an integer - this will probably not sort properly. +[245] Utils.pm:169> WARN - Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name +[260] Utils.pm:169> WARN - BibTeX subsystem: warning: comma(s) at end of name (removing) +[260] Utils.pm:169> WARN - BibTeX subsystem: author, warning: comma(s) at end of name (removing) +[279] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' +[280] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' +[280] Biber.pm:3809> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' +[280] Biber.pm:3815> INFO - No sort tailoring available for locale 'en-US' +[300] bbl.pm:617> INFO - Writing 'document.bbl' with encoding 'ascii' +[312] bbl.pm:720> INFO - Output to document.bbl +[312] Biber.pm:110> INFO - WARNINGS: 4 diff --git a/document.log b/document.log index b27cb0c..73c02d5 100644 --- a/document.log +++ b/document.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.10.16) 23 APR 2019 20:26 +This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.10.16) 23 APR 2019 21:45 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -945,7 +945,7 @@ LaTeX Info: Redefining \nameref on input line 63. \@outlinefile=\write5 \openout5 = `document.out'. - + File: images/reading_logo.png Graphic file (type png) Package pdftex.def Info: images/reading_logo.png used on input line 66. @@ -1008,19 +1008,19 @@ Underfull \hbox (badness 10000) in paragraph at lines 216--218 Missing character: There is no â in font cmr10! Missing character: There is no € in font cmr10! Missing character: There is no ™ in font cmr10! - + File: images/perceptron.png Graphic file (type png) Package pdftex.def Info: images/perceptron.png used on input line 302. (pdftex.def) Requested size: 284.52713pt x 170.72142pt. [15] - + File: images/rnn_ffn.png Graphic file (type png) Package pdftex.def Info: images/rnn_ffn.png used on input line 322. (pdftex.def) Requested size: 426.80307pt x 170.72112pt. [16 <./images/perceptron.png>] - + File: images/lstm.png Graphic file (type png) Package pdftex.def Info: images/lstm.png used on input line 340. @@ -1033,33 +1033,69 @@ Missing character: There is no Missing character: There is no â in font cmr10! Missing character: There is no € in font cmr10! Missing character: There is no ™ in font cmr10! - [20] [21] [22] [23] [24] [25] [26] -Overfull \hbox (1.46323pt too wide) in paragraph at lines 513--513 + [20] [21] +Underfull \hbox (badness 10000) in paragraph at lines 450--452 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 454--456 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 457--461 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 462--464 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 465--469 + + [] + +[22] + +File: images/Generic_Flow.png Graphic file (type png) + +Package pdftex.def Info: images/Generic_Flow.png used on input line 489. +(pdftex.def) Requested size: 483.69247pt x 227.62009pt. + +Overfull \hbox (42.84502pt too wide) in paragraph at lines 489--492 + [] + [] + +[23 <./images/Generic_Flow.png (PNG copy)>] [24] [25] [26] [27] +Overfull \hbox (1.46323pt too wide) in paragraph at lines 548--548 \OT1/cmr/m/n/10 [On-line]. Avail-able: []$\OT1/cmtt/m/n/10 https : / / www . co deproject . com / Articles / 1201444 / Stock -[] Predictions -[] [] -[27] -Overfull \hbox (22.26572pt too wide) in paragraph at lines 513--513 +[28] +Overfull \hbox (22.26572pt too wide) in paragraph at lines 548--548 \OT1/cmr/m/n/10 able: []$\OT1/cmtt/m/n/10 https : / / towardsdatascience . com / recurrent -[] neural -[] networks -[] and -[] lstm -[] 4b601dd822a5$[]\OT1/cm r/m/n/10 . [] -Overfull \hbox (59.98181pt too wide) in paragraph at lines 513--513 +Overfull \hbox (59.98181pt too wide) in paragraph at lines 548--548 []$\OT1/cmtt/m/n/10 http : / / deeplearning . stanford . edu / tutorial / super vised / OptimizationStochasticGradientDescent$[]\OT1/cmr/m/n/10 . [] -[28] +[29] [30] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf used on input line 518. +Package pdftex.def Info: PID.pdf used on input line 553. (pdftex.def) Requested size: 597.551pt x 845.07512pt. @@ -1067,7 +1103,7 @@ pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf used on input line 518. +Package pdftex.def Info: PID.pdf used on input line 553. (pdftex.def) Requested size: 597.551pt x 845.07512pt. @@ -1077,233 +1113,233 @@ rsion <1.7>, but at most version <1.5> allowed pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 518. +Package pdftex.def Info: PID.pdf , page1 used on input line 553. (pdftex.def) Requested size: 597.551pt x 845.07512pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 518. +Package pdftex.def Info: PID.pdf , page1 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[29] +[31] File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 518. +Package pdftex.def Info: PID.pdf , page1 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 518. +Package pdftex.def Info: PID.pdf , page1 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 518. +Package pdftex.def Info: PID.pdf , page1 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. - [30 <./PID.pdf>] + [32 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 518. +Package pdftex.def Info: PID.pdf , page2 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 518. +Package pdftex.def Info: PID.pdf , page2 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[31 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[32 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 518. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 518. +Package pdftex.def Info: PID.pdf , page2 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. [33 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 518. + +Package pdftex.def Info: PID.pdf , page3 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 518. + +Package pdftex.def Info: PID.pdf , page3 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 518. + +Package pdftex.def Info: PID.pdf , page3 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. [34 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 518. + +Package pdftex.def Info: PID.pdf , page4 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 518. + +Package pdftex.def Info: PID.pdf , page4 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 518. + +Package pdftex.def Info: PID.pdf , page4 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. [35 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 518. + +Package pdftex.def Info: PID.pdf , page5 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 518. + +Package pdftex.def Info: PID.pdf , page5 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 518. + +Package pdftex.def Info: PID.pdf , page5 used on input line 553. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. [36 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [37 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 518. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 553. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [38 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 518. + +Package pdftex.def Info: PID.pdf , page8 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 518. + +Package pdftex.def Info: PID.pdf , page8 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 518. + +Package pdftex.def Info: PID.pdf , page8 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. [39 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 518. + +Package pdftex.def Info: PID.pdf , page9 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 518. + +Package pdftex.def Info: PID.pdf , page9 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 518. + +Package pdftex.def Info: PID.pdf , page9 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. [40 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 518. + +Package pdftex.def Info: PID.pdf , page10 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 518. + +Package pdftex.def Info: PID.pdf , page10 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 518. + +Package pdftex.def Info: PID.pdf , page10 used on input line 553. (pdftex.def) Requested size: 795.0303pt x 562.1644pt. [41 <./PID.pdf>] -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 522. - [42] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 522. + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[42 <./PID.pdf>] + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 553. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[43 <./PID.pdf>] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 557. + [44] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 557. (./document.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 522. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 522. +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 557. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 557. Package rerunfilecheck Info: File `document.out' has not changed. -(rerunfilecheck) Checksum: 1575550D93C69B4B975FC1E3D35A05EF;8249. +(rerunfilecheck) Checksum: E74EE3B61BD2C1BC2632352EB7304668;8659. Package logreq Info: Writing requests to 'document.run.xml'. \openout1 = `document.run.xml'. ) Here is how much of TeX's memory you used: - 22461 strings out of 492982 - 355520 string characters out of 6134895 + 22477 strings out of 492982 + 355812 string characters out of 6134895 846942 words of memory out of 5000000 - 25569 multiletter control sequences out of 15000+600000 + 25578 multiletter control sequences out of 15000+600000 12017 words of font info for 47 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 45i,18n,67p,2008b,1302s stack positions out of 5000i,500n,10000p,200000b,80000s @@ -1320,10 +1356,10 @@ amsfonts/cm/cmr7.pfb> -Output written on document.pdf (42 pages, 582267 bytes). +Output written on document.pdf (44 pages, 648007 bytes). PDF statistics: - 760 PDF objects out of 1000 (max. 8388607) - 667 compressed objects within 7 object streams - 134 named destinations out of 1000 (max. 500000) - 512 words of extra memory for PDF output out of 10000 (max. 10000000) + 794 PDF objects out of 1000 (max. 8388607) + 698 compressed objects within 7 object streams + 140 named destinations out of 1000 (max. 500000) + 541 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/document.out b/document.out index a0d6e6e..804065c 100644 --- a/document.out +++ b/document.out @@ -25,28 +25,31 @@ \BOOKMARK [2][-]{section*.26}{\376\377\000M\000a\000c\000h\000i\000n\000e\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section*.12}% 25 \BOOKMARK [3][-]{section*.27}{\376\377\000N\000a\000i\000v\000e\000\040\000B\000a\000y\000e\000s}{section*.26}% 26 \BOOKMARK [1][-]{section*.28}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 27 -\BOOKMARK [2][-]{section*.29}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section*.28}% 28 -\BOOKMARK [2][-]{section*.30}{\376\377\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s}{section*.28}% 29 -\BOOKMARK [2][-]{section*.31}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section*.28}% 30 -\BOOKMARK [2][-]{section*.32}{\376\377\000P\000a\000c\000k\000a\000g\000e\000s\000,\000\040\000T\000o\000o\000l\000s\000\040\000a\000n\000d\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section*.28}% 31 -\BOOKMARK [1][-]{section*.33}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n\000\040\000a\000n\000d\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 32 -\BOOKMARK [2][-]{section*.34}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.33}% 33 -\BOOKMARK [3][-]{section*.35}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000s\000e\000r\000i\000e\000s\000\040\000D\000a\000t\000a}{section*.34}% 34 -\BOOKMARK [2][-]{section*.36}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.33}% 35 -\BOOKMARK [3][-]{section*.37}{\376\377\000P\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.36}% 36 -\BOOKMARK [3][-]{section*.41}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.36}% 37 -\BOOKMARK [2][-]{section*.44}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.33}% 38 -\BOOKMARK [3][-]{section*.45}{\376\377\000V\000A\000D\000E\000R}{section*.44}% 39 -\BOOKMARK [2][-]{section*.46}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000-\000\040\000L\000S\000T\000M}{section*.33}% 40 -\BOOKMARK [3][-]{section*.47}{\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000o\000d\000e\000l}{section*.46}% 41 -\BOOKMARK [3][-]{section*.48}{\376\377\000S\000c\000o\000r\000i\000n\000g\000\040\000a\000n\000d\000\040\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section*.46}% 42 -\BOOKMARK [3][-]{section*.49}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000P\000r\000e\000d\000i\000c\000t\000i\000o\000n\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section*.46}% 43 -\BOOKMARK [1][-]{section*.50}{\376\377\000T\000e\000s\000t\000i\000n\000g\000:\000\040\000V\000e\000r\000i\000f\000i\000c\000a\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 44 -\BOOKMARK [1][-]{section*.51}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n\000:\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 45 -\BOOKMARK [2][-]{section*.52}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section*.51}% 46 -\BOOKMARK [1][-]{section*.53}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{}% 47 -\BOOKMARK [2][-]{section*.54}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section*.53}% 48 -\BOOKMARK [2][-]{section*.55}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section*.53}% 49 -\BOOKMARK [1][-]{section*.57}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 50 -\BOOKMARK [2][-]{section*.58}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000A\000\040\000-\000\040\000P\000r\000o\000j\000e\000c\000t\000\040\000I\000n\000i\000t\000i\000a\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t}{section*.57}% 51 -\BOOKMARK [2][-]{section*.59}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000B\000\040\000-\000\040\000L\000o\000g\000\040\000b\000o\000o\000k}{section*.57}% 52 +\BOOKMARK [2][-]{section*.29}{\376\377\000D\000a\000t\000a\000\040\000g\000a\000t\000h\000e\000r\000i\000n\000g}{section*.28}% 28 +\BOOKMARK [2][-]{section*.30}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.28}% 29 +\BOOKMARK [2][-]{section*.31}{\376\377\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000D\000e\000t\000e\000c\000t\000i\000o\000n}{section*.28}% 30 +\BOOKMARK [2][-]{section*.32}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section*.28}% 31 +\BOOKMARK [2][-]{section*.33}{\376\377\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s}{section*.28}% 32 +\BOOKMARK [2][-]{section*.34}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section*.28}% 33 +\BOOKMARK [2][-]{section*.35}{\376\377\000P\000a\000c\000k\000a\000g\000e\000s\000,\000\040\000T\000o\000o\000l\000s\000\040\000a\000n\000d\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section*.28}% 34 +\BOOKMARK [1][-]{section*.36}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n\000\040\000a\000n\000d\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 35 +\BOOKMARK [2][-]{section*.37}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.36}% 36 +\BOOKMARK [3][-]{section*.38}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000s\000e\000r\000i\000e\000s\000\040\000D\000a\000t\000a}{section*.37}% 37 +\BOOKMARK [2][-]{section*.39}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.36}% 38 +\BOOKMARK [3][-]{section*.40}{\376\377\000P\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.39}% 39 +\BOOKMARK [3][-]{section*.44}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.39}% 40 +\BOOKMARK [2][-]{section*.47}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.36}% 41 +\BOOKMARK [3][-]{section*.48}{\376\377\000V\000A\000D\000E\000R}{section*.47}% 42 +\BOOKMARK [2][-]{section*.49}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000-\000\040\000L\000S\000T\000M}{section*.36}% 43 +\BOOKMARK [3][-]{section*.50}{\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000o\000d\000e\000l}{section*.49}% 44 +\BOOKMARK [3][-]{section*.51}{\376\377\000S\000c\000o\000r\000i\000n\000g\000\040\000a\000n\000d\000\040\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section*.49}% 45 +\BOOKMARK [3][-]{section*.52}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000P\000r\000e\000d\000i\000c\000t\000i\000o\000n\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section*.49}% 46 +\BOOKMARK [1][-]{section*.53}{\376\377\000T\000e\000s\000t\000i\000n\000g\000:\000\040\000V\000e\000r\000i\000f\000i\000c\000a\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 47 +\BOOKMARK [1][-]{section*.54}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n\000:\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 48 +\BOOKMARK [2][-]{section*.55}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section*.54}% 49 +\BOOKMARK [1][-]{section*.56}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{}% 50 +\BOOKMARK [2][-]{section*.57}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section*.56}% 51 +\BOOKMARK [2][-]{section*.58}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section*.56}% 52 +\BOOKMARK [1][-]{section*.60}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 53 +\BOOKMARK [2][-]{section*.61}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000A\000\040\000-\000\040\000P\000r\000o\000j\000e\000c\000t\000\040\000I\000n\000i\000t\000i\000a\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t}{section*.60}% 54 +\BOOKMARK [2][-]{section*.62}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000B\000\040\000-\000\040\000L\000o\000g\000\040\000b\000o\000o\000k}{section*.60}% 55 diff --git a/document.pdf b/document.pdf index 544b05f..c68ba0a 100644 Binary files a/document.pdf and b/document.pdf differ diff --git a/document.synctex.gz b/document.synctex.gz index a2874ac..e724943 100644 Binary files a/document.synctex.gz and b/document.synctex.gz differ diff --git a/document.tex b/document.tex index 79d84c2..753dc1a 100644 --- a/document.tex +++ b/document.tex @@ -269,7 +269,7 @@ Each tier has individual costs while the standard user negating this as a basic tier. Due to only being elegable for the Premium tier for educational purposes, historical data gathering will be limited to 100 tweets per request with a limitation of 50 requests per month. Furthermore streaming tweets is an Enterprise feature which rules out the the Twitter API for use of streaming current real-time data \cite{8}. \subsubsection{Tweepy Python Package} - Tweepy is a python package for accessing the Twitter API. It fundamentally accomplishes the same means if one to conduct a GET request to the Twitter API, except it simplifies this into a simple to use API that is easier to implement and automate in python \cite{9}. Consequently, it builds upon the existing Twitter API to provide features such as automated streaming of provided hashtags to the API. It realises this by initialising a listener instance for a provided set of API credentials, handling authentication, connections, creating and destroying sessions. Due to Twitter's streaming API being only available to Enterprise users \cite{7}, using Tweepy to stream data for a given hashtag will provide the real-time data needed. + Tweepy is a python package for accessing the Twitter API. It fundamentally accomplishes the same means if one to conduct a GET request to the Twitter API, except it simplifies this into a simple to use API that is easier to implement and automate in python \cite{9}. Consequently, it builds upon the existing Twitter API to provide features such as automated streaming of provided hashtags to the API. It realises this by initialising a listener instance for a provided set of API credentials, handling authentication, connections, creating and destroying sessions. Due to Twitter's streaming API being only available to Enterprise users \cite{7}, using Tweepy to stream data for a given hashtag will provide the real-time data needed. The streaming of current data by Tweepy is accomplished by setting up a stream which listens for new data for a given hashtag, which bypasses the need for the Enterprise tweet tracker provided by the Twitter API. \subsection{Sentiment Analysis}\label{sentiment} @@ -408,9 +408,9 @@ \subsection{Machine Learning}\label{machine} \subsubsection{Naive Bayes} - To get an understanding of both how probability works and how the neural network will predict the next hour value based on the concepts of probability, using a well-established probability algorithm will aid in this understanding. + To get an understanding of both how probability works and how a neural network will predict the next hour value based on the concepts of probability, using a well-established probability algorithm will aid in this understanding. - Bayes theorem works on conditional probability and is the probability of how often an event will happen given that that event has already occurred. There are numerous variations of the theorem such as Multinomial, which supports categorical features where each conforms to a multinomial distribution, and Gaussian naive Bayes, which support continuous-valued features each of which conforming to a Gaussian (normal) distribution. The classical multinomial Bayes theorem is defined as; + Bayes theorem works on conditional probability and is the probability of how often an event will happen given that that event has already occurred. There are numerous variations of the theorem such as Multinomial, which supports categorical features where each conforms to a multinomial distribution, and Gaussian naive Bayes, which support continuous-valued features each of which conforming to a Gaussian (normal) distribution. The classical multinomial Bayes theorem is defined as; \cite{32} \[P(H\cap A) = \frac{P(A\cap H) * P(H)}{P(A)} \] @@ -440,14 +440,45 @@ \[Probability \ of \ Outcome \cap Evidence = \frac{Probability \ of \ Likelihood \ of \ evidence * Prior}{Probability \ of \ Evidence} \] - The naive Bayes approach has many applications, especially for the topic of this project in classifying the probability occurance of the next price. Although it is a robust algorithm is does have its drawbacks which make it not as suitable as a neural network for the given need of this project. The naive Bayes trap is an issue that may occur due to the size of dataset that will be used. There are however other scenarios this algorithm could be used such as classification of spam data. + The naive Bayes approach has many applications, especially for the topic of this project in classifying the probability occurance of the next price. Although it is a robust algorithm is does have its drawbacks which make it not as suitable as a neural network for the given need of this project. The naive Bayes trap is an issue that may occur due to the size of dataset that will be used. There are however other scenarios this algorithm could be used such as classification of spam data.\cite{32} \newpage \begin{center} \section{Solution Approach}\label{solution} \end{center} - + This section will outline the solution intended to solve the problem that the problem statement identifies with justification and reference to the research conducted in the litrature review. This will lay out the development process for the project and will tools and technologies will be explained for the particular use case in this project. + \newline + + \subsection{Data gathering} + This will be the part of the system that will gather price data and tweets from relevent sources, twitter and cryptocurrency exchanges. + \newline + + \textbf{Price data} + \newline + \newline + Historical price data can be collected in a number methods, one being that of the exchange APIs, another through a historical price tracker who creates a CSV consisting of all prior historical data. Both have their merits and reliability for granting the needed data, however, a historical tracker who has been tracking the price every hour since the start of Bitcoin would be the better option. This is due to a couple of factors, the data in some historical trackers are an average unbiased price for Bitcoin - they track the price of all or a select few exchanges and average the hourly price. Whereas if the historical data was obtained directly from an exchange this would be biased and might not represent the true price of the currency, and thus would need averaging with other hourly prices from other exchanges. By using a historical tracker all the data is unbiased and averaged and readily available and doesn't require any requests to an API or coding needed to process data. + + Live price data can be collected through the same methods, a historical price tracker and an exchange API. However, this doesn't work the same way, unfortunately, a historical price tracker isn't updated as frequently as exchange APIs thus wouldn't provide on the hour accurate data. Therefore exchange APIs should be utilised in this case and multiple to provide an unbiased average for the hourly price. + \newline + + \textbf{Tweets} + \newline + \newline + Historical tweets can be obtained through the Twitter API, and however is not a feature of the Tweepy package - \textit{not mentioned or method on official Tweepy Documentation} \cite{33}. The Twitter API, as explained in the Litrature review, allows for historical tweets to be extracted from the platform, 100 per request and a maximum of 50 requests per month. This proposes an issue with not providing enough data, where sentiment will need to be calculated per hour. Simply put, for a year of hourly price data there will be 9050 records. Therefore the equivilent will be needed for sentiment, however the sentiment will be the average the sentiment per hour of tweets. Using one request, 100 tweets per hour, per hour, 905,000 tweets will need to be extracted to provide the data needed. A solution to this issue could be to use and create multiple accounts and manually extract data from the API and merge. Another option is the pay for the data from 3rd party companies whom have access to the Enterprise API and can pull more data, 2000 per request \\cite{7}\cite{8}. Due to price for data of these 3rd parties the former could be a suitable, but more time consuming option. + + Live tweets can be collected by two methods from Twitter, from the Twitter API and using Twitter Python package such as Tweepy, detailed in the Literature review. Additionally, the limitations of the Twitter API are also discussed in the review which states how the Twitter API has a tiering system: Standard, Premium and Enterprise. Each tier has different levels of access to the API and can extract a different amount of data from the platform. Thus concluding the section in the Literature review, the Twitter API will not be used for the extraction and streaming of live tweets due to it being restricted to Enterprise users. Therefore, Tweepy will be used to set up a looping authenticated streaming solution with the Twitter API which will allow the access of current recurring data. + + \subsection{Spam Filtering} + This part of the system will aim to detect whether or not the steamed and/or the historical tweet is spam - unwanted tweets that serve no purpose in determining opinion of the public. These types of tweets can be from advertisement - usually labeled with \textit{\#Airdrop} and can contain \textit{"tickets here" and "Token Sale"}, to job advertisments - usually containing word such as \textit{Firm, hire, hiring, jobs and careers}. It is important to filter out and remove such data from the network as these can be seen as outliers of the true needed data and will skew predictions will invalid sentiment. + + + + + \subsection{Language Detection} + Twitter provides this, but non-basic-latin characters can get through in tweets + + \subsection{Solution Summary}\label{sumary} \subsection{Requirements} @@ -456,6 +487,12 @@ \subsection{Data flow Overview}\label{data-flow} + \begin{center} + \includegraphics[width=17cm,height=8cm]{images/Generic_Flow.png} + \newline + \textit{Figure 3: A conceptual design of an LSTM cell bank - from Medium article by Shi Yan: Understanding LSTM and its diagrams}\cite{23} + \end{center} + \subsection{Packages, Tools and Techniques}\label{tools} \newpage diff --git a/document.toc b/document.toc index f4f90e5..f6da91a 100644 --- a/document.toc +++ b/document.toc @@ -54,62 +54,68 @@ \defcounter {refsection}{0}\relax \contentsline {section}{Solution Approach}{22}{section*.28} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Solution Summary}{22}{section*.29} +\contentsline {subsection}{Data gathering}{22}{section*.29} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Requirements}{22}{section*.30} +\contentsline {subsection}{Spam Filtering}{23}{section*.30} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data flow Overview}{22}{section*.31} +\contentsline {subsection}{Language Detection}{23}{section*.31} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Packages, Tools and Techniques}{22}{section*.32} +\contentsline {subsection}{Solution Summary}{23}{section*.32} \defcounter {refsection}{0}\relax -\contentsline {section}{System Design and Implementation}{23}{section*.33} +\contentsline {subsection}{Requirements}{23}{section*.33} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data collection}{23}{section*.34} +\contentsline {subsection}{Data flow Overview}{23}{section*.34} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Price Time-series Data}{23}{section*.35} +\contentsline {subsection}{Packages, Tools and Techniques}{23}{section*.35} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data processing}{23}{section*.36} +\contentsline {section}{System Design and Implementation}{24}{section*.36} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Preprocessing}{23}{section*.37} +\contentsline {subsection}{Data collection}{24}{section*.37} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Tweet Filtering}{23}{section*.38} +\contentsline {subsubsection}{Price Time-series Data}{24}{section*.38} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Text Cleaning}{23}{section*.39} +\contentsline {subsection}{Data processing}{24}{section*.39} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Ngram based Language detection filtering}{23}{section*.40} +\contentsline {subsubsection}{Preprocessing}{24}{section*.40} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Spam Filtering}{23}{section*.41} +\contentsline {paragraph}{Tweet Filtering}{24}{section*.41} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Tweet Processing}{23}{section*.42} +\contentsline {paragraph}{Text Cleaning}{24}{section*.42} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Naive Bayes model}{23}{section*.43} +\contentsline {paragraph}{Ngram based Language detection filtering}{24}{section*.43} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Sentiment Analysis}{23}{section*.44} +\contentsline {subsubsection}{Spam Filtering}{24}{section*.44} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{VADER}{23}{section*.45} +\contentsline {paragraph}{Tweet Processing}{24}{section*.45} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Recurrent Neural Network - LSTM}{23}{section*.46} +\contentsline {paragraph}{Naive Bayes model}{24}{section*.46} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Training and Testing Model}{23}{section*.47} +\contentsline {subsection}{Sentiment Analysis}{24}{section*.47} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Scoring and Validation}{23}{section*.48} +\contentsline {subsubsection}{VADER}{24}{section*.48} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Future Prediction Forecasting}{23}{section*.49} +\contentsline {subsection}{Recurrent Neural Network - LSTM}{24}{section*.49} \defcounter {refsection}{0}\relax -\contentsline {section}{Testing: Verification and Reflection}{24}{section*.50} +\contentsline {subsubsection}{Training and Testing Model}{24}{section*.50} \defcounter {refsection}{0}\relax -\contentsline {section}{Discussion: Contribution and Reflection}{25}{section*.51} +\contentsline {subsubsection}{Scoring and Validation}{24}{section*.51} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Limitations}{25}{section*.52} +\contentsline {subsubsection}{Future Prediction Forecasting}{24}{section*.52} \defcounter {refsection}{0}\relax -\contentsline {section}{Conclusion and Future Improvements}{26}{section*.53} +\contentsline {section}{Testing: Verification and Reflection}{25}{section*.53} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Conclusion}{26}{section*.54} +\contentsline {section}{Discussion: Contribution and Reflection}{26}{section*.54} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Future Improvements}{26}{section*.55} +\contentsline {subsection}{Limitations}{26}{section*.55} \defcounter {refsection}{0}\relax -\contentsline {section}{Appendices}{29}{section*.57} +\contentsline {section}{Conclusion and Future Improvements}{27}{section*.56} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Appendix A - Project Initiation Document}{29}{section*.58} +\contentsline {subsection}{Conclusion}{27}{section*.57} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Appendix B - Log book}{42}{section*.59} +\contentsline {subsection}{Future Improvements}{27}{section*.58} +\defcounter {refsection}{0}\relax +\contentsline {section}{Appendices}{31}{section*.60} +\defcounter {refsection}{0}\relax +\contentsline {subsection}{Appendix A - Project Initiation Document}{31}{section*.61} +\defcounter {refsection}{0}\relax +\contentsline {subsection}{Appendix B - Log book}{44}{section*.62} diff --git a/images/Analysis_Engine.png b/images/Analysis_Engine.png new file mode 100755 index 0000000..0c7565f Binary files /dev/null and b/images/Analysis_Engine.png differ diff --git a/images/Data_Collector.png b/images/Data_Collector.png new file mode 100755 index 0000000..4a99588 Binary files /dev/null and b/images/Data_Collector.png differ diff --git a/images/Dataflow.png b/images/Dataflow.png new file mode 100755 index 0000000..9758dc6 Binary files /dev/null and b/images/Dataflow.png differ diff --git a/images/Frontend_Application.png b/images/Frontend_Application.png new file mode 100755 index 0000000..d91cdf3 Binary files /dev/null and b/images/Frontend_Application.png differ diff --git a/images/Future_Predictions.png b/images/Future_Predictions.png new file mode 100755 index 0000000..3428496 Binary files /dev/null and b/images/Future_Predictions.png differ diff --git a/images/Generic_Flow.png b/images/Generic_Flow.png new file mode 100755 index 0000000..1c1a731 Binary files /dev/null and b/images/Generic_Flow.png differ diff --git a/images/Neural_Network.png b/images/Neural_Network.png new file mode 100755 index 0000000..97b0598 Binary files /dev/null and b/images/Neural_Network.png differ diff --git a/report.bib b/report.bib index 6c96f5e..d08a04a 100644 --- a/report.bib +++ b/report.bib @@ -315,4 +315,15 @@ pages={41--46}, year={2001}, url={https://www.cc.gatech.edu/~isbell/reading/papers/Rish.pdf} +} + +@inproceedings{33, + title={Tweepy Documentation}, + author={Joshua Roesslein}, + booktitle={}, + volume={}, + number={}, + pages={}, + year={2009}, + url={http://docs.tweepy.org/en/v3.5.0/} } \ No newline at end of file