mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-24 22:08:04 +02:00
Pseudocode beschrieben; viele kleine Verbesserungen
This commit is contained in:
parent
4924652496
commit
e171c0bb91
8 changed files with 45 additions and 37 deletions
|
@ -1,6 +1,6 @@
|
||||||
Den sehr einfach aufgebauten DYCOS-Algorithmus kann man noch an
|
Den DYCOS-Algorithmus kann in einigen Aspekten erweitert werden.
|
||||||
vielen Punkten verbessern. So könnte man vor der Auswahl des
|
So könnte man vor der Auswahl des Vokabulars jedes Wort auf den
|
||||||
Vokabulars jedes Wort auf den Wortstamm zurückführen.
|
Wortstamm zurückführen.
|
||||||
Dafür könnte zum Beispiel der in \cite{porter} vorgestellte
|
Dafür könnte zum Beispiel der in \cite{porter} vorgestellte
|
||||||
Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das
|
Porter-Stemming-Algorithmus verwendet werden. Durch diese Maßnahme wird das
|
||||||
Vokabular kleiner gehalten wodurch mehr Artikel mit einander
|
Vokabular kleiner gehalten wodurch mehr Artikel mit einander
|
||||||
|
|
|
@ -113,7 +113,7 @@ der Länge $l$ durchgeführt, wobei die beobachteten Beschriftungen
|
||||||
gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein
|
gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein
|
||||||
struktureller Sprung durchgeführt wird.
|
struktureller Sprung durchgeführt wird.
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}[ht]
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Require \\$G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_t)$ (Erweiterter Graph),\\
|
\Require \\$G_{E,t} = (V_t, E_{S,t} \cup E_{W,t}, V_{L,t}, W_t)$ (Erweiterter Graph),\\
|
||||||
$r$ (Anzahl der Random Walks),\\
|
$r$ (Anzahl der Random Walks),\\
|
||||||
|
|
Binary file not shown.
|
@ -63,7 +63,7 @@
|
||||||
\section{DYCOS}
|
\section{DYCOS}
|
||||||
\input{DYCOS-Algorithmus}
|
\input{DYCOS-Algorithmus}
|
||||||
|
|
||||||
\section{Schwächen und Verbesserungsvorschläge}
|
\section{Probleme des DYCOS-Algorithmus}
|
||||||
\input{SchwaechenVerbesserungen}
|
\input{SchwaechenVerbesserungen}
|
||||||
|
|
||||||
\section{Ausblick}
|
\section{Ausblick}
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
About
|
About
|
||||||
=====
|
=====
|
||||||
|
The document in this folder is part of a proseminar at KIT. It is
|
||||||
|
written in German.
|
||||||
|
|
||||||
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
|
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
|
||||||
|
|
||||||
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
|
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
|
||||||
25-30 Minuten dauern + 10-15 Minuten Diskussion.
|
25-30 Minuten dauern + 10-15 Minuten Diskussion.
|
||||||
|
|
||||||
TODO
|
Zu der Ausarbeitung gehört eine [Präsentation](https://github.com/MartinThoma/LaTeX-examples/tree/master/presentations/Datamining-Proseminar).
|
||||||
-----
|
|
||||||
|
|
||||||
* Abschnitt "Problemstellung" überarbeiten
|
|
||||||
* Algorithmen erklären
|
|
||||||
* Algorithmus 4, S. 9
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
Der in \cite{aggarwal2011} vorgestellte Algorithmus hat einige Probleme,
|
Bei der Anwendung des in \cite{aggarwal2011} vorgestellten Algorithmus
|
||||||
|
auf reale Datensätze könnten zwei Probleme auftreten,
|
||||||
die im Folgenden erläutert werden. Außerdem werden Verbesserungen
|
die im Folgenden erläutert werden. Außerdem werden Verbesserungen
|
||||||
vorgeschlagen, die es allerdings noch zu untersuchen gilt.
|
vorgeschlagen, die es allerdings noch zu untersuchen gilt.
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ Ab hier gilt
|
||||||
Bei der Wahl der Datenstruktur von $T$ ist zu beachten, dass man in
|
Bei der Wahl der Datenstruktur von $T$ ist zu beachten, dass man in
|
||||||
\cref{alg:21} über Indizes auf Elemente aus $T$ zugreifen können muss.
|
\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,
|
In \cref{alg:l8} bis \ref{alg:l13} wird ein assoziatives Array erstellt,
|
||||||
das von $v' \in T(v)$ auf die relative
|
das von $v' \in T(v)$ auf die relative
|
||||||
Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet.
|
Häufigkeit bzgl. aller Pfade von $v$ zu Knoten aus den Top-$q$ abbildet.
|
||||||
|
|
||||||
|
|
|
@ -30,47 +30,56 @@ nur Wörter betrachtet werden, die auch vorkommen.
|
||||||
|
|
||||||
Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann,
|
Ein Vorschlag, wie die Vokabularbestimmung implementiert werden kann,
|
||||||
ist als Pseudocode mit \cref{alg:vokabularbestimmung}
|
ist als Pseudocode mit \cref{alg:vokabularbestimmung}
|
||||||
gegeben. Dieser Algorithmus benötigt neben dem Speicher für den
|
gegeben. In \cref{alg4:l6} wird eine Teilmenge $S_t \subseteq V_{L,t}$
|
||||||
Graphen, die Texte sowie die $m$ Vokabeln noch $\mathcal{O}(|\text{Verschiedene Wörter in } S_t| \cdot (|\L_t| + 1))$
|
zum Generieren des Vokabulars gewählt. In \cref{alg4:l8} wird ein Array $cLabelWords$ erstellt, das $(|\L_t|+1)$ Felder hat.
|
||||||
Speicher. Die Average-Case Zeitkomplexität beträgt
|
Die Elemente dieser Felder sind jeweils assoziative Arrays, deren
|
||||||
$\mathcal{O}(|\text{Wörter in } S_t|)$, wobei dazu die Vereinigung
|
Schlüssel Wörter und deren Werte natürliche Zahlen sind. Die ersten
|
||||||
von Mengen $M,N$ in $\mathcal{O}(\min{|M|, |N|})$ sein muss.
|
$|\L_t|$ Elemente von $cLabelWords$ dienem 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.
|
||||||
|
|
||||||
\begin{algorithm}
|
In \cref{alg4:l17} bis \ref{alg4:l19} wird die relative Häufigkeit
|
||||||
|
der Wörter bzgl. der Beschriftungen bestimmt. Daraus wird in
|
||||||
|
\cref{alg4:l20} bis \ref{alg4:l22} der Gini-Koeffizient berechnet.
|
||||||
|
Schließlich werden in \cref{alg4:l23} bis \ref{alg4:l24} die Top-$q$
|
||||||
|
Wörter mit den höchsten Gini-Koeffizienten zurückgegeben.
|
||||||
|
|
||||||
|
\begin{algorithm}[ht]
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Require \\
|
\Require \\
|
||||||
$V_{L,t}$ (beschriftete Knoten),\\
|
$V_{L,t}$ (beschriftete Knoten),\\
|
||||||
$\L_t$ (Beschriftungen),\\
|
$\L_t$ (Menge der Beschriftungen),\\
|
||||||
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
|
$f:V_{L,t} \rightarrow \L_t$ (Beschriftungsfunktion),\\
|
||||||
$m$ (Gewünschte Vokabulargröße)
|
$m$ (Gewünschte Vokabulargröße)
|
||||||
\Ensure $\M_t$ (Vokabular)\\
|
\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}}$ \Comment{Wähle eine Teilmenge $S_t \subseteq V_{L,t}$ aus}
|
\State $\M_t \gets \emptyset$ \Comment{Menge aller Wörter}
|
||||||
\State $\M_t \gets \bigcup_{v \in S_t} \Call{getTextAsSet}{v}$ \Comment{Menge aller Wörter}
|
\State $cLabelWords \gets$ Array aus $(|\L_t|+1)$ assoziativen Arrays\label{alg4:l8}
|
||||||
\State $cLabelWords \gets (|\L_t|+1) \times |\M_t|$-Array, mit 0en initialisiert\\
|
\ForAll{$v \in S_t$} \label{alg4:l10}\Comment{Gehe jeden Text Wort für Wort durch}
|
||||||
|
|
||||||
\ForAll{$v \in V_{L,t}$} \Comment{Gehe jeden Text Wort für Wort durch}
|
|
||||||
\State $i \gets \Call{getLabel}{v}$
|
\State $i \gets \Call{getLabel}{v}$
|
||||||
\ForAll{$(word, occurences) \in \Call{getTextAsMultiset}{v}$}
|
\ForAll{$(word, haeufigkeit) \in \Call{getTextAsMultiset}{v}$}
|
||||||
\State $cLabelWords[i][word] \gets cLabelWords[i][word] + occurences$
|
\State $cLabelWords[i][word] \gets cLabelWords[i][word] + haeufigkeit$
|
||||||
\State $cLabelWords[i][|\L_t|] \gets cLabelWords[i][|\L_t|] + occurences$
|
\State $cLabelWords[|\L_t|][word] \gets cLabelWords[i][|\L_t|] + haeufigkeit$
|
||||||
|
\State $\M_t = \M_t \cup \Set{word}$
|
||||||
\EndFor
|
\EndFor
|
||||||
\EndFor
|
\EndFor\label{alg4:l12}
|
||||||
\\
|
\\
|
||||||
\ForAll{Wort $w \in \M_t$}
|
\ForAll{Wort $w \in \M_t$}
|
||||||
\State $p \gets $ Array aus $|\L_t|$ Zahlen in $[0, 1]$
|
\State $p \gets $ Array aus $|\L_t|$ Zahlen in $[0, 1]$\label{alg4:l17}
|
||||||
\ForAll{Label $i \in \L_t$}
|
\ForAll{Label $i \in \L_t$}
|
||||||
\State $p[i] \gets \frac{cLabelWords[i][w]}{cLabelWords[i][|\L_t|]}$
|
\State $p[i] \gets \frac{cLabelWords[i][w]}{cLabelWords[i][|\L_t|]}$
|
||||||
\EndFor
|
\EndFor\label{alg4:l19}
|
||||||
|
|
||||||
\State $w$.gini $\gets 0$
|
\State $w$.gini $\gets 0$ \label{alg4:l20}
|
||||||
\ForAll{$i \in 1, \dots, |\L_t|$}
|
\ForAll{$i \in 1, \dots, |\L_t|$}
|
||||||
\State $w$.gini $\gets$ $w$.gini + $p[i]^2$
|
\State $w$.gini $\gets$ $w$.gini + $p[i]^2$
|
||||||
\EndFor
|
\EndFor\label{alg4:l22}
|
||||||
\EndFor
|
\EndFor
|
||||||
|
|
||||||
\State $\M_t \gets \Call{SortDescendingByGini}{\M_t}$
|
\State $\M_t \gets \Call{SortDescendingByGini}{\M_t}$\label{alg4:l23}
|
||||||
\State \Return $\Call{Top}{\M_t, m}$
|
\State \Return $\Call{Top}{\M_t, m}$\label{alg4:l24}
|
||||||
\end{algorithmic}
|
\end{algorithmic}
|
||||||
\caption{Vokabularbestimmung}
|
\caption{Vokabularbestimmung}
|
||||||
\label{alg:vokabularbestimmung}
|
\label{alg:vokabularbestimmung}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue