This commit is contained in:
Andy Sotheran 2019-04-26 18:19:41 +01:00
parent 5d9cfb085c
commit 6e23cc3a25
7 changed files with 618 additions and 432 deletions

View File

@ -23,23 +23,23 @@
\@writefile{toc}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \@writefile{toc}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lof}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \@writefile{lof}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lot}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \@writefile{lot}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Abstract}{2}{section*.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1}Abstract}{2}{section.1}}
\newlabel{abstract}{{}{2}{Abstract}{section*.1}{}} \newlabel{abstract}{{1}{2}{Abstract}{section.1}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Acknowledgements}{3}{section*.2}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2}Acknowledgements}{3}{section.2}}
\newlabel{acknowledgements}{{}{3}{Acknowledgements}{section*.2}{}} \newlabel{acknowledgements}{{2}{3}{Acknowledgements}{section.2}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Glossary}{4}{section*.3}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3}Glossary}{4}{section.3}}
\newlabel{glossary}{{}{4}{Glossary}{section*.3}{}} \newlabel{glossary}{{3}{4}{Glossary}{section.3}{}}
\abx@aux@cite{1} \abx@aux@cite{1}
\abx@aux@segm{0}{0}{1} \abx@aux@segm{0}{0}{1}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Introduction}{8}{section*.5}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {4}Introduction}{8}{section.4}}
\newlabel{introduction}{{}{8}{Introduction}{section*.5}{}} \newlabel{introduction}{{4}{8}{Introduction}{section.4}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Problem Articulation}{10}{section*.6}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {5}Problem Articulation}{10}{section.5}}
\newlabel{problem}{{}{10}{Problem Articulation}{section*.6}{}} \newlabel{problem}{{5}{10}{Problem Articulation}{section.5}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Problem Statement}{10}{section*.7}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Problem Statement}{10}{subsection.5.1}}
\newlabel{statement}{{}{10}{Problem Statement}{section*.7}{}} \newlabel{statement}{{5.1}{10}{Problem Statement}{subsection.5.1}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Stakeholders}{10}{section*.8}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Stakeholders}{10}{subsection.5.2}}
\newlabel{stakeholders}{{}{10}{Stakeholders}{section*.8}{}} \newlabel{stakeholders}{{5.2}{10}{Stakeholders}{subsection.5.2}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Project Motivation}{11}{section*.9}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Project Motivation}{11}{subsection.5.3}}
\abx@aux@cite{2} \abx@aux@cite{2}
\abx@aux@segm{0}{0}{2} \abx@aux@segm{0}{0}{2}
\abx@aux@cite{3} \abx@aux@cite{3}
@ -47,23 +47,23 @@
\abx@aux@cite{4} \abx@aux@cite{4}
\abx@aux@segm{0}{0}{4} \abx@aux@segm{0}{0}{4}
\abx@aux@segm{0}{0}{1} \abx@aux@segm{0}{0}{1}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Technical Specification}{13}{section*.10}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Technical Specification}{13}{subsection.5.4}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Project Constraints}{15}{section*.11}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Project Constraints}{15}{subsection.5.5}}
\newlabel{constraints}{{}{15}{Project Constraints}{section*.11}{}} \newlabel{constraints}{{5.5}{15}{Project Constraints}{subsection.5.5}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Quality Goals}{15}{section*.12}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {6}Quality Goals}{15}{section.6}}
\abx@aux@segm{0}{0}{3} \abx@aux@segm{0}{0}{3}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Literature Review}{16}{section*.13}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {7}Literature Review}{16}{section.7}}
\newlabel{literature}{{}{16}{Literature Review}{section*.13}{}} \newlabel{literature}{{7}{16}{Literature Review}{section.7}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Existing Tools}{16}{section*.14}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Existing Tools}{16}{subsection.7.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Related research}{16}{section*.15}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Related research}{16}{subsection.7.2}}
\abx@aux@segm{0}{0}{1} \abx@aux@segm{0}{0}{1}
\abx@aux@cite{5} \abx@aux@cite{5}
\abx@aux@segm{0}{0}{5} \abx@aux@segm{0}{0}{5}
\abx@aux@cite{6} \abx@aux@cite{6}
\abx@aux@segm{0}{0}{6} \abx@aux@segm{0}{0}{6}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data Collection}{17}{section*.16}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Data Collection}{17}{subsection.7.3}}
\newlabel{tweet_collection}{{}{17}{Data Collection}{section*.16}{}} \newlabel{tweet_collection}{{7.3}{17}{Data Collection}{subsection.7.3}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Twitter and Twitter API}{17}{section*.17}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.1}Twitter and Twitter API}{17}{subsubsection.7.3.1}}
\abx@aux@cite{7} \abx@aux@cite{7}
\abx@aux@segm{0}{0}{7} \abx@aux@segm{0}{0}{7}
\abx@aux@cite{8} \abx@aux@cite{8}
@ -71,16 +71,16 @@
\abx@aux@cite{9} \abx@aux@cite{9}
\abx@aux@segm{0}{0}{9} \abx@aux@segm{0}{0}{9}
\abx@aux@segm{0}{0}{7} \abx@aux@segm{0}{0}{7}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tweepy Python Package}{18}{section*.18}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.2}Tweepy Python Package}{18}{subsubsection.7.3.2}}
\abx@aux@segm{0}{0}{1} \abx@aux@segm{0}{0}{1}
\abx@aux@segm{0}{0}{3} \abx@aux@segm{0}{0}{3}
\abx@aux@segm{0}{0}{6} \abx@aux@segm{0}{0}{6}
\abx@aux@cite{10} \abx@aux@cite{10}
\abx@aux@segm{0}{0}{10} \abx@aux@segm{0}{0}{10}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{19}{section*.19}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Sentiment Analysis}{19}{subsection.7.4}}
\newlabel{sentiment}{{}{19}{Sentiment Analysis}{section*.19}{}} \newlabel{sentiment}{{7.4}{19}{Sentiment Analysis}{subsection.7.4}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Natural Language Processing}{19}{section*.20}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.4.1}Natural Language Processing}{19}{subsubsection.7.4.1}}
\newlabel{algorithms}{{}{19}{Natural Language Processing}{section*.20}{}} \newlabel{algorithms}{{7.4.1}{19}{Natural Language Processing}{subsubsection.7.4.1}{}}
\abx@aux@cite{11} \abx@aux@cite{11}
\abx@aux@segm{0}{0}{11} \abx@aux@segm{0}{0}{11}
\abx@aux@cite{12} \abx@aux@cite{12}
@ -92,8 +92,8 @@
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{20}{section*.21}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.4.2}Valence Aware Dictionary and sEntiment Reasoning}{20}{subsubsection.7.4.2}}
\newlabel{Vader}{{}{20}{Valence Aware Dictionary and sEntiment Reasoning}{section*.21}{}} \newlabel{Vader}{{7.4.2}{20}{Valence Aware Dictionary and sEntiment Reasoning}{subsubsection.7.4.2}{}}
\abx@aux@cite{14} \abx@aux@cite{14}
\abx@aux@segm{0}{0}{14} \abx@aux@segm{0}{0}{14}
\abx@aux@cite{15} \abx@aux@cite{15}
@ -101,16 +101,16 @@
\abx@aux@cite{16} \abx@aux@cite{16}
\abx@aux@segm{0}{0}{16} \abx@aux@segm{0}{0}{16}
\abx@aux@segm{0}{0}{15} \abx@aux@segm{0}{0}{15}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Neural Networks}{21}{section*.22}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Neural Networks}{21}{subsection.7.5}}
\newlabel{networks}{{}{21}{Neural Networks}{section*.22}{}} \newlabel{networks}{{7.5}{21}{Neural Networks}{subsection.7.5}{}}
\abx@aux@cite{17} \abx@aux@cite{17}
\abx@aux@segm{0}{0}{17} \abx@aux@segm{0}{0}{17}
\abx@aux@cite{18} \abx@aux@cite{18}
\abx@aux@segm{0}{0}{18} \abx@aux@segm{0}{0}{18}
\abx@aux@cite{19} \abx@aux@cite{19}
\abx@aux@segm{0}{0}{19} \abx@aux@segm{0}{0}{19}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{22}{section*.23}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.1}Recurrent Neural Network (RNN)}{22}{subsubsection.7.5.1}}
\newlabel{types}{{}{22}{Recurrent Neural Network (RNN)}{section*.23}{}} \newlabel{types}{{7.5.1}{22}{Recurrent Neural Network (RNN)}{subsubsection.7.5.1}{}}
\abx@aux@cite{20} \abx@aux@cite{20}
\abx@aux@segm{0}{0}{20} \abx@aux@segm{0}{0}{20}
\abx@aux@cite{21} \abx@aux@cite{21}
@ -121,8 +121,8 @@
\abx@aux@cite{23} \abx@aux@cite{23}
\abx@aux@segm{0}{0}{23} \abx@aux@segm{0}{0}{23}
\abx@aux@segm{0}{0}{23} \abx@aux@segm{0}{0}{23}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{23}{section*.24}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.2}Long-Short Term Memory (LSTM)}{23}{subsubsection.7.5.2}}
\newlabel{lstms}{{}{23}{Long-Short Term Memory (LSTM)}{section*.24}{}} \newlabel{lstms}{{7.5.2}{23}{Long-Short Term Memory (LSTM)}{subsubsection.7.5.2}{}}
\abx@aux@segm{0}{0}{22} \abx@aux@segm{0}{0}{22}
\abx@aux@segm{0}{0}{23} \abx@aux@segm{0}{0}{23}
\abx@aux@cite{24} \abx@aux@cite{24}
@ -133,7 +133,7 @@
\abx@aux@segm{0}{0}{25} \abx@aux@segm{0}{0}{25}
\abx@aux@cite{26} \abx@aux@cite{26}
\abx@aux@segm{0}{0}{26} \abx@aux@segm{0}{0}{26}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Keras and TensorFlow}{24}{section*.25}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.3}Keras and TensorFlow}{24}{subsubsection.7.5.3}}
\abx@aux@cite{27} \abx@aux@cite{27}
\abx@aux@segm{0}{0}{27} \abx@aux@segm{0}{0}{27}
\abx@aux@cite{28} \abx@aux@cite{28}
@ -142,7 +142,7 @@
\abx@aux@segm{0}{0}{28} \abx@aux@segm{0}{0}{28}
\abx@aux@cite{29} \abx@aux@cite{29}
\abx@aux@segm{0}{0}{29} \abx@aux@segm{0}{0}{29}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Optimisers}{25}{section*.26}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.4}Optimisers}{25}{subsubsection.7.5.4}}
\abx@aux@cite{30} \abx@aux@cite{30}
\abx@aux@segm{0}{0}{30} \abx@aux@segm{0}{0}{30}
\abx@aux@cite{31} \abx@aux@cite{31}
@ -150,113 +150,121 @@
\abx@aux@segm{0}{0}{30} \abx@aux@segm{0}{0}{30}
\abx@aux@cite{32} \abx@aux@cite{32}
\abx@aux@segm{0}{0}{32} \abx@aux@segm{0}{0}{32}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Machine Learning}{27}{section*.27}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.6}Machine Learning}{27}{subsection.7.6}}
\newlabel{machine}{{}{27}{Machine Learning}{section*.27}{}} \newlabel{machine}{{7.6}{27}{Machine Learning}{subsection.7.6}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Naive Bayes}{27}{section*.28}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.6.1}Naive Bayes}{27}{subsubsection.7.6.1}}
\abx@aux@segm{0}{0}{32} \abx@aux@segm{0}{0}{32}
\abx@aux@cite{33} \abx@aux@cite{33}
\abx@aux@segm{0}{0}{33} \abx@aux@segm{0}{0}{33}
\abx@aux@segm{0}{0}{33} \abx@aux@segm{0}{0}{33}
\abx@aux@segm{0}{0}{33} \abx@aux@segm{0}{0}{33}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Bag Of Words}{28}{section*.29}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.7}Bag Of Words}{28}{subsection.7.7}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{TF-IDF}{28}{section*.30}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.8}TF-IDF}{28}{subsection.7.8}}
\abx@aux@cite{34} \abx@aux@cite{34}
\abx@aux@segm{0}{0}{34} \abx@aux@segm{0}{0}{34}
\abx@aux@segm{0}{0}{34} \abx@aux@segm{0}{0}{34}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Addictive Smoothing}{29}{section*.31}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {7.9}Addictive Smoothing}{29}{subsection.7.9}}
\abx@aux@cite{35} \abx@aux@cite{35}
\abx@aux@segm{0}{0}{35} \abx@aux@segm{0}{0}{35}
\abx@aux@segm{0}{0}{7} \abx@aux@segm{0}{0}{7}
\abx@aux@segm{0}{0}{8} \abx@aux@segm{0}{0}{8}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Solution Approach}{30}{section*.32}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {8}Solution Approach}{30}{section.8}}
\newlabel{solution}{{}{30}{Solution Approach}{section*.32}{}} \newlabel{solution}{{8}{30}{Solution Approach}{section.8}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data gathering}{30}{section*.33}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Data gathering}{30}{subsection.8.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data pre-processing}{31}{section*.34}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Data pre-processing}{31}{subsection.8.2}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Spam Filtering}{31}{section*.35}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Spam Filtering}{31}{subsection.8.3}}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Language Detection}{32}{section*.36}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Language Detection}{32}{subsection.8.4}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{32}{section*.37}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Sentiment Analysis}{32}{subsection.8.5}}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\abx@aux@segm{0}{0}{11} \abx@aux@segm{0}{0}{11}
\abx@aux@segm{0}{0}{22} \abx@aux@segm{0}{0}{22}
\abx@aux@segm{0}{0}{5} \abx@aux@segm{0}{0}{5}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Neural Network}{33}{section*.38}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.6}Neural Network}{33}{subsection.8.6}}
\abx@aux@segm{0}{0}{25} \abx@aux@segm{0}{0}{25}
\abx@aux@segm{0}{0}{25} \abx@aux@segm{0}{0}{25}
\abx@aux@cite{36} \abx@aux@cite{36}
\abx@aux@segm{0}{0}{36} \abx@aux@segm{0}{0}{36}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Price Forecasting}{35}{section*.40}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.7}Price Forecasting}{35}{subsection.8.7}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Frontend Application}{35}{section*.41}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.8}Frontend Application}{35}{subsection.8.8}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{With reference to Initial PID}{35}{section*.42}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.9}With reference to Initial PID}{35}{subsection.8.9}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Solution Summary}{36}{section*.43}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.10}Solution Summary}{36}{subsection.8.10}}
\newlabel{summary}{{}{36}{Solution Summary}{section*.43}{}} \newlabel{summary}{{8.10}{36}{Solution Summary}{subsection.8.10}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data flow Overview}{37}{section*.44}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {8.11}Data flow Overview}{37}{subsection.8.11}}
\newlabel{data-flow}{{}{37}{Data flow Overview}{section*.44}{}} \newlabel{data-flow}{{8.11}{37}{Data flow Overview}{subsection.8.11}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{System Design}{38}{section*.45}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {9}System Design}{38}{section.9}}
\newlabel{Design}{{}{38}{System Design}{section*.45}{}} \newlabel{Design}{{9}{38}{System Design}{section.9}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Dataflow Designs}{38}{section*.46}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Dataflow Designs}{38}{subsection.9.1}}
\abx@aux@segm{0}{0}{12} \abx@aux@segm{0}{0}{12}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Interface Design}{45}{section*.47}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Interface Design}{45}{subsection.9.2}}
\abx@aux@cite{37} \abx@aux@cite{37}
\abx@aux@segm{0}{0}{37} \abx@aux@segm{0}{0}{37}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Implementation}{46}{section*.49}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {10}Implementation}{46}{section.10}}
\newlabel{implementation}{{}{46}{Implementation}{section*.49}{}} \newlabel{implementation}{{10}{46}{Implementation}{section.10}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data collection}{46}{section*.50}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.1}Data collection}{46}{subsection.10.1}}
\newlabel{collection}{{}{46}{Data collection}{section*.50}{}} \newlabel{collection}{{10.1}{46}{Data collection}{subsection.10.1}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-Series Historical Data}{46}{section*.51}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.1}Price Time-Series Historical Data}{46}{subsubsection.10.1.1}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Historical price collection and averaging per exchange}{46}{lstlisting.1}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Historical price collection and averaging per exchange}{46}{lstlisting.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-Series Live Data}{47}{section*.52}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.2}Price Time-Series Live Data}{47}{subsubsection.10.1.2}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Extraction of Price from exchanges}{47}{lstlisting.2}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Extraction of Price from exchanges}{47}{lstlisting.2}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Creation of the unbiased hourly price}{48}{lstlisting.3}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Creation of the unbiased hourly price}{48}{lstlisting.3}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Historical Tweet Collection}{49}{section*.53}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.3}Historical Tweet Collection}{49}{subsubsection.10.1.3}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Sample Curl request - data saved to json and python scripted called to process data}{49}{lstlisting.4}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Sample Curl request - data saved to json and python scripted called to process data}{49}{lstlisting.4}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Sift-text python script - used alongside Curl command in Listing 4}{49}{lstlisting.5}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Sift-text python script - used alongside Curl command in Listing 4}{49}{lstlisting.5}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Live Tweet Collection}{51}{section*.54}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.1.4}Live Tweet Collection}{51}{subsubsection.10.1.4}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}Spam filter initialisation and training functions}{51}{lstlisting.6}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}Spam filter initialisation and training functions}{51}{lstlisting.6}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}Tweepy Streamer setup}{52}{lstlisting.7}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}Tweepy Streamer setup}{52}{lstlisting.7}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}Tweepy Stream: 'on\_data' method}{53}{lstlisting.8}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}Tweepy Stream: 'on\_data' method}{53}{lstlisting.8}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data pre-processing}{56}{section*.55}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.2}Data pre-processing}{56}{subsection.10.2}}
\newlabel{processing}{{}{56}{Data pre-processing}{section*.55}{}} \newlabel{processing}{{10.2}{56}{Data pre-processing}{subsection.10.2}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.2.1}Tweet Filtering}{56}{subsubsection.10.2.1}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}Basic data filtering and processing function - defined in 'tweet\_collector.py'}{56}{lstlisting.9}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}Basic data filtering and processing function - defined in 'tweet\_collector.py'}{56}{lstlisting.9}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.2.2}Language detection filtering}{57}{subsubsection.10.2.2}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {10}Language detection and filter function \cite {38}}{57}{lstlisting.10}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {10}Language detection and filter function \cite {38}}{57}{lstlisting.10}}
\abx@aux@cite{38} \abx@aux@cite{38}
\abx@aux@segm{0}{0}{38} \abx@aux@segm{0}{0}{38}
\abx@aux@segm{0}{0}{38} \abx@aux@segm{0}{0}{38}
\abx@aux@cite{39} \abx@aux@cite{39}
\abx@aux@segm{0}{0}{39} \abx@aux@segm{0}{0}{39}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {11}pre-processing of data prior to being used by the spam filter}{58}{lstlisting.11}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.2.3}Spam filter - Tokenisation, Ngrams, Stopword removal and Stemming}{59}{subsubsection.10.2.3}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {11}pre-processing of data prior to being used by the spam filter}{59}{lstlisting.11}}
\abx@aux@cite{40} \abx@aux@cite{40}
\abx@aux@segm{0}{0}{40} \abx@aux@segm{0}{0}{40}
\abx@aux@segm{0}{0}{40} \abx@aux@segm{0}{0}{40}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Spam Filtering}{60}{section*.56}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.3}Spam Filtering}{60}{subsection.10.3}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {12}Spam filter training Class - \textit {tweet\_collector.py}}{60}{lstlisting.12}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {12}Spam filter training Class - \textit {tweet\_collector.py}}{60}{lstlisting.12}}
\abx@aux@cite{41} \abx@aux@cite{41}
\abx@aux@segm{0}{0}{41} \abx@aux@segm{0}{0}{41}
\abx@aux@segm{0}{0}{34} \abx@aux@segm{0}{0}{34}
\abx@aux@cite{42} \abx@aux@cite{42}
\abx@aux@segm{0}{0}{42} \abx@aux@segm{0}{0}{42}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.3.1}Naive Bayes model}{63}{subsubsection.10.3.1}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {13}classifer class of spam\_filter.py}{63}{lstlisting.13}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {13}classifer class of spam\_filter.py}{63}{lstlisting.13}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.3.2}Classification}{65}{subsubsection.10.3.2}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {14}Classify Function of Parent classifier class of spam\_filter.py}{65}{lstlisting.14}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {14}Classify Function of Parent classifier class of spam\_filter.py}{65}{lstlisting.14}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {15}Predict function of parent classifier class of spam\_filter.py}{65}{lstlisting.15}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.3.3}Predict}{66}{subsubsection.10.3.3}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{66}{section*.57}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {15}Predict function of parent classifier class of spam\_filter.py}{66}{lstlisting.15}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{VADER}{66}{section*.58}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.3.4}Metrics}{66}{subsubsection.10.3.4}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Recurrent Neural Network - LSTM}{66}{section*.59}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {16}Metrics function for calculating the performance and accuracy of the model}{66}{lstlisting.16}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Training and Testing Model}{66}{section*.60}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.4}Sentiment Analysis}{68}{subsection.10.4}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Scoring and Validation}{66}{section*.61}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.5}Recurrent Neural Network - LSTM}{69}{subsection.10.5}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Prediction Forecasting}{66}{section*.62}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.5.1}Training and Testing Model}{69}{subsubsection.10.5.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Main File 'Main.py'}{66}{section*.63}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {10.5.2}Scoring and Validation}{69}{subsubsection.10.5.2}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Miscellaneous}{66}{section*.64}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.6}Future Prediction Forecasting}{69}{subsection.10.6}}
\@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {16}keys class - loads API keys for access}{66}{lstlisting.16}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.7}Main File 'Main.py'}{69}{subsection.10.7}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Testing Metrics and Accuracy}{67}{section*.65}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {10.8}Miscellaneous}{69}{subsection.10.8}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Project Evaluation}{68}{section*.66}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {17}keys class - loads API keys for access}{69}{lstlisting.17}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Discussion: Contribution and Reflection}{68}{section*.67}} \@writefile{lol}{\defcounter {refsection}{0}\relax }\@writefile{lol}{\contentsline {lstlisting}{\numberline {18}VADER sentiment analyser function}{69}{lstlisting.18}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Limitations}{68}{section*.68}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {11}Testing Metrics and Accuracy}{72}{section.11}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Conclusion and Future Improvements}{69}{section*.69}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {12}Project Evaluation}{73}{section.12}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Conclusion}{69}{section*.70}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {13}Discussion: Contribution and Reflection}{73}{section.13}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Improvements}{69}{section*.71}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {13.1}Limitations}{73}{subsection.13.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Appendices}{74}{section*.73}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {14}Conclusion and Future Improvements}{74}{section.14}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix A - Project Initiation Document}{74}{section*.74}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {14.1}Conclusion}{74}{subsection.14.1}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {14.2}Future Improvements}{74}{subsection.14.2}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {15}Appendices}{79}{section.15}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {15.1}Appendix A - Project Initiation Document}{79}{subsection.15.1}}
\abx@aux@refcontextdefaultsdone \abx@aux@refcontextdefaultsdone
\abx@aux@defaultrefcontext{0}{1}{none/global//global/global} \abx@aux@defaultrefcontext{0}{1}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{2}{none/global//global/global} \abx@aux@defaultrefcontext{0}{2}{none/global//global/global}
@ -300,4 +308,4 @@
\abx@aux@defaultrefcontext{0}{40}{none/global//global/global} \abx@aux@defaultrefcontext{0}{40}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{41}{none/global//global/global} \abx@aux@defaultrefcontext{0}{41}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{42}{none/global//global/global} \abx@aux@defaultrefcontext{0}{42}{none/global//global/global}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix B - Log book}{87}{section*.75}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {15.2}Appendix B - Log book}{92}{subsection.15.2}}

View File

@ -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) 26 APR 2019 17:25 This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.10.16) 26 APR 2019 18:19
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
@ -1253,60 +1253,61 @@ Underfull \hbox (badness 10000) in paragraph at lines 1105--1107
Missing character: There is no  in font cmr10! Missing character: There is no  in font cmr10!
Missing character: There is no £ in font cmr10! Missing character: There is no £ in font cmr10!
[56]
Underfull \hbox (badness 10000) in paragraph at lines 1144--1147 Underfull \hbox (badness 10000) in paragraph at lines 1144--1147
[] []
[56] [57] [57]
Underfull \hbox (badness 10000) in paragraph at lines 1193--1195 Underfull \hbox (badness 10000) in paragraph at lines 1193--1195
[] []
[58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72]
Overfull \hbox (5.27716pt too wide) in paragraph at lines 1509--1509 [73] [74]
Overfull \hbox (5.27716pt too wide) in paragraph at lines 1661--1661
\OT1/cmr/m/it/12 ence on sig-nal pro-cess-ing, com-mu-ni-ca-tion, power and em- \OT1/cmr/m/it/12 ence on sig-nal pro-cess-ing, com-mu-ni-ca-tion, power and em-
bed-ded sys-tem (SCOPES)\OT1/cmr/m/n/12 , bed-ded sys-tem (SCOPES)\OT1/cmr/m/n/12 ,
[] []
Overfull \hbox (42.7786pt too wide) in paragraph at lines 1509--1509 Overfull \hbox (42.7786pt too wide) in paragraph at lines 1661--1661
\OT1/cmr/m/n/12 works,'' To-wards Data Sci-ence, 2018. [On-line]. Avail-able: [ \OT1/cmr/m/n/12 works,'' To-wards Data Sci-ence, 2018. [On-line]. Avail-able: [
]$\OT1/cmtt/m/n/12 https : / / towardsdatascience . ]$\OT1/cmtt/m/n/12 https : / / towardsdatascience .
[] []
[70] [75]
Overfull \hbox (86.07425pt too wide) in paragraph at lines 1509--1509 Overfull \hbox (86.07425pt too wide) in paragraph at lines 1661--1661
\OT1/cmr/m/n/12 works,'' Ma-chine Larn-ing Mas-tery, 2017. [On-line]. Avail-abl \OT1/cmr/m/n/12 works,'' Ma-chine Larn-ing Mas-tery, 2017. [On-line]. Avail-abl
e: []$\OT1/cmtt/m/n/12 https : / / machinelearningmastery . e: []$\OT1/cmtt/m/n/12 https : / / machinelearningmastery .
[] []
Overfull \hbox (30.84552pt too wide) in paragraph at lines 1509--1509 Overfull \hbox (30.84552pt too wide) in paragraph at lines 1661--1661
\OT1/cmr/m/n/12 lem,'' Su-per Data Sci-ence, 2018. [On-line]. Avail-able: []$\O \OT1/cmr/m/n/12 lem,'' Su-per Data Sci-ence, 2018. [On-line]. Avail-able: []$\O
T1/cmtt/m/n/12 https : / / www . superdatascience . T1/cmtt/m/n/12 https : / / www . superdatascience .
[] []
[71] [76]
Overfull \hbox (9.16136pt too wide) in paragraph at lines 1509--1509 Overfull \hbox (9.16136pt too wide) in paragraph at lines 1661--1661
\OT1/cmr/m/n/12 2019. [On-line]. Avail-able: []$\OT1/cmtt/m/n/12 https : / / me \OT1/cmr/m/n/12 2019. [On-line]. Avail-able: []$\OT1/cmtt/m/n/12 https : / / me
dium . com / datadriveninvestor / overview -[] dium . com / datadriveninvestor / overview -[]
[] []
[72] [77]
Overfull \hbox (2.93918pt too wide) in paragraph at lines 1509--1509 Overfull \hbox (2.93918pt too wide) in paragraph at lines 1661--1661
[]\OT1/cmr/m/n/12 P. Cryp-tog-ra-phy, ``A tu-to-rial on au-to-matic lan-guage i []\OT1/cmr/m/n/12 P. Cryp-tog-ra-phy, ``A tu-to-rial on au-to-matic lan-guage i
den-ti-fi-ca-tion - ngram based,'' den-ti-fi-ca-tion - ngram based,''
[] []
[73] [78]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1501, 597.55246pt x 845.07718pt> <PID.pdf, id=1662, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf> <use PID.pdf>
Package pdftex.def Info: PID.pdf used on input line 1514. Package pdftex.def Info: PID.pdf used on input line 1666.
(pdftex.def) Requested size: 597.551pt x 845.07512pt. (pdftex.def) Requested size: 597.551pt x 845.07512pt.
@ -1314,7 +1315,7 @@ pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf> <use PID.pdf>
Package pdftex.def Info: PID.pdf used on input line 1514. Package pdftex.def Info: PID.pdf used on input line 1666.
(pdftex.def) Requested size: 597.551pt x 845.07512pt. (pdftex.def) Requested size: 597.551pt x 845.07512pt.
@ -1324,237 +1325,244 @@ rsion <1.7>, but at most version <1.5> allowed
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1504, page=1, 597.55246pt x 845.07718pt> <PID.pdf, id=1665, page=1, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 1> <use PID.pdf, page 1>
Package pdftex.def Info: PID.pdf , page1 used on input line 1514. Package pdftex.def Info: PID.pdf , page1 used on input line 1666.
(pdftex.def) Requested size: 597.551pt x 845.07512pt. (pdftex.def) Requested size: 597.551pt x 845.07512pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 1> <use PID.pdf, page 1>
Package pdftex.def Info: PID.pdf , page1 used on input line 1514. Package pdftex.def Info: PID.pdf , page1 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[74] [79]
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 1> <use PID.pdf, page 1>
Package pdftex.def Info: PID.pdf , page1 used on input line 1514. Package pdftex.def Info: PID.pdf , page1 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 1> <use PID.pdf, page 1>
Package pdftex.def Info: PID.pdf , page1 used on input line 1514. Package pdftex.def Info: PID.pdf , page1 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 1> <use PID.pdf, page 1>
Package pdftex.def Info: PID.pdf , page1 used on input line 1514. Package pdftex.def Info: PID.pdf , page1 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[75 <./PID.pdf>] [80 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1535, page=2, 597.55246pt x 845.07718pt> <PID.pdf, id=1696, page=2, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 2> <use PID.pdf, page 2>
Package pdftex.def Info: PID.pdf , page2 used on input line 1514. Package pdftex.def Info: PID.pdf , page2 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 2> <use PID.pdf, page 2>
Package pdftex.def Info: PID.pdf , page2 used on input line 1514. Package pdftex.def Info: PID.pdf , page2 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 2> <use PID.pdf, page 2>
Package pdftex.def Info: PID.pdf , page2 used on input line 1514. Package pdftex.def Info: PID.pdf , page2 used on input line 1666.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[76 <./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
<PID.pdf, id=1541, page=3, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page3 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page3 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page3 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[77 <./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
<PID.pdf, id=1555, page=4, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page4 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page4 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page4 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[78 <./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
<PID.pdf, id=1561, page=5, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page5 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page5 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page5 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[79 <./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
<PID.pdf, id=1568, page=6, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page6 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page6 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page6 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[80 <./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
<PID.pdf, id=1574, page=7, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page7 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page7 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page7 used on input line 1514.
(pdftex.def) Requested size: 562.1644pt x 795.0303pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[81 <./PID.pdf>] [81 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1580, page=8, 845.07718pt x 597.55246pt> <PID.pdf, id=1702, page=3, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8> <use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page8 used on input line 1514. Package pdftex.def Info: PID.pdf , page3 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8> <use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page8 used on input line 1514. Package pdftex.def Info: PID.pdf , page3 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8> <use PID.pdf, page 3>
Package pdftex.def Info: PID.pdf , page8 used on input line 1514. Package pdftex.def Info: PID.pdf , page3 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[82 <./PID.pdf>] [82 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1589, page=9, 845.07718pt x 597.55246pt> <PID.pdf, id=1716, page=4, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9> <use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page9 used on input line 1514. Package pdftex.def Info: PID.pdf , page4 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9> <use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page9 used on input line 1514. Package pdftex.def Info: PID.pdf , page4 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9> <use PID.pdf, page 4>
Package pdftex.def Info: PID.pdf , page9 used on input line 1514. Package pdftex.def Info: PID.pdf , page4 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[83 <./PID.pdf>] [83 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1599, page=10, 845.07718pt x 597.55246pt> <PID.pdf, id=1722, page=5, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10> <use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page10 used on input line 1514. Package pdftex.def Info: PID.pdf , page5 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10> <use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page10 used on input line 1514. Package pdftex.def Info: PID.pdf , page5 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10> <use PID.pdf, page 5>
Package pdftex.def Info: PID.pdf , page10 used on input line 1514. Package pdftex.def Info: PID.pdf , page5 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[84 <./PID.pdf>] [84 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1611, page=11, 845.07718pt x 597.55246pt> <PID.pdf, id=1728, page=6, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11> <use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page11 used on input line 1514. Package pdftex.def Info: PID.pdf , page6 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11> <use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page11 used on input line 1514. Package pdftex.def Info: PID.pdf , page6 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11> <use PID.pdf, page 6>
Package pdftex.def Info: PID.pdf , page11 used on input line 1514. Package pdftex.def Info: PID.pdf , page6 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[85 <./PID.pdf>] [85 <./PID.pdf>]
pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
rsion <1.7>, but at most version <1.5> allowed rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1618, page=12, 845.07718pt x 597.55246pt> <PID.pdf, id=1735, page=7, 597.55246pt x 845.07718pt>
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12> <use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page12 used on input line 1514. Package pdftex.def Info: PID.pdf , page7 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12> <use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page12 used on input line 1514. Package pdftex.def Info: PID.pdf , page7 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
File: PID.pdf Graphic file (type pdf) File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12> <use PID.pdf, page 7>
Package pdftex.def Info: PID.pdf , page12 used on input line 1514. Package pdftex.def Info: PID.pdf , page7 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt. (pdftex.def) Requested size: 562.1644pt x 795.0303pt.
[86 <./PID.pdf>] [86 <./PID.pdf>]
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1518.
[87]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 1518.
(./document.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1518.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1518.
Package rerunfilecheck Info: File `document.out' has not changed. pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve
(rerunfilecheck) Checksum: DF36EDBB0B7E9D72F7D48A764834A921;10956. rsion <1.7>, but at most version <1.5> allowed
<PID.pdf, id=1742, page=8, 845.07718pt x 597.55246pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8>
Package pdftex.def Info: PID.pdf , page8 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8>
Package pdftex.def Info: PID.pdf , page8 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 8>
Package pdftex.def Info: PID.pdf , page8 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
[87 <./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
<PID.pdf, id=1751, page=9, 845.07718pt x 597.55246pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9>
Package pdftex.def Info: PID.pdf , page9 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9>
Package pdftex.def Info: PID.pdf , page9 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 9>
Package pdftex.def Info: PID.pdf , page9 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
[88 <./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
<PID.pdf, id=1761, page=10, 845.07718pt x 597.55246pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10>
Package pdftex.def Info: PID.pdf , page10 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10>
Package pdftex.def Info: PID.pdf , page10 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 10>
Package pdftex.def Info: PID.pdf , page10 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
[89 <./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
<PID.pdf, id=1773, page=11, 845.07718pt x 597.55246pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11>
Package pdftex.def Info: PID.pdf , page11 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11>
Package pdftex.def Info: PID.pdf , page11 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 11>
Package pdftex.def Info: PID.pdf , page11 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
[90 <./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
<PID.pdf, id=1779, page=12, 845.07718pt x 597.55246pt>
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12>
Package pdftex.def Info: PID.pdf , page12 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12>
Package pdftex.def Info: PID.pdf , page12 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
File: PID.pdf Graphic file (type pdf)
<use PID.pdf, page 12>
Package pdftex.def Info: PID.pdf , page12 used on input line 1666.
(pdftex.def) Requested size: 795.0303pt x 562.1644pt.
[91 <./PID.pdf>]
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1670.
[92]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 1670.
(./document.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1670.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1670.
Package rerunfilecheck Warning: File `document.out' has changed.
(rerunfilecheck) Rerun to get outlines right
(rerunfilecheck) or use package `bookmark'.
Package rerunfilecheck Info: Checksums for `document.out':
(rerunfilecheck) Before: 470E96B1975B93C0FBF2BBDE75CCBC9A;11213
(rerunfilecheck) After: 4282304709601C97B33DDA60BCD897DC;12402.
Package logreq Info: Writing requests to 'document.run.xml'. Package logreq Info: Writing requests to 'document.run.xml'.
\openout1 = `document.run.xml'. \openout1 = `document.run.xml'.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
24831 strings out of 492982 24997 strings out of 492982
389633 string characters out of 6134895 392577 string characters out of 6134895
1055130 words of memory out of 5000000 1047110 words of memory out of 5000000
27264 multiletter control sequences out of 15000+600000 27286 multiletter control sequences out of 15000+600000
13923 words of font info for 54 fonts, out of 8000000 for 9000 13923 words of font info for 54 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191 1141 hyphenation exceptions out of 8191
45i,18n,78p,2008b,1817s stack positions out of 5000i,500n,10000p,200000b,80000s 45i,18n,78p,2008b,1818s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></us </usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/sh r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/sh
are/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/te are/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/te
@ -1570,10 +1578,10 @@ fb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy6.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share
/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/share/texli /texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/share/texli
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb> ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb>
Output written on document.pdf (87 pages, 1528100 bytes). Output written on document.pdf (92 pages, 1545451 bytes).
PDF statistics: PDF statistics:
1845 PDF objects out of 2073 (max. 8388607) 2036 PDF objects out of 2073 (max. 8388607)
1685 compressed objects within 17 object streams 1869 compressed objects within 19 object streams
782 named destinations out of 1000 (max. 500000) 926 named destinations out of 1000 (max. 500000)
704 words of extra memory for PDF output out of 10000 (max. 10000000) 704 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@ -1,71 +1,77 @@
\BOOKMARK [1][-]{section*.1}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t}{}% 1 \BOOKMARK [1][-]{section.1}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t}{}% 1
\BOOKMARK [1][-]{section*.2}{\376\377\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000e\000m\000e\000n\000t\000s}{}% 2 \BOOKMARK [1][-]{section.2}{\376\377\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000e\000m\000e\000n\000t\000s}{}% 2
\BOOKMARK [1][-]{section*.3}{\376\377\000G\000l\000o\000s\000s\000a\000r\000y}{}% 3 \BOOKMARK [1][-]{section.3}{\376\377\000G\000l\000o\000s\000s\000a\000r\000y}{}% 3
\BOOKMARK [1][-]{section*.5}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 4 \BOOKMARK [1][-]{section.4}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 4
\BOOKMARK [1][-]{section*.6}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000A\000r\000t\000i\000c\000u\000l\000a\000t\000i\000o\000n}{}% 5 \BOOKMARK [1][-]{section.5}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000A\000r\000t\000i\000c\000u\000l\000a\000t\000i\000o\000n}{}% 5
\BOOKMARK [2][-]{section*.7}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000S\000t\000a\000t\000e\000m\000e\000n\000t}{section*.6}% 6 \BOOKMARK [2][-]{subsection.5.1}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000S\000t\000a\000t\000e\000m\000e\000n\000t}{section.5}% 6
\BOOKMARK [2][-]{section*.8}{\376\377\000S\000t\000a\000k\000e\000h\000o\000l\000d\000e\000r\000s}{section*.6}% 7 \BOOKMARK [2][-]{subsection.5.2}{\376\377\000S\000t\000a\000k\000e\000h\000o\000l\000d\000e\000r\000s}{section.5}% 7
\BOOKMARK [2][-]{section*.9}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000M\000o\000t\000i\000v\000a\000t\000i\000o\000n}{section*.6}% 8 \BOOKMARK [2][-]{subsection.5.3}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000M\000o\000t\000i\000v\000a\000t\000i\000o\000n}{section.5}% 8
\BOOKMARK [2][-]{section*.10}{\376\377\000T\000e\000c\000h\000n\000i\000c\000a\000l\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000a\000t\000i\000o\000n}{section*.6}% 9 \BOOKMARK [2][-]{subsection.5.4}{\376\377\000T\000e\000c\000h\000n\000i\000c\000a\000l\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000a\000t\000i\000o\000n}{section.5}% 9
\BOOKMARK [2][-]{section*.11}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000C\000o\000n\000s\000t\000r\000a\000i\000n\000t\000s}{section*.6}% 10 \BOOKMARK [2][-]{subsection.5.5}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000C\000o\000n\000s\000t\000r\000a\000i\000n\000t\000s}{section.5}% 10
\BOOKMARK [1][-]{section*.12}{\376\377\000Q\000u\000a\000l\000i\000t\000y\000\040\000G\000o\000a\000l\000s}{}% 11 \BOOKMARK [1][-]{section.6}{\376\377\000Q\000u\000a\000l\000i\000t\000y\000\040\000G\000o\000a\000l\000s}{}% 11
\BOOKMARK [1][-]{section*.13}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000R\000e\000v\000i\000e\000w}{}% 12 \BOOKMARK [1][-]{section.7}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000R\000e\000v\000i\000e\000w}{}% 12
\BOOKMARK [2][-]{section*.14}{\376\377\000E\000x\000i\000s\000t\000i\000n\000g\000\040\000T\000o\000o\000l\000s}{section*.13}% 13 \BOOKMARK [2][-]{subsection.7.1}{\376\377\000E\000x\000i\000s\000t\000i\000n\000g\000\040\000T\000o\000o\000l\000s}{section.7}% 13
\BOOKMARK [2][-]{section*.15}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000r\000e\000s\000e\000a\000r\000c\000h}{section*.13}% 14 \BOOKMARK [2][-]{subsection.7.2}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000r\000e\000s\000e\000a\000r\000c\000h}{section.7}% 14
\BOOKMARK [2][-]{section*.16}{\376\377\000D\000a\000t\000a\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.13}% 15 \BOOKMARK [2][-]{subsection.7.3}{\376\377\000D\000a\000t\000a\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section.7}% 15
\BOOKMARK [3][-]{section*.17}{\376\377\000T\000w\000i\000t\000t\000e\000r\000\040\000a\000n\000d\000\040\000T\000w\000i\000t\000t\000e\000r\000\040\000A\000P\000I}{section*.16}% 16 \BOOKMARK [3][-]{subsubsection.7.3.1}{\376\377\000T\000w\000i\000t\000t\000e\000r\000\040\000a\000n\000d\000\040\000T\000w\000i\000t\000t\000e\000r\000\040\000A\000P\000I}{subsection.7.3}% 16
\BOOKMARK [3][-]{section*.18}{\376\377\000T\000w\000e\000e\000p\000y\000\040\000P\000y\000t\000h\000o\000n\000\040\000P\000a\000c\000k\000a\000g\000e}{section*.16}% 17 \BOOKMARK [3][-]{subsubsection.7.3.2}{\376\377\000T\000w\000e\000e\000p\000y\000\040\000P\000y\000t\000h\000o\000n\000\040\000P\000a\000c\000k\000a\000g\000e}{subsection.7.3}% 17
\BOOKMARK [2][-]{section*.19}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.13}% 18 \BOOKMARK [2][-]{subsection.7.4}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section.7}% 18
\BOOKMARK [3][-]{section*.20}{\376\377\000N\000a\000t\000u\000r\000a\000l\000\040\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000P\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.19}% 19 \BOOKMARK [3][-]{subsubsection.7.4.1}{\376\377\000N\000a\000t\000u\000r\000a\000l\000\040\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000P\000r\000o\000c\000e\000s\000s\000i\000n\000g}{subsection.7.4}% 19
\BOOKMARK [3][-]{section*.21}{\376\377\000V\000a\000l\000e\000n\000c\000e\000\040\000A\000w\000a\000r\000e\000\040\000D\000i\000c\000t\000i\000o\000n\000a\000r\000y\000\040\000a\000n\000d\000\040\000s\000E\000n\000t\000i\000m\000e\000n\000t\000\040\000R\000e\000a\000s\000o\000n\000i\000n\000g}{section*.19}% 20 \BOOKMARK [3][-]{subsubsection.7.4.2}{\376\377\000V\000a\000l\000e\000n\000c\000e\000\040\000A\000w\000a\000r\000e\000\040\000D\000i\000c\000t\000i\000o\000n\000a\000r\000y\000\040\000a\000n\000d\000\040\000s\000E\000n\000t\000i\000m\000e\000n\000t\000\040\000R\000e\000a\000s\000o\000n\000i\000n\000g}{subsection.7.4}% 20
\BOOKMARK [2][-]{section*.22}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000s}{section*.13}% 21 \BOOKMARK [2][-]{subsection.7.5}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000s}{section.7}% 21
\BOOKMARK [3][-]{section*.23}{\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\050\000R\000N\000N\000\051}{section*.22}% 22 \BOOKMARK [3][-]{subsubsection.7.5.1}{\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\050\000R\000N\000N\000\051}{subsection.7.5}% 22
\BOOKMARK [3][-]{section*.24}{\376\377\000L\000o\000n\000g\000-\000S\000h\000o\000r\000t\000\040\000T\000e\000r\000m\000\040\000M\000e\000m\000o\000r\000y\000\040\000\050\000L\000S\000T\000M\000\051}{section*.22}% 23 \BOOKMARK [3][-]{subsubsection.7.5.2}{\376\377\000L\000o\000n\000g\000-\000S\000h\000o\000r\000t\000\040\000T\000e\000r\000m\000\040\000M\000e\000m\000o\000r\000y\000\040\000\050\000L\000S\000T\000M\000\051}{subsection.7.5}% 23
\BOOKMARK [3][-]{section*.25}{\376\377\000K\000e\000r\000a\000s\000\040\000a\000n\000d\000\040\000T\000e\000n\000s\000o\000r\000F\000l\000o\000w}{section*.22}% 24 \BOOKMARK [3][-]{subsubsection.7.5.3}{\376\377\000K\000e\000r\000a\000s\000\040\000a\000n\000d\000\040\000T\000e\000n\000s\000o\000r\000F\000l\000o\000w}{subsection.7.5}% 24
\BOOKMARK [3][-]{section*.26}{\376\377\000O\000p\000t\000i\000m\000i\000s\000e\000r\000s}{section*.22}% 25 \BOOKMARK [3][-]{subsubsection.7.5.4}{\376\377\000O\000p\000t\000i\000m\000i\000s\000e\000r\000s}{subsection.7.5}% 25
\BOOKMARK [2][-]{section*.27}{\376\377\000M\000a\000c\000h\000i\000n\000e\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section*.13}% 26 \BOOKMARK [2][-]{subsection.7.6}{\376\377\000M\000a\000c\000h\000i\000n\000e\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section.7}% 26
\BOOKMARK [3][-]{section*.28}{\376\377\000N\000a\000i\000v\000e\000\040\000B\000a\000y\000e\000s}{section*.27}% 27 \BOOKMARK [3][-]{subsubsection.7.6.1}{\376\377\000N\000a\000i\000v\000e\000\040\000B\000a\000y\000e\000s}{subsection.7.6}% 27
\BOOKMARK [2][-]{section*.29}{\376\377\000B\000a\000g\000\040\000O\000f\000\040\000W\000o\000r\000d\000s}{section*.13}% 28 \BOOKMARK [2][-]{subsection.7.7}{\376\377\000B\000a\000g\000\040\000O\000f\000\040\000W\000o\000r\000d\000s}{section.7}% 28
\BOOKMARK [2][-]{section*.30}{\376\377\000T\000F\000-\000I\000D\000F}{section*.13}% 29 \BOOKMARK [2][-]{subsection.7.8}{\376\377\000T\000F\000-\000I\000D\000F}{section.7}% 29
\BOOKMARK [2][-]{section*.31}{\376\377\000A\000d\000d\000i\000c\000t\000i\000v\000e\000\040\000S\000m\000o\000o\000t\000h\000i\000n\000g}{section*.13}% 30 \BOOKMARK [2][-]{subsection.7.9}{\376\377\000A\000d\000d\000i\000c\000t\000i\000v\000e\000\040\000S\000m\000o\000o\000t\000h\000i\000n\000g}{section.7}% 30
\BOOKMARK [1][-]{section*.32}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 31 \BOOKMARK [1][-]{section.8}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 31
\BOOKMARK [2][-]{section*.33}{\376\377\000D\000a\000t\000a\000\040\000g\000a\000t\000h\000e\000r\000i\000n\000g}{section*.32}% 32 \BOOKMARK [2][-]{subsection.8.1}{\376\377\000D\000a\000t\000a\000\040\000g\000a\000t\000h\000e\000r\000i\000n\000g}{section.8}% 32
\BOOKMARK [2][-]{section*.34}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000e\000-\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.32}% 33 \BOOKMARK [2][-]{subsection.8.2}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000e\000-\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section.8}% 33
\BOOKMARK [2][-]{section*.35}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.32}% 34 \BOOKMARK [2][-]{subsection.8.3}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section.8}% 34
\BOOKMARK [2][-]{section*.36}{\376\377\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000D\000e\000t\000e\000c\000t\000i\000o\000n}{section*.32}% 35 \BOOKMARK [2][-]{subsection.8.4}{\376\377\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000D\000e\000t\000e\000c\000t\000i\000o\000n}{section.8}% 35
\BOOKMARK [2][-]{section*.37}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.32}% 36 \BOOKMARK [2][-]{subsection.8.5}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section.8}% 36
\BOOKMARK [2][-]{section*.38}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k}{section*.32}% 37 \BOOKMARK [2][-]{subsection.8.6}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k}{section.8}% 37
\BOOKMARK [2][-]{section*.40}{\376\377\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section*.32}% 38 \BOOKMARK [2][-]{subsection.8.7}{\376\377\000P\000r\000i\000c\000e\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section.8}% 38
\BOOKMARK [2][-]{section*.41}{\376\377\000F\000r\000o\000n\000t\000e\000n\000d\000\040\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n}{section*.32}% 39 \BOOKMARK [2][-]{subsection.8.8}{\376\377\000F\000r\000o\000n\000t\000e\000n\000d\000\040\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n}{section.8}% 39
\BOOKMARK [2][-]{section*.42}{\376\377\000W\000i\000t\000h\000\040\000r\000e\000f\000e\000r\000e\000n\000c\000e\000\040\000t\000o\000\040\000I\000n\000i\000t\000i\000a\000l\000\040\000P\000I\000D}{section*.32}% 40 \BOOKMARK [2][-]{subsection.8.9}{\376\377\000W\000i\000t\000h\000\040\000r\000e\000f\000e\000r\000e\000n\000c\000e\000\040\000t\000o\000\040\000I\000n\000i\000t\000i\000a\000l\000\040\000P\000I\000D}{section.8}% 40
\BOOKMARK [2][-]{section*.43}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section*.32}% 41 \BOOKMARK [2][-]{subsection.8.10}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section.8}% 41
\BOOKMARK [2][-]{section*.44}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section*.32}% 42 \BOOKMARK [2][-]{subsection.8.11}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section.8}% 42
\BOOKMARK [1][-]{section*.45}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n}{}% 43 \BOOKMARK [1][-]{section.9}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n}{}% 43
\BOOKMARK [2][-]{section*.46}{\376\377\000D\000a\000t\000a\000f\000l\000o\000w\000\040\000D\000e\000s\000i\000g\000n\000s}{section*.45}% 44 \BOOKMARK [2][-]{subsection.9.1}{\376\377\000D\000a\000t\000a\000f\000l\000o\000w\000\040\000D\000e\000s\000i\000g\000n\000s}{section.9}% 44
\BOOKMARK [2][-]{section*.47}{\376\377\000I\000n\000t\000e\000r\000f\000a\000c\000e\000\040\000D\000e\000s\000i\000g\000n}{section*.45}% 45 \BOOKMARK [2][-]{subsection.9.2}{\376\377\000I\000n\000t\000e\000r\000f\000a\000c\000e\000\040\000D\000e\000s\000i\000g\000n}{section.9}% 45
\BOOKMARK [1][-]{section*.49}{\376\377\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 46 \BOOKMARK [1][-]{section.10}{\376\377\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 46
\BOOKMARK [2][-]{section*.50}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.49}% 47 \BOOKMARK [2][-]{subsection.10.1}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section.10}% 47
\BOOKMARK [3][-]{section*.51}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000S\000e\000r\000i\000e\000s\000\040\000H\000i\000s\000t\000o\000r\000i\000c\000a\000l\000\040\000D\000a\000t\000a}{section*.50}% 48 \BOOKMARK [3][-]{subsubsection.10.1.1}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000S\000e\000r\000i\000e\000s\000\040\000H\000i\000s\000t\000o\000r\000i\000c\000a\000l\000\040\000D\000a\000t\000a}{subsection.10.1}% 48
\BOOKMARK [3][-]{section*.52}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000S\000e\000r\000i\000e\000s\000\040\000L\000i\000v\000e\000\040\000D\000a\000t\000a}{section*.50}% 49 \BOOKMARK [3][-]{subsubsection.10.1.2}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000S\000e\000r\000i\000e\000s\000\040\000L\000i\000v\000e\000\040\000D\000a\000t\000a}{subsection.10.1}% 49
\BOOKMARK [3][-]{section*.53}{\376\377\000H\000i\000s\000t\000o\000r\000i\000c\000a\000l\000\040\000T\000w\000e\000e\000t\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.50}% 50 \BOOKMARK [3][-]{subsubsection.10.1.3}{\376\377\000H\000i\000s\000t\000o\000r\000i\000c\000a\000l\000\040\000T\000w\000e\000e\000t\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{subsection.10.1}% 50
\BOOKMARK [3][-]{section*.54}{\376\377\000L\000i\000v\000e\000\040\000T\000w\000e\000e\000t\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.50}% 51 \BOOKMARK [3][-]{subsubsection.10.1.4}{\376\377\000L\000i\000v\000e\000\040\000T\000w\000e\000e\000t\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{subsection.10.1}% 51
\BOOKMARK [2][-]{section*.55}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000e\000-\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.49}% 52 \BOOKMARK [2][-]{subsection.10.2}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000e\000-\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section.10}% 52
\BOOKMARK [2][-]{section*.56}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.49}% 53 \BOOKMARK [3][-]{subsubsection.10.2.1}{\376\377\000T\000w\000e\000e\000t\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{subsection.10.2}% 53
\BOOKMARK [2][-]{section*.57}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.49}% 54 \BOOKMARK [3][-]{subsubsection.10.2.2}{\376\377\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000d\000e\000t\000e\000c\000t\000i\000o\000n\000\040\000f\000i\000l\000t\000e\000r\000i\000n\000g}{subsection.10.2}% 54
\BOOKMARK [3][-]{section*.58}{\376\377\000V\000A\000D\000E\000R}{section*.57}% 55 \BOOKMARK [3][-]{subsubsection.10.2.3}{\376\377\000S\000p\000a\000m\000\040\000f\000i\000l\000t\000e\000r\000\040\000-\000\040\000T\000o\000k\000e\000n\000i\000s\000a\000t\000i\000o\000n\000,\000\040\000N\000g\000r\000a\000m\000s\000,\000\040\000S\000t\000o\000p\000w\000o\000r\000d\000\040\000r\000e\000m\000o\000v\000a\000l\000\040\000a\000n\000d\000\040\000S\000t\000e\000m\000m\000i\000n\000g}{subsection.10.2}% 55
\BOOKMARK [2][-]{section*.59}{\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*.49}% 56 \BOOKMARK [2][-]{subsection.10.3}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section.10}% 56
\BOOKMARK [3][-]{section*.60}{\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*.59}% 57 \BOOKMARK [3][-]{subsubsection.10.3.1}{\376\377\000N\000a\000i\000v\000e\000\040\000B\000a\000y\000e\000s\000\040\000m\000o\000d\000e\000l}{subsection.10.3}% 57
\BOOKMARK [3][-]{section*.61}{\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*.59}% 58 \BOOKMARK [3][-]{subsubsection.10.3.2}{\376\377\000C\000l\000a\000s\000s\000i\000f\000i\000c\000a\000t\000i\000o\000n}{subsection.10.3}% 58
\BOOKMARK [2][-]{section*.62}{\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}% 59 \BOOKMARK [3][-]{subsubsection.10.3.3}{\376\377\000P\000r\000e\000d\000i\000c\000t}{subsection.10.3}% 59
\BOOKMARK [2][-]{section*.63}{\376\377\000M\000a\000i\000n\000\040\000F\000i\000l\000e\000\040\000'\000M\000a\000i\000n\000.\000p\000y\000'}{section*.49}% 60 \BOOKMARK [3][-]{subsubsection.10.3.4}{\376\377\000M\000e\000t\000r\000i\000c\000s}{subsection.10.3}% 60
\BOOKMARK [2][-]{section*.64}{\376\377\000M\000i\000s\000c\000e\000l\000l\000a\000n\000e\000o\000u\000s}{section*.49}% 61 \BOOKMARK [2][-]{subsection.10.4}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section.10}% 61
\BOOKMARK [1][-]{section*.65}{\376\377\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000e\000t\000r\000i\000c\000s\000\040\000a\000n\000d\000\040\000A\000c\000c\000u\000r\000a\000c\000y}{}% 62 \BOOKMARK [2][-]{subsection.10.5}{\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.10}% 62
\BOOKMARK [1][-]{section*.66}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n}{}% 63 \BOOKMARK [3][-]{subsubsection.10.5.1}{\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}{subsection.10.5}% 63
\BOOKMARK [1][-]{section*.67}{\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}{}% 64 \BOOKMARK [3][-]{subsubsection.10.5.2}{\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}{subsection.10.5}% 64
\BOOKMARK [2][-]{section*.68}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section*.67}% 65 \BOOKMARK [2][-]{subsection.10.6}{\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.10}% 65
\BOOKMARK [1][-]{section*.69}{\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}{}% 66 \BOOKMARK [2][-]{subsection.10.7}{\376\377\000M\000a\000i\000n\000\040\000F\000i\000l\000e\000\040\000'\000M\000a\000i\000n\000.\000p\000y\000'}{section.10}% 66
\BOOKMARK [2][-]{section*.70}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section*.69}% 67 \BOOKMARK [2][-]{subsection.10.8}{\376\377\000M\000i\000s\000c\000e\000l\000l\000a\000n\000e\000o\000u\000s}{section.10}% 67
\BOOKMARK [2][-]{section*.71}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section*.69}% 68 \BOOKMARK [1][-]{section.11}{\376\377\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000e\000t\000r\000i\000c\000s\000\040\000a\000n\000d\000\040\000A\000c\000c\000u\000r\000a\000c\000y}{}% 68
\BOOKMARK [1][-]{section*.73}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 69 \BOOKMARK [1][-]{section.12}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n}{}% 69
\BOOKMARK [2][-]{section*.74}{\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*.73}% 70 \BOOKMARK [1][-]{section.13}{\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}{}% 70
\BOOKMARK [2][-]{section*.75}{\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*.73}% 71 \BOOKMARK [2][-]{subsection.13.1}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section.13}% 71
\BOOKMARK [1][-]{section.14}{\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}{}% 72
\BOOKMARK [2][-]{subsection.14.1}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section.14}% 73
\BOOKMARK [2][-]{subsection.14.2}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section.14}% 74
\BOOKMARK [1][-]{section.15}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 75
\BOOKMARK [2][-]{subsection.15.1}{\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.15}% 76
\BOOKMARK [2][-]{subsection.15.2}{\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.15}% 77

Binary file not shown.

Binary file not shown.

View File

@ -55,9 +55,9 @@
\addbibresource{report.bib} \addbibresource{report.bib}
\providecommand{\tightlist}{% %\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} % \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0} %\setcounter{secnumdepth}{0}
\PassOptionsToPackage{hyphens}{url} % url is loaded by hyperref \PassOptionsToPackage{hyphens}{url} % url is loaded by hyperref
\usepackage[unicode=true]{hyperref} \usepackage[unicode=true]{hyperref}
@ -1105,7 +1105,7 @@ def on_data(self, data):
Various techniques and tools have been utilised throughout the development of the system to process the data appropriately so it can be parsed by VADER, spam filter and neural network. This section will cover the crucial functions that provide such functionalities and that are called throughout the system, as seen in some of the above code snippets. Various techniques and tools have been utilised throughout the development of the system to process the data appropriately so it can be parsed by VADER, spam filter and neural network. This section will cover the crucial functions that provide such functionalities and that are called throughout the system, as seen in some of the above code snippets.
\newline \newline
\textbf{Tweet Filtering} \subsubsection{Tweet Filtering}
Various 'Utility Functions' have been used to initially filter out unwanted data from tweet text. These functions called by, both live tweet (\textit{tweet\_collector.py}) and historical tweet (\textit{sift\_text.py}) processing, prior any polarity classification or storing of tweet data to CSV files. Various 'Utility Functions' have been used to initially filter out unwanted data from tweet text. These functions called by, both live tweet (\textit{tweet\_collector.py}) and historical tweet (\textit{sift\_text.py}) processing, prior any polarity classification or storing of tweet data to CSV files.
@ -1145,7 +1145,7 @@ class utilityFuncs():
The last function in 'utility functions', 'checkLength' splits the text up into individual words (tokens - a process of tokenisation), this is used to check the total length of a tweet. If the tweet is less than five words it is dropped from classification, this is due to The last function in 'utility functions', 'checkLength' splits the text up into individual words (tokens - a process of tokenisation), this is used to check the total length of a tweet. If the tweet is less than five words it is dropped from classification, this is due to
\newline \newline
\textbf{Language detection filtering} \subsubsection{Language detection filtering}
This feature of the system is used as an additional filter for filtering out non-English tweets. As discussed in the solution approach, Tweepy/Twitter API provides a means to filter out non-English based tweets, this, however, doesn't work if the user has settings on Twitter set to be English as a prefered language and the region 'en'. Due to this non-English characters can still be within collected tweets; thus these are detected and filtered with the below function. This feature of the system is used as an additional filter for filtering out non-English tweets. As discussed in the solution approach, Tweepy/Twitter API provides a means to filter out non-English based tweets, this, however, doesn't work if the user has settings on Twitter set to be English as a prefered language and the region 'en'. Due to this non-English characters can still be within collected tweets; thus these are detected and filtered with the below function.
@ -1193,7 +1193,7 @@ def detectLaguage(self, text):
Additionally, an n-grams method could be used to distinguish the language of a given text and may perform more accurately than the word-based approach that was implemented \cite{39}. This could be a later improvement as the word-based approach is sufficient and requires a corpus for each language to compare against to be presented. Therefore it could be used as a comparison between approaches and seen as a possible improvement. Additionally, an n-grams method could be used to distinguish the language of a given text and may perform more accurately than the word-based approach that was implemented \cite{39}. This could be a later improvement as the word-based approach is sufficient and requires a corpus for each language to compare against to be presented. Therefore it could be used as a comparison between approaches and seen as a possible improvement.
\newline \newline
\textbf{Spam filter - Tokenisation, Ngrams, Stopword removal and Stemming} \subsubsection{Spam filter - Tokenisation, Ngrams, Stopword removal and Stemming}
Prior to any text being processed to both train the Naive Bayes classifier of the spam filter or to classify live tweets, the data needs to be pre-processed to extract the features from the text so that the classifier can identify the probability of each word in the given text. The explanation of how this classifier functions will be detailed in the 'Spam Filtering' Section. Prior to any text being processed to both train the Naive Bayes classifier of the spam filter or to classify live tweets, the data needs to be pre-processed to extract the features from the text so that the classifier can identify the probability of each word in the given text. The explanation of how this classifier functions will be detailed in the 'Spam Filtering' Section.
@ -1341,7 +1341,7 @@ def testTweet(self, tweet):
\item testTweet: Is a function used on the live tweets by the 'on\_data' function also outlined previously to process the tweets data and classify it as either being spam or not, the 'on\_data' function then handles the result accordingly. \item testTweet: Is a function used on the live tweets by the 'on\_data' function also outlined previously to process the tweets data and classify it as either being spam or not, the 'on\_data' function then handles the result accordingly.
\end{itemize} \end{itemize}
\textbf{Naive Bayes model} \subsubsection{Naive Bayes model}
The spam filter classifier, using a Naive Bayes model, was coded from scratch. Ultimately unneeded as the Scikit-learn python package comes with four inbuilt Naive Bayes classification models (Bernoulli, Complement, Multinomial, Gaussian)\cite{41}. The Naive Bayes model implemented was a multinomial Bayes model as the data used for classification was of multinomial distribution and categorical. This algorithm was not compared to the Scikit-learn's inbuilt model for accuracy as this was not the focus of this project. The model was coded from scratch due to finding information on how this would be done with techniques such as TFIDF and Additive Smoothing as detailed in the literature review, the tutorial that helped the greatest \textit{Spam Classifier in Python from scratch} \cite{34} \cite{42}. For an explanation of how the maths work behind this classifier see Literature review sections 'Bag Of Words', 'TF-IDF' and 'Addictive Smoothing'. The spam filter classifier, using a Naive Bayes model, was coded from scratch. Ultimately unneeded as the Scikit-learn python package comes with four inbuilt Naive Bayes classification models (Bernoulli, Complement, Multinomial, Gaussian)\cite{41}. The Naive Bayes model implemented was a multinomial Bayes model as the data used for classification was of multinomial distribution and categorical. This algorithm was not compared to the Scikit-learn's inbuilt model for accuracy as this was not the focus of this project. The model was coded from scratch due to finding information on how this would be done with techniques such as TFIDF and Additive Smoothing as detailed in the literature review, the tutorial that helped the greatest \textit{Spam Classifier in Python from scratch} \cite{34} \cite{42}. For an explanation of how the maths work behind this classifier see Literature review sections 'Bag Of Words', 'TF-IDF' and 'Addictive Smoothing'.
@ -1415,7 +1415,7 @@ class classifier(object):
self.probSpamTotal, self.probHamTotal = self.spam / self.total, self.ham / self.total self.probSpamTotal, self.probHamTotal = self.spam / self.total, self.ham / self.total
\end{lstlisting} \end{lstlisting}
\textbf{Classification} \subsubsection{Classification}
This function aims to classify the pre-processed tweet data as either spam or ham based on the term-frequency and probabilities calculated in the 'TF\_IDF' function. This conducted for each word in the processed tweet is identified if the word is contained in the spam set, based on the level of occurrence the probability is assigned a weight (The more it occures, the more likely it is a generic word), this is also identified for the level of occurrence in the ham set. Totals for the probability are formed, and the total count for both spam and ham are added to the spam and ham probabilities for the processed tweet. If the spam probability \textit{pSpam} is higher than the ham probability \textit{pHam} based on the level of occurrence of each word in the modelled respective sets, a boolean is returned based on which probability is higher - which identifies if the tweet is predominantly spam or ham (\textit{True} or \textit{False}). This function aims to classify the pre-processed tweet data as either spam or ham based on the term-frequency and probabilities calculated in the 'TF\_IDF' function. This conducted for each word in the processed tweet is identified if the word is contained in the spam set, based on the level of occurrence the probability is assigned a weight (The more it occures, the more likely it is a generic word), this is also identified for the level of occurrence in the ham set. Totals for the probability are formed, and the total count for both spam and ham are added to the spam and ham probabilities for the processed tweet. If the spam probability \textit{pSpam} is higher than the ham probability \textit{pHam} based on the level of occurrence of each word in the modelled respective sets, a boolean is returned based on which probability is higher - which identifies if the tweet is predominantly spam or ham (\textit{True} or \textit{False}).
@ -1437,7 +1437,9 @@ def classify(self, processed):
return pSpam >= pHam return pSpam >= pHam
\end{lstlisting} \end{lstlisting}
\textbf{Predict} \subsubsection{Predict}
The predict function under the classify parent class used by the \textit{tweet\_collector} to test the trained classifier on the test dataset. For each tweet in the dataset, the data is processed through the \textit{processTweet} function previously described, this returns a dictionary of words in the text which then used in the \textit{classify} function described above to identify whether or not each tweet is predominantly spam or ham, the result of all tweets are returned. The \textit{tweet\_collector then uses the returned array} in the \textit{filterStatistics} function, also previously described, to calculate the performance and accuracy of the trained model.
\begin{lstlisting}[language=python, caption=Predict function of parent classifier class of spam\_filter.py] \begin{lstlisting}[language=python, caption=Predict function of parent classifier class of spam\_filter.py]
def predict(self, testData): def predict(self, testData):
@ -1448,12 +1450,83 @@ def predict(self, testData):
return result return result
\end{lstlisting} \end{lstlisting}
\textbf{Metrics} \subsubsection{Metrics}
The metrics function calculates the F-score, precision, recall and accuracy (Suitable performance metrics for classification models) of the model when comparing the predicted class labels to the real class labels of the test dataset used in testing the model. By using these metrics, the performance of the model can be evaluated and later compared to a competitor model - for this reason, the metrics are calculated. A discussion of what these metrics show and the level of accuracy of the model are discussed in the Testing section later.
\begin{lstlisting}[language=python, caption=Metrics function for calculating the performance and accuracy of the model]
def metrics(labels, predictions):
true_pos, true_neg, false_pos, false_neg = 0, 0, 0, 0
# Identify the true pos/negs and false pos/negs of the predicted model of predicted values compared to the actual true values of the test dataset class labels
for i in range(len(labels)):
true_pos += int(labels[i] == 1 and predictions[i] == 1)
true_neg += int(labels[i] == 0 and predictions[i] == 0)
false_pos += int(labels[i] == 0 and predictions[i] == 1)
false_neg += int(labels[i] == 1 and predictions[i] == 0)
precision = true_pos / (true_pos + false_pos)
recall = true_pos / (true_pos + false_neg)
Fscore = 2 * precision * recall / (precision + recall)
accuracy = (true_pos + true_neg) / (true_pos + true_neg + false_pos + false_neg)
print("Precision: ", precision)
print("Recall: ", recall)
print("F-score: ", Fscore)
print("Accuracy: ", accuracy)
\end{lstlisting}
\newpage
\subsection{Sentiment Analysis} \subsection{Sentiment Analysis}
\subsubsection{VADER}
This section of the implementation outlines how VADER sentiment analyser is implemented and performs with the rest of the system. The \textit{get\_sentiment} class and its \textit{\_\_init\_\_} function are called in the \textit{tweet\_collector} script upon starting and by the \textit{historical tweets} script to initialise the analyser from the VADER package. Both scripts then call \textit{get\_vader\_sentiment} when needed to give polarity classification to a tweet.
\begin{lstlisting}[language=python, caption=]
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
...
class get_sentiment(object):
def __init__(self):
## Initialse object and analyser as global objects
self.analyser = SentimentIntensityAnalyzer()
self.sentiment = {}
self.compound = {}
def get_vader_sentiment(self, sentence):
# Calculate the polarity scores of the provided tweet
score = self.analyser.polarity_scores(sentence)
# Split dict into overall sentiment and compound
sentiment = list(score.values())
compound = sentiment[3:]
compound = compound[0]
sentiment = sentiment[:3]
# Compare and find overall sentiment
score = max(sentiment)
pos = [i for i, j in enumerate(sentiment) if j == score]
if pos[0] == 1:
print("Console: ", "Tweet is overal Neutral - Score: ", score)
# return neg or pos which ever is higher
if sentiment[0] > sentiment[2]:
score = sentiment[0]
else:
score = sentiment[2]
return score, compound
else:
return score, compound
\end{lstlisting}
The \textit{get\_vader\_sentiment} function provides the polarity scores for the provided tweet. The scores are split into polarity and compound to compare the positive and negative scores to identify the overall greater sentiment in the given tweet. By doing so helps to identify if the tweet was overall negative or positive. The compound score is separated and used separately.
\newpage
\subsection{Recurrent Neural Network - LSTM} \subsection{Recurrent Neural Network - LSTM}
\subsubsection{Training and Testing Model} \subsubsection{Training and Testing Model}
Dropouts? Dropouts?
\subsubsection{Scoring and Validation} \subsubsection{Scoring and Validation}
@ -1473,6 +1546,85 @@ def predict(self, testData):
hashtag = keys().currency_hashtags hashtag = keys().currency_hashtags
hashtag = hashtag.split(', ') hashtag = hashtag.split(', ')
\end{lstlisting} \end{lstlisting}
VADER lexicon customisation to a specific topic domain
\begin{lstlisting}[language=python, caption=VADER sentiment analyser function]
def set_newSentiment(self):
print("Console: ", "Adding marketing words and sentiment to lexicon...")
new_sentiment = {
'bull' : 2,
'bear' : -2,
'bullish' : 3.5,
'bearish' : -3.5,
'up' : 1.5,
'down' : -1.5,
'high' : 2.9,
'low' : -2.9,
'higher' : 2.8,
'lower' : -2.8,
'absconded' : -2.0,
'maximalists' : -2.4,
'regulate' : -2.3,
'infamous' : 2.2,
'trade higher' : 2.0,
'trade lower' : -2.0,
'revival' : 2.8,
'centralized' : -2.2,
'decentralized' : 2.2,
'centralised' : -2.2,
'decentralised' : 2.2,
'decentralization' : 2.3,
'decentralisation' : 2.3,
'centralization' : -2.3,
'centralisation' : -2.3,
'bans' : -2.6,
'hodl' : 2.8,
'ambiguity' : -2.4,
'revolutionize' : 2.1,
'revolutionise' : 2.1,
'consolidation' : 2.5,
'shorts' : -2.3,
'longs' : 2.3,
'long' : 2.2,
'short' : -2.2,
'shorting' : -2.8,
'grow' : 2.2,
'volatile' : -1.9,
'rally' : 2.9,
'rallying' : 2.7,
'noob' : -1.7,
'noobs' : -1.9,
'innovation' : 1.4,
'bottom' : -1.4,
'top' : 1.4,
'topped' : 1.5,
'bottomed' : -1.5,
'upwards' : 1.7,
'downwards' : -1.7,
'invest' : 2.0,
'raging' : 3.0,
'rocketing' : 3.1,
'swing' : 1.3,
'swinging' : 1.2,
'stake' : 1.4,
'whale' : -2.2,
'whales' : -2.3,
'lull' : -2.1,
'moon' : 2.7,
'choppy' : -1.2,
'buy' : 1.9,
'buying' : 1.7,
'sell' : -1.7,
'selling' : -1.9,
'start selling' : -2.3,
'stop selling' : 1.4,
'start buying' : 2.3,
'stop buying' : -1.4
}
self.analyser.lexicon.update(new_sentiment)
\end{lstlisting}
\newpage \newpage
\section{Testing Metrics and Accuracy} \section{Testing Metrics and Accuracy}

View File

@ -1,143 +1,155 @@
\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax \boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Abstract}{2}{section*.1} \contentsline {section}{\numberline {1}Abstract}{2}{section.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Acknowledgements}{3}{section*.2} \contentsline {section}{\numberline {2}Acknowledgements}{3}{section.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Glossary}{4}{section*.3} \contentsline {section}{\numberline {3}Glossary}{4}{section.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Introduction}{8}{section*.5} \contentsline {section}{\numberline {4}Introduction}{8}{section.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Problem Articulation}{10}{section*.6} \contentsline {section}{\numberline {5}Problem Articulation}{10}{section.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Problem Statement}{10}{section*.7} \contentsline {subsection}{\numberline {5.1}Problem Statement}{10}{subsection.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Stakeholders}{10}{section*.8} \contentsline {subsection}{\numberline {5.2}Stakeholders}{10}{subsection.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Project Motivation}{11}{section*.9} \contentsline {subsection}{\numberline {5.3}Project Motivation}{11}{subsection.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Technical Specification}{13}{section*.10} \contentsline {subsection}{\numberline {5.4}Technical Specification}{13}{subsection.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Project Constraints}{15}{section*.11} \contentsline {subsection}{\numberline {5.5}Project Constraints}{15}{subsection.5.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Quality Goals}{15}{section*.12} \contentsline {section}{\numberline {6}Quality Goals}{15}{section.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Literature Review}{16}{section*.13} \contentsline {section}{\numberline {7}Literature Review}{16}{section.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Existing Tools}{16}{section*.14} \contentsline {subsection}{\numberline {7.1}Existing Tools}{16}{subsection.7.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Related research}{16}{section*.15} \contentsline {subsection}{\numberline {7.2}Related research}{16}{subsection.7.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data Collection}{17}{section*.16} \contentsline {subsection}{\numberline {7.3}Data Collection}{17}{subsection.7.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Twitter and Twitter API}{17}{section*.17} \contentsline {subsubsection}{\numberline {7.3.1}Twitter and Twitter API}{17}{subsubsection.7.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Tweepy Python Package}{18}{section*.18} \contentsline {subsubsection}{\numberline {7.3.2}Tweepy Python Package}{18}{subsubsection.7.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Sentiment Analysis}{19}{section*.19} \contentsline {subsection}{\numberline {7.4}Sentiment Analysis}{19}{subsection.7.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Natural Language Processing}{19}{section*.20} \contentsline {subsubsection}{\numberline {7.4.1}Natural Language Processing}{19}{subsubsection.7.4.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{20}{section*.21} \contentsline {subsubsection}{\numberline {7.4.2}Valence Aware Dictionary and sEntiment Reasoning}{20}{subsubsection.7.4.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Neural Networks}{21}{section*.22} \contentsline {subsection}{\numberline {7.5}Neural Networks}{21}{subsection.7.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{22}{section*.23} \contentsline {subsubsection}{\numberline {7.5.1}Recurrent Neural Network (RNN)}{22}{subsubsection.7.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{23}{section*.24} \contentsline {subsubsection}{\numberline {7.5.2}Long-Short Term Memory (LSTM)}{23}{subsubsection.7.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Keras and TensorFlow}{24}{section*.25} \contentsline {subsubsection}{\numberline {7.5.3}Keras and TensorFlow}{24}{subsubsection.7.5.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Optimisers}{25}{section*.26} \contentsline {subsubsection}{\numberline {7.5.4}Optimisers}{25}{subsubsection.7.5.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Machine Learning}{27}{section*.27} \contentsline {subsection}{\numberline {7.6}Machine Learning}{27}{subsection.7.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Naive Bayes}{27}{section*.28} \contentsline {subsubsection}{\numberline {7.6.1}Naive Bayes}{27}{subsubsection.7.6.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Bag Of Words}{28}{section*.29} \contentsline {subsection}{\numberline {7.7}Bag Of Words}{28}{subsection.7.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{TF-IDF}{28}{section*.30} \contentsline {subsection}{\numberline {7.8}TF-IDF}{28}{subsection.7.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Addictive Smoothing}{29}{section*.31} \contentsline {subsection}{\numberline {7.9}Addictive Smoothing}{29}{subsection.7.9}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Solution Approach}{30}{section*.32} \contentsline {section}{\numberline {8}Solution Approach}{30}{section.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data gathering}{30}{section*.33} \contentsline {subsection}{\numberline {8.1}Data gathering}{30}{subsection.8.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data pre-processing}{31}{section*.34} \contentsline {subsection}{\numberline {8.2}Data pre-processing}{31}{subsection.8.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Spam Filtering}{31}{section*.35} \contentsline {subsection}{\numberline {8.3}Spam Filtering}{31}{subsection.8.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Language Detection}{32}{section*.36} \contentsline {subsection}{\numberline {8.4}Language Detection}{32}{subsection.8.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Sentiment Analysis}{32}{section*.37} \contentsline {subsection}{\numberline {8.5}Sentiment Analysis}{32}{subsection.8.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Neural Network}{33}{section*.38} \contentsline {subsection}{\numberline {8.6}Neural Network}{33}{subsection.8.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Price Forecasting}{35}{section*.40} \contentsline {subsection}{\numberline {8.7}Price Forecasting}{35}{subsection.8.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Frontend Application}{35}{section*.41} \contentsline {subsection}{\numberline {8.8}Frontend Application}{35}{subsection.8.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{With reference to Initial PID}{35}{section*.42} \contentsline {subsection}{\numberline {8.9}With reference to Initial PID}{35}{subsection.8.9}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Solution Summary}{36}{section*.43} \contentsline {subsection}{\numberline {8.10}Solution Summary}{36}{subsection.8.10}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data flow Overview}{37}{section*.44} \contentsline {subsection}{\numberline {8.11}Data flow Overview}{37}{subsection.8.11}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{System Design}{38}{section*.45} \contentsline {section}{\numberline {9}System Design}{38}{section.9}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Dataflow Designs}{38}{section*.46} \contentsline {subsection}{\numberline {9.1}Dataflow Designs}{38}{subsection.9.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Interface Design}{45}{section*.47} \contentsline {subsection}{\numberline {9.2}Interface Design}{45}{subsection.9.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Implementation}{46}{section*.49} \contentsline {section}{\numberline {10}Implementation}{46}{section.10}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data collection}{46}{section*.50} \contentsline {subsection}{\numberline {10.1}Data collection}{46}{subsection.10.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Price Time-Series Historical Data}{46}{section*.51} \contentsline {subsubsection}{\numberline {10.1.1}Price Time-Series Historical Data}{46}{subsubsection.10.1.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Price Time-Series Live Data}{47}{section*.52} \contentsline {subsubsection}{\numberline {10.1.2}Price Time-Series Live Data}{47}{subsubsection.10.1.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Historical Tweet Collection}{49}{section*.53} \contentsline {subsubsection}{\numberline {10.1.3}Historical Tweet Collection}{49}{subsubsection.10.1.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Live Tweet Collection}{51}{section*.54} \contentsline {subsubsection}{\numberline {10.1.4}Live Tweet Collection}{51}{subsubsection.10.1.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Data pre-processing}{56}{section*.55} \contentsline {subsection}{\numberline {10.2}Data pre-processing}{56}{subsection.10.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Spam Filtering}{60}{section*.56} \contentsline {subsubsection}{\numberline {10.2.1}Tweet Filtering}{56}{subsubsection.10.2.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Sentiment Analysis}{66}{section*.57} \contentsline {subsubsection}{\numberline {10.2.2}Language detection filtering}{57}{subsubsection.10.2.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{VADER}{66}{section*.58} \contentsline {subsubsection}{\numberline {10.2.3}Spam filter - Tokenisation, Ngrams, Stopword removal and Stemming}{59}{subsubsection.10.2.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Recurrent Neural Network - LSTM}{66}{section*.59} \contentsline {subsection}{\numberline {10.3}Spam Filtering}{60}{subsection.10.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Training and Testing Model}{66}{section*.60} \contentsline {subsubsection}{\numberline {10.3.1}Naive Bayes model}{63}{subsubsection.10.3.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsubsection}{Scoring and Validation}{66}{section*.61} \contentsline {subsubsection}{\numberline {10.3.2}Classification}{65}{subsubsection.10.3.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Future Prediction Forecasting}{66}{section*.62} \contentsline {subsubsection}{\numberline {10.3.3}Predict}{66}{subsubsection.10.3.3}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Main File 'Main.py'}{66}{section*.63} \contentsline {subsubsection}{\numberline {10.3.4}Metrics}{66}{subsubsection.10.3.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Miscellaneous}{66}{section*.64} \contentsline {subsection}{\numberline {10.4}Sentiment Analysis}{68}{subsection.10.4}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Testing Metrics and Accuracy}{67}{section*.65} \contentsline {subsection}{\numberline {10.5}Recurrent Neural Network - LSTM}{69}{subsection.10.5}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Project Evaluation}{68}{section*.66} \contentsline {subsubsection}{\numberline {10.5.1}Training and Testing Model}{69}{subsubsection.10.5.1}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Discussion: Contribution and Reflection}{68}{section*.67} \contentsline {subsubsection}{\numberline {10.5.2}Scoring and Validation}{69}{subsubsection.10.5.2}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Limitations}{68}{section*.68} \contentsline {subsection}{\numberline {10.6}Future Prediction Forecasting}{69}{subsection.10.6}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Conclusion and Future Improvements}{69}{section*.69} \contentsline {subsection}{\numberline {10.7}Main File 'Main.py'}{69}{subsection.10.7}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Conclusion}{69}{section*.70} \contentsline {subsection}{\numberline {10.8}Miscellaneous}{69}{subsection.10.8}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Future Improvements}{69}{section*.71} \contentsline {section}{\numberline {11}Testing Metrics and Accuracy}{72}{section.11}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {section}{Appendices}{74}{section*.73} \contentsline {section}{\numberline {12}Project Evaluation}{73}{section.12}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Appendix A - Project Initiation Document}{74}{section*.74} \contentsline {section}{\numberline {13}Discussion: Contribution and Reflection}{73}{section.13}
\defcounter {refsection}{0}\relax \defcounter {refsection}{0}\relax
\contentsline {subsection}{Appendix B - Log book}{87}{section*.75} \contentsline {subsection}{\numberline {13.1}Limitations}{73}{subsection.13.1}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {14}Conclusion and Future Improvements}{74}{section.14}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {14.1}Conclusion}{74}{subsection.14.1}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {14.2}Future Improvements}{74}{subsection.14.2}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {15}Appendices}{79}{section.15}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {15.1}Appendix A - Project Initiation Document}{79}{subsection.15.1}
\defcounter {refsection}{0}\relax
\contentsline {subsection}{\numberline {15.2}Appendix B - Log book}{92}{subsection.15.2}