Skip to content
Snippets Groups Projects
Commit e4f805ab authored by Marc Feger's avatar Marc Feger
Browse files

Refactor

parent 8de9cbc9
No related branches found
No related tags found
No related merge requests found
......@@ -4,13 +4,13 @@ Vergleich der Tokens:
Spacy: Einfach zu verstehende Implementierung die sehr gut dokumentiert ist.
NLTK: Einfach zu verstehende Implementierung die gut dokumentiert ist. (An einigen Stellen nltk.download('punkt', download_dir='.') fehlt es an Informationen)
CoreNLP: Schlecht dokumentierter Python Wrapper. Die Dokumentation von CoreNLP ist zwar umfangreich jedoch werden einfache Tools wie
der Sentence-Splitter aus der Doku des Anwendung und der des Python Wrappers nicht direkt ersichtlich.
der Sentence-Splitter aus der Doku der Anwendung und der des Python Wrappers nicht direkt ersichtlich.
Schwerere Implementierung die mäßig gut dokumentiert ist.
2: Laufzeit
Spacy: Sehr lange Laufzeit
NLTK: Sehr schnelle Laufzeit
CoreBNLP: Sehr schnelle Laufzeit
CoreNLP: Sehr schnelle Laufzeit
3: Ergebnisse
Spacy:
......@@ -20,7 +20,7 @@ Warum stimmst du dann nicht dafür ab? :)
Ich war gestern (9.3.) auch dort und denke es handelte sich um eine Ausnahmesituation..
'Ich', 'war', 'gestern', '(', '9.3', '.', ')', 'auch', 'dort', 'und', 'denke', 'es', 'handelte', 'sich', 'um', 'eine', 'Ausnahmesituation', '..'
-> 9.3 wurde nurch an dem Punkt zertrennt und wurde als eigenes Datum tokenisiert -> Positiv + .. ist auch als einzelner Token erkannt worden -> Positiv
-> 9.3 wurde an dem Punkt zertrennt und wurde als eigenes Datum tokenisiert -> Positiv + .. ist auch als einzelner Token erkannt worden -> Positiv
Kiten ist der Hammer, ich selbst kite auch schon seit 5-10 Jahren, ABER der Spot am Tempelhofer Feld ist schlecht und sehr GEFÄHRLICH.
'Kiten', 'ist', 'der', 'Hammer', ',', 'ich', 'selbst', 'kite', 'auch', 'schon', 'seit', '5', '-', '10', 'Jahren', ',', 'ABER', 'der', 'Spot', 'am', 'Tempelhofer', 'Feld', 'ist', 'schlecht', 'und', 'sehr', 'GEFÄHRLICH', '.'
......
......@@ -46,7 +46,7 @@ Ich würde mich trotz der längeren Laufzeit für Spacy entscheiden, da die ande
So werden einige Sätze nicht richtig getrennt wohingegehn Spacy diese richtig erkennt.
Zudem sollten gerade solche Elemente wie ab.Das nicht dazu führen, dass die Sätze nicht richtig getrennt werden.
CoreNLP ist vom Setup (Wrapper + Server + Language-Packet) zu viel arbeit für einen so kleinen Datensatz.
CoreNLP ist vom Setup (Wrapper + Server + Language-Packet) zu viel Arbeit für einen so kleinen Datensatz.
Die Ergebnisse sind auch nicht ganz zuverlässig.
Es werden neue Tags eingeführt (RRB, LLB) wodurch der Text verändert wird.
NLTK scheidet aus, da die Ergebnisse deutlich schlechter ausfallen. Jedoch ist die Implementierung sehr einfach gehalten und die Laufzeit ist gut.
......
......@@ -20,7 +20,7 @@ So könnte z.b eine spezifische (semantische) Suchanfrage wie bspw. Google-Sucha
C.3
Bei der Grundformreduktion handelt es sich um die Rückführung eines Terms (Wort) auf dessen gramatikalische Grundform.
Bei der Stammformreduktion handelt es sich im die Rückführung eines Terms (Wort) auf seinen Wortstammt.
Bei der Stammformreduktion handelt es sich um die Rückführung eines Terms (Wort) auf seinen Wortstammt.
Dabei darf nicht außer Acht gelassen werden, dass es sich bei der Grundform (i.d.R) nicht um den Wortstammt handelt.
Bei der Grundformreduktion werden Substantive auf den Nominativ Singular und Verben auf den Infinitiv zurückgeführt.
Im Allgemeinen geschieht dies durch Abtrennung der Flexionsendung und eine anschließende Rekodierung.
......@@ -33,11 +33,11 @@ Bei einer semantischen Suche könnte die Reduktion auf die Grund- oder Stammform
die Auflösung des Plurals (Hunde -reduziert-> Hund) bessere Suchergebnisse erzielt werden die dennoch die Semantik
der Anfrage berücksichtigen.
Es macht keinen Sinn eine Reduktion bei exakten Suchen anzuwenden.
Dort würde die Reduktion zu Problemen bei Mehrwortgruppen führen bzw. wäre könnte es auch kein Ergebnis geben.
Dort würde die Reduktion zu Problemen bei Mehrwortgruppen führen bzw. könnte es auch kein Ergebnis geben.
C.5
Es ist nicht sinnvoll Stoppwörter zu entfernen, wenn diese wesentlich zur Semantik des Textes beitragen.
Bsp. "Sein oder nicht sein"
Auch wäre es nicht sinnvoll vor der Anwendung eines POS-Taggers den Text von Stoppwörtern zu befreien, da diese wesentlich
dazu beitragen können, dass die POS-Tags richtig gesetzt werden. Durch das Entfernen von Stoppworten kann der POS-Tagger
schlechter den Kontext erfassen, da möglicherweise angrenzende Worte entfern wurden.
schlechter den Kontext erfassen, da möglicherweise angrenzende Worte entfernt wurden.
......@@ -38,4 +38,4 @@ if __name__ == '__main__':
'''
file_sentences = FileReader.get_file_as_list('./corpus/projekt1_corpus.txt')
file_splits = get_splits(file_sentences)
FileWriter.write(file_splits, './results/corenlp_sentences.txt')
FileWriter.write(file_splits, './results/stanfordcorenlp_sentences.txt')
......@@ -30,4 +30,4 @@ def get_tokens(sentences: List) -> List[List]:
if __name__ == '__main__':
file_sentences = FileReader.get_file_as_list('./corpus/projekt1_corpus.txt')
file_tokens = get_tokens(file_sentences)
FileWriter.write(file_tokens, './results/corenlp_tokens.txt')
FileWriter.write(file_tokens, './results/stanfordcorenlp_tokens.txt')
......@@ -11,7 +11,7 @@ def get_splits(model, sentences: List) -> List[List]:
:param model: Which model should be used
:param sentences: List containing the sentences
:return: List of token-lists
:return: List of sentences-lists
'''
tokens = []
for sentence in sentences:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment