diff --git a/documents/DYCOS/Ausblick.tex b/documents/DYCOS/Ausblick.tex index 45aa18d..887a57b 100644 --- a/documents/DYCOS/Ausblick.tex +++ b/documents/DYCOS/Ausblick.tex @@ -3,9 +3,9 @@ vielen Punkten verbessern. So könnte man vor der Auswahl des Vokabulars jedes Wort auf den Wortstamm zurückführen. Dafür könnte zum Beispiel der in \cite{porter} vorgestellte Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das -Vokabular kleiner gehalten, mehr Artikel können mit einander -durch Vokabular verbunden werden und der Gini-Koeffizient wird ein -besseres Maß für die Gleichheit von Texten. +Vokabular kleiner gehalten wodurch mehr Artikel mit einander +durch Vokabular verbunden werden können. Außerdem könnte so der +Gini-Koeffizient ein besseres Maß für die Gleichheit von Texten werden. Eine weitere Verbesserungsmöglichkeit besteht in der Textanalyse. Momentan ist diese noch sehr einfach gestrickt und ignoriert die diff --git a/documents/DYCOS/DYCOS.pdf b/documents/DYCOS/DYCOS.pdf index 0957d4a..134923a 100644 Binary files a/documents/DYCOS/DYCOS.pdf and b/documents/DYCOS/DYCOS.pdf differ diff --git a/documents/DYCOS/README.md b/documents/DYCOS/README.md index 1f94f70..8e53973 100644 --- a/documents/DYCOS/README.md +++ b/documents/DYCOS/README.md @@ -10,3 +10,6 @@ TODO * Abschnitt "Problemstellung" überarbeiten * Abbildung verlinken * Algorithmen erklären +* Warum sind Stellenangaben überflüssig? +* Map erklären +* Algorithmus 4, S. 9 diff --git a/documents/DYCOS/SchwaechenVerbesserungen.tex b/documents/DYCOS/SchwaechenVerbesserungen.tex index 7ab7eab..ed03fdb 100644 --- a/documents/DYCOS/SchwaechenVerbesserungen.tex +++ b/documents/DYCOS/SchwaechenVerbesserungen.tex @@ -2,10 +2,9 @@ Der in \cite{aggarwal2011} vorgestellte Algorithmus hat einige Probleme, die im Folgenden erläutert werden. Außerdem werden Verbesserungen vorgeschlagen, die es allerdings noch zu untersuchen gilt. -\subsection{Schwächen von DYCOS} -\subsubsection{Anzahl der Labels} +\subsection{Anzahl der Labels} So, wie der DYCOS-Algorithmus vorgestellt wurde, können nur Graphen bearbeitet werden, -deren Knoten höchstens ein Label haben. In vielen Fällen, wie z.~B. +deren Knoten jeweils höchstens ein Label haben. In vielen Fällen, wie z.~B. Wikipedia mit Kategorien als Labels haben Knoten jedoch viele Labels. Auf einen ersten Blick ist diese Schwäche einfach zu beheben, indem @@ -22,7 +21,7 @@ sowohl für diese Kategorie als auch für die Kategorie \enquote{Klassifikation} zählen. -\subsubsection{Überanpassung und Reklassifizierung} +\subsection{Überanpassung und Reklassifizierung} Aggarwal und Li beschreiben in \cite{aggarwal2011} nicht, auf welche Knoten der Klassifizierungsalgorithmus angewendet werden soll. Jedoch ist die Reihenfolge der Klassifizierung relevant. Dazu folgendes @@ -71,7 +70,7 @@ Knoten einfügt: Wird zum Zeitpunkt $t=4$ ein ungelabelter Knoten $v_4$ und die Kanten $(v_1, v_4)$, $(v_2, v_4)$, $(v_3, v_4)$ hinzugefügt, so ist die Wahrscheinlichkeit, dass $v_4$ mit $A$ gelabelt wird bei $\frac{2}{3}$. -Werden die als ungelabelten Knoten jedoch erst jetzt und alle gemeinsam +Werden die ungelabelten Knoten jedoch erst jetzt und alle gemeinsam gelabelt, so ist die Wahrscheinlichkeit für $A$ als Label bei nur $50\%$. Bei dem DYCOS-Algorithmus findet also eine Überanpassung an vergangene Labels statt. @@ -81,28 +80,4 @@ Problem sein. Knoten, die durch den DYCOS-Algorithmus gelabelt wurden könnten eine Lebenszeit bekommen (TTL, Time to Live). Ist diese abgelaufen, wird der DYCOS-Algorithmus erneut auf den Knoten angewendet. -\subsection{Schwächen des Papers} -In \cite{aggarwal2011} wurde eine experimentelle Analyse mithilfe -des DBLP-Datensatzes\footnote{http://dblp.uni-trier.de/} und des -CORA-Datensatzes\footnote{\href{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}} durchgeführt. -Die Ergebnisse dieser Analyse können aus folgenden Gründen -nicht überprüft werden: -\begin{itemize} - \item Der Parameter $a \in \mathbb{N}$, der die Anzahl der ausgehenden Kanten - aller Wortknoten beschränkt, wird erst mit der Experimentellen - Analyse auf S.~362 eingeführt. - Es ist nicht klar, wie entschieden wird welche Kanten - gespeichert werden und welche nicht. - \item Für die Analyse der CORA-Datensatzes analysiert. - Dieser beinhaltet Forschungsarbeiten, wobei die - Forschungsgebiete die in einen Baum mit 73 Blättern - eingeordnet wurden. Aus diesen 73 Blättern wurden 5 Klassen - extrahiert und der Graph, der keine Zeitpunkte beinhaltet, - künstlich in 10 Graphen mit Zeitpunkten unterteilt. Wie - jedoch diese Unterteilung genau durchgeführt wurde kann nicht - nachvollzogen werden. - \item Der auf S. 360 in \enquote{Algorithm 1} vorgestellte - Pseudocode soll den DYCOS-Algorithmus darstellen. Allerdings - werden die bereits klassifizierten Knoten $\T_t$ neu klassifiziert - und mit $\theta$ die Klassifikationsgüte gemessen. -\end{itemize} + diff --git a/documents/DYCOS/Sprungtypen.tex b/documents/DYCOS/Sprungtypen.tex index 7b526f9..3b556a9 100644 --- a/documents/DYCOS/Sprungtypen.tex +++ b/documents/DYCOS/Sprungtypen.tex @@ -54,14 +54,16 @@ die Anzahl der möglichen Zielknoten $v' \in V_T$ auf diejenigen $q$ Knoten, die $v$ bzgl. der Textanalyse am ähnlichsten sind. In \cref{alg:l2} bis \cref{alg:l5} wird \cref{step:c1} durchgeführt. + In \cref{alg:l6} wird \cref{step:c2} durchgeführt. Bei der -Wahl der Datenstruktur $M_H$ ist zu beachten, dass man in -\cref{alg:21} über Indizes auf Elemente aus $M_H$ zugreifen können muss. +Wahl der Datenstruktur von $T$ ist zu beachten, dass man in +\cref{alg:21} über Indizes auf Elemente aus $T$ zugreifen können muss. In \cref{alg:l8} bis \cref{alg:l13} wird ein Wörterbuch erstellt, das von $v' \in T(v)$ auf die relative Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet. +In allen folgenden Zeilen wird \cref{step:c3} durchgeführt. In \cref{alg:15} bis \cref{alg:22} wird ein Knoten $v' \in T(v)$ mit einer Wahrscheinlichkeit, die seiner relativen Häufigkeit am Anteil der Pfaden der Länge 2 von $v$ nach $v'$ über einen beliebigen @@ -78,14 +80,14 @@ Wortknoten entspricht ausgewählt und schließlich zurückgegeben. \State $reachableNodes[x] \gets reachableNodes[x] + 1$ \EndFor \EndFor\label{alg:l5} - \State \label{alg:l6} $M_H \gets \Call{max}{reachableNodes, q}$ \Comment{Also: $|M_H| = q$, falls $|reachableNodes|\geq q$} + \State \label{alg:l6} $T \gets \Call{max}{reachableNodes, q}$ \Comment{Also: $|T| = q$, falls $|reachableNodes|\geq q$} \\ \State \label{alg:l8} $s \gets 0$ - \ForAll{Knoten $x$ in $M_H$} + \ForAll{Knoten $x \in T$} \State $s \gets s + reachableNodes[x]$ \EndFor \State $relativeFrequency \gets $ Dictionary - \ForAll{Knoten $x$ in $M_H$} + \ForAll{Knoten $x \in T$} \State $relativeFrequency \gets \frac{reachableNodes[x]}{s}$ \EndFor\label{alg:l13} \\ @@ -97,7 +99,7 @@ Wortknoten entspricht ausgewählt und schließlich zurückgegeben. \State $i \gets i + 1$ \EndWhile - \State $v \gets M_H[i-1]$ \label{alg:21} + \State $v \gets T[i-1]$ \label{alg:21} \State \Return $v$ \label{alg:22} \EndProcedure \end{algorithmic} diff --git a/documents/DYCOS/Vokabularbestimmung.tex b/documents/DYCOS/Vokabularbestimmung.tex index b22f0a4..7fe7ace 100644 --- a/documents/DYCOS/Vokabularbestimmung.tex +++ b/documents/DYCOS/Vokabularbestimmung.tex @@ -62,7 +62,11 @@ von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss. \ForAll{Label $i \in \L_t$} \State $p[i] \gets \frac{cLabelWords[i][w]}{cLabelWords[i][|\L_t|]}$ \EndFor - \State $w$.gini $\gets$ \Call{sum}{{\sc map}({\sc square}, $p$)} + + \State $w$.gini $\gets 0$ + \ForAll{$i \in 1, \dots, |\L_t|$} + \State $w$.gini $\gets$ $w$.gini + $p[i]^2$ + \EndFor \EndFor \State $\M_t \gets \Call{SortDescendingByGini}{\M_t}$ @@ -72,6 +76,6 @@ von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss. \label{alg:vokabularbestimmung} \end{algorithm} -Die Menge $S_t$ kann durch Aus der Menge aller Dokumenten, deren -Knoten gelabelt sind, mithilfe des in \cite{Vitter} vorgestellten +Die Menge $S_t$ kann aus der Menge aller Dokumente, deren +Knoten beschriftet sind, mithilfe des in \cite{Vitter} vorgestellten Algorithmus bestimmt werden. diff --git a/documents/DYCOS/schwaechenPaper.tex b/documents/DYCOS/schwaechenPaper.tex new file mode 100644 index 0000000..32fa685 --- /dev/null +++ b/documents/DYCOS/schwaechenPaper.tex @@ -0,0 +1,25 @@ +\subsection{Schwächen des Papers} +In \cite{aggarwal2011} wurde eine experimentelle Analyse mithilfe +des DBLP-Datensatzes\footnote{http://dblp.uni-trier.de/} und des +CORA-Datensatzes\footnote{\href{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}{http://people.cs.umass.edu/~mccallum/data/cora-classify.tar.gz}} durchgeführt. +Die Ergebnisse dieser Analyse können aus folgenden Gründen +nicht überprüft werden: +\begin{itemize} + \item Der Parameter $a \in \mathbb{N}$, der die Anzahl der ausgehenden Kanten + aller Wortknoten beschränkt, wird erst mit der Experimentellen + Analyse auf S.~362 eingeführt. + Es ist nicht klar, wie entschieden wird welche Kanten + gespeichert werden und welche nicht. + \item Für die Analyse der CORA-Datensatzes analysiert. + Dieser beinhaltet Forschungsarbeiten, wobei die + Forschungsgebiete die in einen Baum mit 73 Blättern + eingeordnet wurden. Aus diesen 73 Blättern wurden 5 Klassen + extrahiert und der Graph, der keine Zeitpunkte beinhaltet, + künstlich in 10 Graphen mit Zeitpunkten unterteilt. Wie + jedoch diese Unterteilung genau durchgeführt wurde kann nicht + nachvollzogen werden. + \item Der auf S. 360 in \enquote{Algorithm 1} vorgestellte + Pseudocode soll den DYCOS-Algorithmus darstellen. Allerdings + werden die bereits klassifizierten Knoten $\T_t$ neu klassifiziert + und mit $\theta$ die Klassifikationsgüte gemessen. +\end{itemize}