Skip to content
Snippets Groups Projects
Commit 51fcaca7 authored by Silas Dohm's avatar Silas Dohm
Browse files

Merge branch 'master' of gitlab.cvh-server.de:w2v/w2vp

git merge:)
parents c09ded41 379a3ae7
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,7 @@ Wenn der Datensatz jedoch die Realität relativ gut darstellt ist es gerade für ...@@ -25,7 +25,7 @@ Wenn der Datensatz jedoch die Realität relativ gut darstellt ist es gerade für
Der entwickelte Algorithmus soll die Kategorisierung aber nicht an fundiertem Raten ausmachen, sondern anhand von selbst erarbeiteten Kriterien und damit unabhängig der ursprünglichen Distribution. Der entwickelte Algorithmus soll die Kategorisierung aber nicht an fundiertem Raten ausmachen, sondern anhand von selbst erarbeiteten Kriterien und damit unabhängig der ursprünglichen Distribution.
Generell gibt es zwei Ansätze, um diesen Effekt zu bekämpfen. Zum Einem gibt es die Möglichkeit, den \noteable{Near-Miss-Algorithm} zu benutzen. Mit Hilfe diesem werden im Grunde Einträge von zu oft vertretenen Klassen aus dem Datensatz entfernt, bis dieser ausgeglichen ist. Dadurch wird zwar verhindert, dass eine Klasse bei der Kategorisierung bevorzugt wird, aber man verringert auch den zu Grunde liegenden Datensatz. Je nach ursprünglicher Verteilung und gesamter Menge kann dies zu einem zu kleinen Datensatz und somit weiteren Problemen führen. Generell gibt es zwei Ansätze, um diesen Effekt zu bekämpfen. Zum Einem gibt es die Möglichkeit, den \noteable{Near-Miss-Algorithm} zu benutzen. Mit Hilfe diesem werden im Grunde Einträge von zu oft vertretenen Klassen aus dem Datensatz entfernt, bis dieser ausgeglichen ist. Dadurch wird zwar verhindert, dass eine Klasse bei der Kategorisierung bevorzugt wird, aber man verringert auch den zu Grunde liegenden Datensatz. Je nach ursprünglicher Verteilung und gesamter Menge kann dies zu einem zu kleinen Datensatz und somit weiteren Problemen führen.
Zum Anderen gibt es die Möglichkeit, die Klassen beim Trainieren zu gewichten. Hier werden selten auftretende Klassen stärker gewertet, um so für das Programm den Anschein zu erwecken, als ob diese häufiger vorkommen. \wip{Dies kann dazu führen, dass ausgemachte Kriterien für bestimmte Klassen als aussagekräftiger gelten, als sie eigentlich sind, da sie vermeintlich bei vielen Trainingsdaten so vorkamen} Zum Anderen gibt es die Möglichkeit, die Klassen beim Trainieren zu gewichten. \wip{Hier werden selten auftretende Klassen stärker gewertet, um so für das Programm den Anschein zu erwecken, als ob diese häufiger vorkommen. Dies kann dazu führen, dass ausgemachte Kriterien für bestimmte Klassen als aussagekräftiger gelten, als sie eigentlich sind, da sie vermeintlich bei vielen Trainingsdaten so vorkamen.}
Im Rahmen dieser Arbeit wurde der zweite Ansatz gewählt. Im Rahmen dieser Arbeit wurde der zweite Ansatz gewählt.
\subsubsection{Zeichensatz} \subsubsection{Zeichensatz}
......
from gensim.utils import chunkize
if __name__ == '__main__': if __name__ == '__main__':
#%% #%%
import numpy as np import numpy as np
...@@ -123,23 +124,32 @@ if __name__ == '__main__': ...@@ -123,23 +124,32 @@ if __name__ == '__main__':
i += 1 i += 1
index +=1 index +=1
#XTrain.resize(XTrain.shape[0]+trainChunk, axis=0) trainChunk = len(xTrain)
#XTrain[-trainChunk:] = xTrain if trainChunk != 0:
#YTrain.resize(YTrain.shape[0]+trainChunk, axis=0) XTrain.resize(XTrain.shape[0]+trainChunk, axis=0)
#YTrain[-trainChunk:] = yTrain XTrain[-trainChunk:] = xTrain
#XVal.resize(XVal.shape[0]+valTestChunk, axis=0) YTrain.resize(YTrain.shape[0]+trainChunk, axis=0)
#XVal[-valTestChunk:] = xVal YTrain[-trainChunk:] = yTrain
#YVal.resize(YVal.shape[0]+valTestChunk, axis=0) valTestChunk = len(xVal)
#YVal[-valTestChunk:] = yVal if valTestChunk != 0:
#XTest.resize(XTest.shape[0]+valTestChunk, axis=0) XVal.resize(XVal.shape[0]+valTestChunk, axis=0)
#XTest[-valTestChunk:] = xTest XVal[-valTestChunk:] = xVal
#YTest.resize(YTest.shape[0]+valTestChunk, axis=0) YVal.resize(YVal.shape[0]+valTestChunk, axis=0)
#YTest[-valTestChunk:] = yTest YVal[-valTestChunk:] = yVal
valTestChunk = len(xTest)
if valTestChunk != 0:
XTest.resize(XTest.shape[0]+valTestChunk, axis=0)
XTest[-valTestChunk:] = xTest
YTest.resize(YTest.shape[0]+valTestChunk, axis=0)
YTest[-valTestChunk:] = yTest
#%% #%%
import h5py import h5py
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment