diff --git a/documents/DYCOS/Abgrenzung.tex b/documents/DYCOS/Abgrenzung.tex deleted file mode 100644 index 36986c6..0000000 --- a/documents/DYCOS/Abgrenzung.tex +++ /dev/null @@ -1,11 +0,0 @@ -Der in dieser Ausarbeitung vorgestellte DYCOS-Algorithmus wurde 2011 von -Charu~C. Aggarwal und Nan~Li in \cite{aggarwal2011} vorgestellt. -Es gibt jedoch viele Klassifizierungsalgorithmen, die ähnliche Ideen -nutzen. Einige dieser Algorithmen werden im Folgenden kurz vorgestellt -und Probleme, die der DYCOS-Algorithmus behebt, erläutert. - -\cite{DBLP:conf/kdd/BhagatCR07} nutzt nur die Struktur des Graphen -zur Klassifizierung. - -Der MUCCA-Algorithmus aus \cite{zappella} sei der erste. Dieser -arbeitet auf gewichteten Graphen, im Gegensatz zu DYCOS. diff --git a/documents/DYCOS/Ausblick.tex b/documents/DYCOS/Ausblick.tex index 1f023af..45aa18d 100644 --- a/documents/DYCOS/Ausblick.tex +++ b/documents/DYCOS/Ausblick.tex @@ -23,4 +23,4 @@ DYCOS beschränkt sich bei inhaltlichen Mehrfachsprüngen auf die Top-$q$-Wortknoten, also die $q$ ähnlichsten Knoten gemessen mit der Aggregatanalyse, allerdings wurde bisher noch nicht untersucht, wie der Einfluss von $q \in \mathbb{N}$ auf die -Klassifkationsgüte ist. +Klassifikationsgüte ist. diff --git a/documents/DYCOS/DYCOS-Algorithmus.tex b/documents/DYCOS/DYCOS-Algorithmus.tex index 4ca83d3..dd190b9 100644 --- a/documents/DYCOS/DYCOS-Algorithmus.tex +++ b/documents/DYCOS/DYCOS-Algorithmus.tex @@ -22,7 +22,7 @@ genannt. Ein Strukturknoten $v$ wird genau dann mit einem Wortknoten $w \in W_t$ verbunden, wenn $w$ in einem Text von $v$ vorkommt. Der DYCOS-Algorithmus betrachtet also die Texte, die einem Knoten -zugeornet sind, als eine Multimenge von Wörtern. Das heißt, zum einen +zugeordnet sind, als eine Multimenge von Wörtern. Das heißt, zum einen wird nicht auf die Reihenfolge der Wörter geachtet, zum anderen wird bei Texten eines Knotens nicht zwischen verschiedenen Texten unterschieden. Jedoch wird die Anzahl der Vorkommen @@ -64,9 +64,9 @@ springt über einen Wortknoten und ist ein Pfad der Länge~2. Ob in einem Sprung der Random Walks ein struktureller Sprung oder ein inhaltlicher Mehrfachsprung gemacht wird, wird jedes mal zufällig -neu entschiden. Dafür wird der Parameter $0 \leq p_S \leq 1$ für den Algorithmus +neu entschieden. Dafür wird der Parameter $0 \leq p_S \leq 1$ für den Algorithmus gewählt. Mit einer Wahrscheinlichkeit von $p_S$ wird eine struktureller -Sprung durchgefürt und mit einer Wahrscheinlichkeit +Sprung durchgeführt und mit einer Wahrscheinlichkeit von $(1-p_S)$ ein modifizierter inhaltlicher Mehrfachsprung, wie er in \cref{sec:sprungtypen} erklärt wird, gemacht. Dieser Parameter gibt an, wie wichtig die Struktur des Graphen im Verhältnis @@ -137,7 +137,7 @@ verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen: \item Für jedes Wort des Vokabulars $W_t$ wird eine Liste von Knoten verwaltet, in deren Texten das Wort vorkommt. \item An einigen Stellen macht ein assoziatives Array, auch - \enquote{dictionary} oder \enquote{map} genannt, sinn. + \enquote{dictionary} oder \enquote{map} genannt, Sinn. Zustätzlich ist es nützlich, wenn diese Datenstruktur für unbekannte Schlüssel keinen Fehler ausgibt, sondern für diese Schlüssel den Wert 0 annimmt. Eine solche Datenstruktur diff --git a/documents/DYCOS/DYCOS.pdf b/documents/DYCOS/DYCOS.pdf index 6854e0c..f6a0662 100644 Binary files a/documents/DYCOS/DYCOS.pdf and b/documents/DYCOS/DYCOS.pdf differ diff --git a/documents/DYCOS/Einleitung.tex b/documents/DYCOS/Einleitung.tex index 4bb61fc..5ee868e 100644 --- a/documents/DYCOS/Einleitung.tex +++ b/documents/DYCOS/Einleitung.tex @@ -9,7 +9,7 @@ Häufig sind Labels nur teilweise vorhanden und es ist wünschenswert die fehlenden Labels zu ergänzen. \subsection{Problemstellung} -Gegeben ist ein Graph, der teilweise gelabelt ist. Zustäzlich stehen +Gegeben ist ein Graph, der teilweise gelabelt ist. Zusätzlich stehen zu einer Teilmenge der Knoten Texte bereit. Gesucht sind nun Labels für alle Knoten, die bisher noch nicht gelabelt sind.\\ diff --git a/documents/DYCOS/Experimentelle-Analyse.tex b/documents/DYCOS/Experimentelle-Analyse.tex deleted file mode 100644 index ebd82c4..0000000 --- a/documents/DYCOS/Experimentelle-Analyse.tex +++ /dev/null @@ -1,12 +0,0 @@ -\subsection{DBLP} -Im Folgenden wird die in \cite{aggarwal2011} durchgeführte -experimentelle Analyse des DYCOS-Algorithmus anhand des DBLP-Datensatzes -(\underline{d}ata\underline{b}ase systems and \underline{l}ogic \underline{p}rogramming) -der Universität Trier nachfolzogen. Dieser Datensatz beinhaltet -bibliographische Daten von Informatik-Publikationen. Der Datensatz -wird unter \href{http://dblp.uni-trier.de/xml/}{dblp.uni-trier.de/xml} -zur Verfügung gestellt. Die folgenden Informationen beziehen sich -auf den Datensatz vom 28.~Dezember~2013. - -http://dumps.wikimedia.org/enwiki/20131202/ -https://de.wikipedia.org/wiki/Hilfe:Download diff --git a/documents/DYCOS/Makefile b/documents/DYCOS/Makefile index f37e77b..a87b4d2 100644 --- a/documents/DYCOS/Makefile +++ b/documents/DYCOS/Makefile @@ -13,4 +13,4 @@ ebook: ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover clean: - rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg *.glg *.glo *.gls *.ist *.xdy *.bbl *.blg + rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg *.glg *.glo *.gls *.ist *.xdy *.bbl *.blg *.bak diff --git a/documents/DYCOS/SchwaechenVerbesserungen.tex b/documents/DYCOS/SchwaechenVerbesserungen.tex index 3d7d9d0..7ab7eab 100644 --- a/documents/DYCOS/SchwaechenVerbesserungen.tex +++ b/documents/DYCOS/SchwaechenVerbesserungen.tex @@ -14,7 +14,7 @@ wäre noch die Frage zu klären, mit wie vielen Labels der betrachtete Knoten gelabelt werden soll. Jedoch ist z.~B. bei Wikipedia-Artikeln auf den Knoten eine -Hirarchie definiert. So ist die Kategorie \enquote{Klassifikationsverfahren} +Hierarchie definiert. So ist die Kategorie \enquote{Klassifikationsverfahren} eine Unterkategorie von \enquote{Klassifikation}. Bei dem Kategorisieren von Artikeln sind möglichst spezifische Kategorien vorzuziehen, also kann man nicht einfach bei dem Auftreten der Kategorie \enquote{Klassifikationsverfahren} @@ -65,7 +65,7 @@ Zeitpunkt $t=2$ zum Zeitpunkt $t=3$ auf den Knoten $v_2$ anwenden, so würde eine $50\%$-Wahrscheinlichkeit bestehen, dass dieser mit $B$ gelabelt wird. Aber in diesem Beispiel wurde der Knoten schon zum Zeitpunkt $t=2$ gelabelt. Obwohl es in diesem kleinem Beispiel -noch keine Rolle spielt, wird das Problem klar, wennn man weitere +noch keine Rolle spielt, wird das Problem klar, wenn man weitere Knoten einfügt: Wird zum Zeitpunkt $t=4$ ein ungelabelter Knoten $v_4$ und die Kanten @@ -73,7 +73,7 @@ $(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 gelabelt, so ist die Wahrscheinlichkeit für $A$ als Label bei nur $50\%$. -Bei dem DYCOS-Algorithmus findet also eine Überanpassung and vergangene +Bei dem DYCOS-Algorithmus findet also eine Überanpassung an vergangene Labels statt. Das Reklassifizieren von Knoten könnte eine mögliche Lösung für dieses @@ -85,7 +85,7 @@ abgelaufen, wird der DYCOS-Algorithmus erneut auf den Knoten angewendet. 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 Ergebnise dieser Analyse können aus folgenden Gründen +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 @@ -104,5 +104,5 @@ nicht überprüft 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 Klassifkationsgüte gemessen. + und mit $\theta$ die Klassifikationsgüte gemessen. \end{itemize} diff --git a/documents/DYCOS/Sprungtypen.tex b/documents/DYCOS/Sprungtypen.tex index 323e9cb..107016c 100644 --- a/documents/DYCOS/Sprungtypen.tex +++ b/documents/DYCOS/Sprungtypen.tex @@ -22,7 +22,7 @@ Bei inhaltlichen Mehrfachsprüngen ist jedoch nicht sinnvoll so direkt nach der Definition vorzugehen, also direkt von einem strukturellem Knoten $v \in V_t$ zu einem mit $v$ verbundenen Wortknoten $w \in W_t$ zu springen -und von diesem wieder zu einem verbundenem strutkurellem Knoten +und von diesem wieder zu einem verbundenem strukturellem Knoten $v' \in V_t$. Würde man dies machen, wäre zu befürchten, dass aufgrund von Homonymen die Qualität der Klassifizierung verringert wird. So hat \enquote{Brücke} im Deutschen viele Bedeutungen. @@ -43,7 +43,7 @@ CORA-Datensatz wurde in \cite[S. 364]{aggarwal2011} $q=10$ gewählt.} \label{lis \end{enumerate} Konkret könnte also ein Inhaltlicher Mehrfachsprung sowie wie in -\cref{alg:DYCOS-content-multihop} beschrieben umgesetz werden. +\cref{alg:DYCOS-content-multihop} beschrieben umgesetzt werden. \begin{algorithm} \caption{Inhaltlicher Mehrfachsprung} @@ -64,7 +64,7 @@ Konkret könnte also ein Inhaltlicher Mehrfachsprung sowie wie in \State \textit{//Elemente aus $M_H$ zugreifen kann. Dies muss bei der konkreten Wahl} \State \textit{//der Datenstruktur berücksichtigt werden.} \State $M_H \gets \Call{max}{reachableNodes, q}$ \Comment{Also: $|M_H| = q$, falls $|reachableNodes|\geq q$} - \State \textit{//Generate dictionary with relative frequencies} + \State \textit{//Dictionary mit relativen Häufigkeiten erzeugen} \State $s \gets 0$ \ForAll{Knoten $x$ in $M_H$} \State $s \gets s + reachableNodes[x]$ diff --git a/documents/DYCOS/Vokabularbestimmung.tex b/documents/DYCOS/Vokabularbestimmung.tex index bff1516..b22f0a4 100644 --- a/documents/DYCOS/Vokabularbestimmung.tex +++ b/documents/DYCOS/Vokabularbestimmung.tex @@ -1,14 +1,14 @@ \subsection{Vokabularbestimmung}\label{sec:vokabularbestimmung} -Da die größe des Vokabulars die Datenmenge signifikant beeinflusst, +Da die Größe des Vokabulars die Datenmenge signifikant beeinflusst, liegt es in unserem Interesse so wenig Wörter wie möglich ins Vokabular aufzunehmen. Insbesondere sind Wörter nicht von Interesse, die in fast allen Texten vorkommen, wie im Deutschen z.~B. \enquote{und}, \enquote{mit} und die Pronomen. Es ist wünschenswert -Wörter zu wählen, die die Texte möglichst start voneinander Unterscheiden. +Wörter zu wählen, die die Texte möglichst stark voneinander Unterscheiden. Der DYCOS-Algorithmus wählt die Top-$m$ dieser Wörter als Vokabular, wobei $m \in \mathbb{N}$ eine Festzulegende Konstante ist. In \cite[S. 365]{aggarwal2011} wird der Einfluss von $m \in \Set{5,10, 15,20}$ auf die Klassifikationsgüte -untersucht und festegestellt, dass die Klassifikationsgüte mit größerem +untersucht und festgestellt, dass die Klassifikationsgüte mit größerem $m$ sinkt, sie also für $m=5$ für den DBLP-Datensatz am höchsten ist. Für den CORA-Datensatz wurde mit $m \in \set{3,4,5,6}$ getestet und kein signifikanter Unterschied festgestellt. @@ -17,7 +17,7 @@ Nun kann man manuell eine Liste von zu beachtenden Wörtern erstellen oder mit Hilfe des Gini-Koeffizienten automatisch ein Vokabular erstellen. Der Gini-Koeffizient ist ein statistisches Maß, das die Ungleichverteilung bewertet. Er ist immer im Intervall $[0,1]$, wobei $0$ einer -Gleichverteilung entspricht und $1$ der größt möglichen Ungleichverteilung. +Gleichverteilung entspricht und $1$ der größtmöglichen Ungleichverteilung. Sei nun $n_i(w)$ die Häufigkeit des Wortes $w$ in allen Texten mit dem $i$-ten Label. @@ -47,7 +47,7 @@ von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss. \State $S_t \gets \Call{Sample}{V_{L,t}}$ \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus} \State $\M_t \gets \bigcup_{v \in S_t} \Call{getTextAsSet}{v}$ \Comment{Menge aller Wörter} - \State $cLabelWords \gets (|\L_t|+1) \times |\M_t|$-Array, mit 0en initialisert\\ + \State $cLabelWords \gets (|\L_t|+1) \times |\M_t|$-Array, mit 0en initialisiert\\ \ForAll{$v \in V_{L,t}$} \Comment{Gehe jeden Text Wort für Wort durch} \State $i \gets \Call{getLabel}{v}$ @@ -73,5 +73,5 @@ von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss. \end{algorithm} Die Menge $S_t$ kann durch Aus der Menge aller Dokumenten, deren -Knoten gelabelt sind, mithile des in \cite{Vitter} vorgestellten +Knoten gelabelt sind, mithilfe des in \cite{Vitter} vorgestellten Algorithmus bestimmt werden.