mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-19 11:38:05 +02:00
Fix typos, formatting
This commit is contained in:
parent
f02d9ab873
commit
7e05f83a95
12 changed files with 46 additions and 65 deletions
|
@ -10,10 +10,10 @@ und des CORA-Datensatzes\footnote{http://people.cs.umass.edu/~mccallum/data/cora
|
|||
gezeigt (vgl. \cref{tab:datasets}), dass die Klassifikationsgüte nicht wesentlich von der Anzahl der Wörter mit
|
||||
höchstem Gini-Koeffizient $m$ abhängt. Des Weiteren betrug die Ausführungszeit
|
||||
auf einem Kern eines Intel Xeon $\SI{2.5}{\GHz}$ Servers mit
|
||||
$\SI{32}{\giga\byte}$ RAM für den DBLP-Datensatz unter $\SI{25}{\second}$,
|
||||
$\SI{32}{\giga\byte}$~RAM für den DBLP-Datensatz unter $\SI{25}{\second}$,
|
||||
für den CORA-Datensatz sogar unter $\SI{5}{\second}$. Dabei wurde eine
|
||||
für CORA eine Klassifikationsgüte von 82\% - 84\% und auf den DBLP-Daten
|
||||
von 61\% - 66\% erreicht.
|
||||
für CORA eine Klassifikationsgüte von \SIrange{82}{84}{\percent} und
|
||||
auf den DBLP-Daten von \SIrange{61}{66}{\percent} erreicht.
|
||||
|
||||
\begin{table}[htp]
|
||||
\centering
|
||||
|
@ -22,7 +22,7 @@ von 61\% - 66\% erreicht.
|
|||
\textbf{CORA} & \num{19396} & \num{14814} & \num{75021} & 5 \\
|
||||
\textbf{DBLP} & \num{806635} & \num{18999 } & \num{4414135} & 5 \\\hline
|
||||
\end{tabular}
|
||||
\caption{Datensätze, die für die experimentelle analyse benutzt wurden}
|
||||
\caption{Datensätze, die für die experimentelle Analyse benutzt wurden}
|
||||
\label{tab:datasets}
|
||||
\end{table}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -30,6 +30,7 @@
|
|||
\allowdisplaybreaks
|
||||
\usetikzlibrary{backgrounds}
|
||||
\usepackage[binary-units=true]{siunitx}
|
||||
\sisetup{range-phrase=--}
|
||||
\usepackage{mystyle}
|
||||
\usepackage{microtype}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ 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 Reihenfolge von Wortern
|
||||
diese noch sehr einfach gestrickt und ignoriert die Reihenfolge von Wörtern
|
||||
beziehungsweise Wertungen davon. So könnte man den DYCOS-Algorithmus in einem
|
||||
sozialem Netzwerk verwenden wollen, in dem politische Parteiaffinität von
|
||||
einigen Mitgliedern angegeben wird um die Parteiaffinität der restlichen
|
||||
|
|
|
@ -134,7 +134,7 @@ einer Wahrscheinlichkeit von $p_S$ ein struktureller Sprung durchgeführt wird.
|
|||
\State $M_H \gets \Call{max}{d}$
|
||||
\EndIf
|
||||
\\
|
||||
\State \textit{//Wähle aus der Menge der häufigsten Beschriftungen $M_H$ zufällig eine aus}
|
||||
\State \Comment{Wähle aus der Menge der häufigsten Beschriftungen $M_H$ zufällig eine aus}
|
||||
\State $label \gets \Call{Random}{M_H}$
|
||||
\State $v.\Call{AddLabel}{label}$ \Comment{und weise dieses $v$ zu}
|
||||
\EndFor
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Im Folgenden werden in \cref{sec:Motivation} einge Beispiele, in denen
|
||||
der DYCOS-Algorithmus anwendung finden könnte, dargelegt. In
|
||||
Im Folgenden werden in \cref{sec:Motivation} einige Beispiele, in denen
|
||||
der DYCOS-Algorithmus Anwendung finden könnte, dargelegt. In
|
||||
\cref{sec:Problemstellung} wird die Problemstellung formal definiert
|
||||
und in \cref{sec:Herausforderungen} wird auf besondere Herausforderungen der
|
||||
Aufgabenstellung hingewiesen.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%!TEX root = Ausarbeitung-Thoma.tex
|
||||
Sowohl das Problem der Knotenklassifikation, als auch das der
|
||||
Textklassifikation, wurde bereits in verschiedenen Kontexten. Jedoch scheien
|
||||
Textklassifikation, wurde bereits in verschiedenen Kontexten. Jedoch scheinen
|
||||
bisher entweder nur die Struktur des zugrundeliegenden Graphen oder nur
|
||||
Eigenschaften der Texte verwendet worden zu sein.
|
||||
|
||||
|
@ -16,14 +16,15 @@ Spezialfall der Textklassifikation mit einem zugrundeliegenden Graphen ein.
|
|||
Die vorgestellten Methoden zur Textklassifikation variieren außerdem sehr
|
||||
stark. Es gibt Verfahren, die auf dem bag-of-words-Modell basieren
|
||||
\cite{Ko:2012:STW:2348283.2348453} wie es auch im DYCOS-Algorithmus verwendet
|
||||
wird. Aber es gibt auch Verfahren, die auf dem Expectation-Maximization-
|
||||
Algorithmus basieren \cite{Nigam99textclassification} oder Support Vector
|
||||
wird. Aber es gibt auch Verfahren, die auf dem
|
||||
Expectation-Maximization-Algorithmus basieren \cite{Nigam99textclassification}
|
||||
oder Support Vector
|
||||
Machines nutzen \cite{Joachims98textcategorization}.
|
||||
|
||||
Es wäre also gut Vorstellbar, die Art und Weise wie die Texte in die
|
||||
Klassifikation des DYCOS-Algorithmus einfließen zu variieren. Allerdings ist
|
||||
dabei darauf hinzuweisen, dass die im Folgeden vorgestellte Verwendung der
|
||||
dabei darauf hinzuweisen, dass die im Folgenden vorgestellte Verwendung der
|
||||
Texte sowohl einfach zu implementieren ist und nur lineare Vorverarbeitungszeit
|
||||
in Anzahl der Wörter des Textes hat, als auch es erlaubt einzelne Knoten zu
|
||||
klassifizieren, wobei der Graph nur lokal um den zu klassifizerenden Knoten
|
||||
klassifizieren, wobei der Graph nur lokal um den zu klassifizierenden Knoten
|
||||
betrachten werden muss.
|
||||
|
|
|
@ -35,7 +35,7 @@ sowie die Kante $(v_2, v_1)$ hinzu.\\
|
|||
Nun wird der DYCOS-Algorithmus auf diesen Knoten angewendet und $v_2$ mit $A$
|
||||
beschriftet.\\
|
||||
Zum Zeitpunkt $t=3$ komme ein Knoten $v_3$, der mit $B$ beschriftet ist, und
|
||||
die Kante $(v_2, v_3)$ hinzu.
|
||||
die Kante $(v_2, v_3)$ hinzu. \Cref{fig:Formen} visualisiert diesen Vorgang.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
|
@ -56,16 +56,16 @@ die Kante $(v_2, v_3)$ hinzu.
|
|||
\input{figures/graph-t4.tex}
|
||||
\label{fig:graph-t4}
|
||||
}%
|
||||
\label{Formen}
|
||||
\caption{Minimalbeispiel für den Einfluss früherer DYCOS-Anwendungen}
|
||||
\label{fig:Formen}
|
||||
\end{figure}
|
||||
|
||||
Würde man nun den DYCOS-Algorithmus erst jetzt, also anstelle von Zeitpunkt
|
||||
$t=2$ zum Zeitpunkt $t=3$ auf den Knoten $v_2$ anwenden, so würde eine
|
||||
$50\%$-Wahrscheinlichkeit bestehen, dass dieser mit $B$ beschriftet wird. Aber
|
||||
in diesem Beispiel wurde der Knoten schon zum Zeitpunkt $t=2$ beschriftet.
|
||||
Obwohl es in diesem kleinem Beispiel noch keine Rolle spielt, wird das Problem
|
||||
klar, wenn man weitere Knoten einfügt:
|
||||
\SI{50}{\percent}-Wahrscheinlichkeit bestehen, dass dieser mit $B$ beschriftet
|
||||
wird. Aber in diesem Beispiel wurde der Knoten schon zum Zeitpunkt $t=2$
|
||||
beschriftet. Obwohl es in diesem kleinem Beispiel noch keine Rolle spielt, wird
|
||||
das Problem klar, wenn man weitere Knoten einfügt:
|
||||
|
||||
Wird zum Zeitpunkt $t=4$ ein unbeschrifteter Knoten $v_4$ und die Kanten
|
||||
$(v_1, v_4)$, $(v_2, v_4)$, $(v_3, v_4)$ hinzugefügt, so ist die
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
\subsection{Sprungtypen}\label{sec:sprungtypen}
|
||||
Die beiden bereits definierten Sprungtypen, der strukturelle Sprung sowie der
|
||||
inhaltliche Zweifachsprung werden im folgenden erklärt.
|
||||
inhaltliche Zweifachsprung werden im Folgenden erklärt.
|
||||
\goodbreak
|
||||
Der strukturelle Sprung entspricht einer zufälligen Wahl eines Nachbarknotens,
|
||||
wie es in \cref{alg:DYCOS-structural-hop} gezeigt wird.
|
||||
|
@ -20,27 +20,28 @@ wie es in \cref{alg:DYCOS-structural-hop} gezeigt wird.
|
|||
Bei inhaltlichen Zweifachsprüngen ist jedoch nicht sinnvoll so strikt 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 strukturellem Knoten $v' \in V_t$. Würde man dies
|
||||
machen, wäre zu befürchten, dass aufgrund von Homonymen die Qualität der
|
||||
wieder zu einem verbundenem strukturellem Knoten $v' \in V_t$. Würde dies
|
||||
gemacht werden, 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. Gemeint sein können z.~B. das Bauwerk, das Entwurfsmuster der
|
||||
objektorientierten Programmierung oder ein Teil des Gehirns.
|
||||
|
||||
Deshalb wird für jeden Knoten $v$, von dem aus man einen inhaltlichen
|
||||
Zweifachsprung machen will folgende Textanalyse durchgeführt:
|
||||
Deshalb wird für jeden Knoten $v$, von dem aus ein inhaltlicher
|
||||
Zweifachsprung gemacht werden soll folgende Textanalyse durchgeführt:
|
||||
\begin{enumerate}[label=C\arabic*,ref=C\arabic*]
|
||||
\item \label{step:c1} Gehe alle in $v$ startenden Random Walks der Länge $2$ durch
|
||||
und erstelle eine Liste $L$ der erreichbaren Knoten $v'$. Speichere
|
||||
außerdem, durch wie viele Pfade diese Knoten $v'$ jeweils erreichbar
|
||||
sind.
|
||||
\item \label{step:c2} Betrachte im folgenden nur die Top-$q$ Knoten bzgl. der
|
||||
Anzahl der Pfade von $v$ nach $v'$, wobei $q \in \mathbb{N}$
|
||||
\item \label{step:c2} Betrachte im Folgenden nur die Top-$q$ Knoten bzgl.
|
||||
der Anzahl der Pfade von $v$ nach $v'$, wobei $q \in \mathbb{N}$
|
||||
eine zu wählende Konstante des DYCOS-Algorithmus ist.\footnote{Sowohl für den DBLP, als auch für den
|
||||
CORA-Datensatz wurde in \cite[S. 364]{aggarwal2011} $q=10$ gewählt.}
|
||||
Diese Knotenmenge heiße im Folgenden $T(v)$ und $p(v, v')$ sei die
|
||||
Anzahl der Pfade von $v$ über einen Wortknoten nach $v'$.
|
||||
\item \label{step:c3} Wähle mit Wahrscheinlichkeit $\frac{p(v, v')}{\sum_{w \in T(v)} p(v, w)}$
|
||||
den Knoten $v' \in T(v)$ als Ziel des Zweifachsprungs.
|
||||
\item \label{step:c3} Wähle mit Wahrscheinlichkeit
|
||||
$\frac{p(v, v')}{\sum_{w \in T(v)} p(v, w)}$ den Knoten $v' \in T(v)$
|
||||
als Ziel des Zweifachsprungs.
|
||||
\end{enumerate}
|
||||
|
||||
Konkret könnte also ein inhaltlicher Zweifachsprung sowie wie in
|
||||
|
|
|
@ -4,9 +4,9 @@ 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 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}
|
||||
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 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-
|
||||
|
@ -34,7 +34,7 @@ eine Teilmenge $S_t \subseteq V_{L,t}$ zum Generieren des Vokabulars gewählt.
|
|||
In \cref{alg4:l8} wird ein Array $cLabelWords$ erstellt, das $(|\L_t|+1)$
|
||||
Felder hat. Die Elemente dieser Felder sind jeweils assoziative Arrays, deren
|
||||
Schlüssel Wörter und deren Werte natürliche Zahlen sind. Die ersten $|\L_t|$
|
||||
Elemente von $cLabelWords$ dienem dem Zählen der Häufigkeit der Wörter von
|
||||
Elemente von $cLabelWords$ dienen dem Zählen der Häufigkeit der Wörter von
|
||||
Texten aus $S_t$, wobei für jede Beschriftung die Häufigkeit einzeln gezählt
|
||||
wird. Das letzte Element aus $cLabelWords$ zählt die Summe der Wörter. Diese
|
||||
Datenstruktur wird in \cref{alg4:l10} bis \ref{alg4:l12} gefüllt.
|
||||
|
@ -53,15 +53,16 @@ Koeffizienten zurückgegeben.
|
|||
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
|
||||
$m$ (Gewünschte Vokabulargröße)
|
||||
\Ensure $\M_t$ (Vokabular)\\
|
||||
\State $S_t \gets \Call{Sample}{V_{L,t}}$\label{alg4:l6} \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus}
|
||||
\State $S_t \gets \Call{Sample}{V_{L,t}}$\label{alg4:l6} \Comment{Wähle $S_t \subseteq V_{L,t}$ aus}
|
||||
\State $\M_t \gets \emptyset$ \Comment{Menge aller Wörter}
|
||||
\State $cLabelWords \gets$ Array aus $(|\L_t|+1)$ assoziativen Arrays\label{alg4:l8}
|
||||
\ForAll{$v \in S_t$} \label{alg4:l10}\Comment{Gehe jeden Text Wort für Wort durch}
|
||||
\ForAll{$v \in S_t$} \label{alg4:l10}
|
||||
\State $i \gets \Call{getLabel}{v}$
|
||||
\ForAll{$(word, haeufigkeit) \in \Call{getTextAsMultiset}{v}$}
|
||||
\State $cLabelWords[i][word] \gets cLabelWords[i][word] + haeufigkeit$
|
||||
\State $cLabelWords[|\L_t|][word] \gets cLabelWords[i][|\L_t|] + haeufigkeit$
|
||||
\State $\M_t = \M_t \cup \Set{word}$
|
||||
\State \Comment{$w$ ist das Wort, $c$ ist die Häufigkeit}
|
||||
\ForAll{$(w, c) \in \Call{getTextAsMultiset}{v}$}
|
||||
\State $cLabelWords[i][w] \gets cLabelWords[i][w] + c$
|
||||
\State $cLabelWords[|\L_t|][w] \gets cLabelWords[i][|\L_t|] + c$
|
||||
\State $\M_t = \M_t \cup \Set{w}$
|
||||
\EndFor
|
||||
\EndFor\label{alg4:l12}
|
||||
\\
|
||||
|
|
|
@ -5,10 +5,10 @@ die bisher noch keine Beschriftung haben. Dieser Vorgang wird
|
|||
\enquote{Klassifizierung} genannt. Dazu verwendet er die Struktur des Graphen
|
||||
sowie textuelle Informationen, die den Knoten zugeordnet sind. Die in
|
||||
\cite{aggarwal2011} beschriebene experimentelle Analyse ergab, dass er auch auf
|
||||
dynamischen Graphen mit $\num{19396}$ bzw. $\num{806635}$ Knoten, von denen nur
|
||||
$\num{14814}$ bzw. $\num{18999}$ beschriftet waren, innerhalb von weniger als
|
||||
einer Minute auf einem Kern einer Intel Xeon 2.5GHz CPU mit 32G RAM ausgeführt
|
||||
werden kann.\\
|
||||
dynamischen Graphen mit 19\,396 bzw. 806\,635 Knoten, von denen nur
|
||||
14\,814 bzw. 18\,999 beschriftet waren, innerhalb von weniger als
|
||||
einer Minute auf einem Kern einer Intel Xeon 2.5\,GHz~CPU mit 32\,G~RAM
|
||||
ausgeführt werden kann.\\
|
||||
Zusätzlich wird \cite{aggarwal2011} kritisch Erörtert und und es werden
|
||||
mögliche Erweiterungen des DYCOS-Algorithmus vorgeschlagen.
|
||||
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
\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}
|
Loading…
Add table
Add a link
Reference in a new issue