2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

Einleitung und Überblick über den Algorithmus überarbeitet

This commit is contained in:
Martin Thoma 2013-12-28 18:52:58 +01:00
parent 29ec32d664
commit 5496a1f553
10 changed files with 173 additions and 50 deletions

View file

@ -1,29 +1,75 @@
\subsection{Überblick}
DYCOS (\underline{DY}namic \underline{C}lassification
algorithm with c\underline{O}ntent and \underline{S}tructure) ist ein
Knotenklassifizierungsalgorithmus, der Ursprünglich in \cite{aggarwal2011} vorgestellt
wurde.
wurde. Er klassifiziert Knoten, indem mehrfach Random Walks startend
bei dem zu klassifizierenden Knoten gemacht werden und die Labels
der besuchten Knoten gezählt werden. Der DYCOS-Algorithmus nimmt
jedoch nicht einfach den Graphen für dieses Verfahren, sondern
eine Erweiterung.
Sie im Folgenden die Notation wie in Definition~\ref{def:Knotenklassifizierungsproblem}.
Für diese Erweiterung wird zuerst wird Vokabular $W_t$ bestimmt, das
charakteristisch für eine Knotengruppe ist. Wie das gemacht werden kann, wird in
Abschnitt~\ref{sec:vokabularbestimmung} erläutert. Dann wird für
jedes Wort im Vokabular ein Wortknoten zum Graphen hinzugefügt.
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 Texte als eine Menge von Wörter,
die Reihenfolge der Wörter im Text spielt also keine Rolle. Außerdem
werden nicht alle Wörter benutzt, sondern nur solche die auch in
einem festgelegtem Vokabular vorkommen. Wie dieses Vokabular bestimmt
werden kann, wird in Abschnitt~\ref{sec:vokabularbestimmung} erklärt.
\begin{figure}[htp]
\centering
\input{figures/graph-content-and-structure.tex}
\caption{Erweiterter Graph}
\label{fig:erweiterter-graph}
\end{figure}
Zusätzlich zu dem Netzwerk verwalltet der DYCOS-Algorithmus für jeden
Knoten eine Liste von Wörtern. Diese Wörter stammen aus den Texten,
die dem Knoten zugeordnet sind.
Der DYCOS-Algorithmus betrachtet die Texte, die zu einem Knoten
zugeornet 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 jedes Wortes berücksichtigt.
Für jedes Wort des Vokabulars wird eine Liste von Knoten verwaltet,
in deren Texten das Wort vorkommt.
\subsection{Datenstrukturen}
Zusätzlich zu dem gerichteten Graphen $G_t = (V_t, E_t, V_{L,t})$
verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen:
\begin{itemize}
\item Für jeden Knoten $v \in V_t$ werden die vorkommenden Wörter
und deren Anzahl gespeichert. Das könnte z.~B. über ein
assoziatives Array geschehen. Wörter, die nicht in
Texten von $v$ vorkommen, sind nicht im Array. Für
alle vorkommenden Wörter ist der gespeicherte Wert zum
Schlüssel \enquote{Wort} die Anzahl der Vorkommen von
\enquote{Wort} in den Texten von $v$.
\item Für jedes Wort des Vokabulars $W_t$ wird eine Liste von
Knoten verwaltet, in deren Texten das Wort vorkommt.
\end{itemize}
Ein $l$-Sprung ist ein ein Random Walk, bei dem $l$
Knoten besucht werden, die nicht verschieden sein müssen. Ein
$l$-Sprung heißt strukturell, wenn er ausschließlich die Kanten
des Netzwerks für jeden der $l$ Schritte benutzt.
\subsection{Algorithmen}
Bevor der Algorithmus formal beschrieben wird, wird eine Definition
des strukturellen $l$-Sprungs benötigt:
\begin{definition}
Sei $G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_{t})$ der
um die Wortknoten $W_{t}$ erweiterte Graph.
Ein $l$-Sprung heißt inhaltlich, wenn er die Wörter benutzt.
Dann heißt ein Random Walk der Länge $l$ in diesem Graphen
ein \textbf{struktureller $l$-Sprung}, wenn für den Random Walk
nur Kanten aus $E_{S,t}$ benutzt werden.
\end{definition}
Der strukturelle $l$-Sprung ist also ein Random Walk der Länge $l$
im Graph $G_t$. Im Gegensatz dazu benötigt der inhaltliche $l$-Multisprung
tatsächlich die Grapherweiterung:
\begin{definition}
Sei $G_t = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_{t})$ der
um die Wortknoten $W_{t}$ erweiterte Graph.
Dann heißt ein Random Walk der Länge $l$ in diesem Graphen
ein \textbf{inhaltlicher $l$-Multisprung}, wenn für den Random Walk
in jedem der $l$ Schritte, startend von einem Knoten $v \in V_t$
eine Kante zu einem Wortknoten und von dem Wortknoten wieder
zu einem Strukturknoten genommen wird.
\end{definition}
\begin{algorithm}[H]
\begin{algorithmic}