| title | Dokumentation des Programmentwurfs | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| author | Niklas Jaeger, Arian Moser | |||||||||
| header |
|
|||||||||
| footer | true | |||||||||
| titlepage | true |
Evidenztheorie / Dempster Regel
- CSV Datei mit strukturierten Daten
- Liste von Sprechdaten taktweise
- Sprechgeschwindigkeit (langsamer, normal, schneller)
- durchschnittliche Tonlage (niedriger, normal, höher)
- Schallstärke/Intensität (schwächer, normal, stärker)
- Ekel
- Freude
- Angst
- Überraschung
- Wut
- Traurigkeit
- Langsam:
- Ekel, Freude
- Schnell:
- Angst, Überraschung, Wut, Freude
- Tief:
- Ekel, Traurigkeit
- Hoch:
- Angst, Überraschung, Wut, Freude
- Schwach
- Traurigkeit, Ekel
- Stark
- Wut, Freude, Überraschung
- Analyse, Modellierung und Verarbeitung mittels Evidenztheorie
\newpage
Bei der Analyse der gegebenen Informationen fällt auf, dass die Sprechgeschwindigkeit anstatt in Abstufungen (langsam, mittel, schnell) in Silben pro Sekunde angegeben ist. Deshalb muss zunächst definiert werden, für welche Intervalle welche Abstufung zu wählen ist:
| Abstufung\Geschwindikeit | Von | Bis |
|---|---|---|
| Sehr langsam | 0 | 3 |
| Langsam | 3 | 4 |
| Normal | 4 | 5 |
| Schnell | 5 | 6 |
| Sehr schnell | 6 |
Da für die anderen beiden Kategorie jeweils direkt die Abstufungen angegeben sind, muss hier keine extra Einteilung mehr vorgenommen werden.
Im nächsten Schritt geht es an die Ermittlung des Basismaß. Dafür muss für jede Kategorie in jeder Abstufung ein Plausibilitätswert im Bezug auf die Emotionen festgesetzt werden.
| Abstufung \ Kategorie | Sprechgeschwindigkeit | Tonlage | Schallstärke |
|---|---|---|---|
| sehr niedrig | Pl({D})=0.5 | Pl({D})=0.5 | Pl({D,Sa})=0.9 |
| Pl({J})=0.4 | Pl({Sa})=0.35 | Pl({O})=0.1 | |
| Pl({O})=0.1 | Pl({O})=0.15 | ||
| niedrig | Pl({D})=0.4 | Pl({D})=0.45 | Pl({D,Sa})=0.8 |
| Pl({J})=0.35 | Pl({Sa})=0.3 | Pl({O})=0.2 | |
| Pl({O})=0.25 | Pl({O})=0.25 | ||
| normal | Pl({O})=1.0 | Pl({O})=1.0 | Pl({O})=1.0 |
| hoch | Pl({J,F,Su,A})=0.8 | Pl({J,F,Su,A})=0.8 | Pl({J,Su,a})=0.8 |
| Pl({O})=0.2 | Pl({O})=0.2 | Pl({O})=0.2 | |
| sehr hoch | Pl({J,F,Su,A})=0.9 | Pl({J,F,Su,A})=0.9 | Pl({J,Su,a})=0.9 |
| Pl({O})=0.1 | Pl({O})=0.1 | Pl({O})=0.1 | |
| Buchstabe | Emotion |
|---|---|
| D | Ekel |
| J | Freude |
| Sa | Traurigkeit |
| Su | Überraschung |
| F | Angst |
| A | Wut |
| O | Omega |
Im ersten Schritt der Implementierung geht es an das Einlesen der CSV-Datei und
der sinnvollen Speicherung der darin enthalten Daten. Für das Einlesen wurde
auf die Bibliothek csv zurückgegriffen. Diese kann CSV-Dateien öffnen und
anhand eines Delimiters deren Daten trennen.
Danach müssen die Daten noch sinnvoll gespeichert werden. Dafür benutzen wir
übersichtshalber ein Dictionary-Array, indem jede Zeile einen Takt darstellt.
Nach der Eingabe müssen die Daten noch verarbeitet werden. Dabei werden die
einzelnen Abstufungen anhand der obrigen Tabelle in die jeweiligen Evidenzen
m1, m2 und m3 überführt (durch die "MassFunction" aus der Biblothek pyds). Im
Anschluss müssen die Evidenzen noch akkumuliert werden. Dies geschieht durch
die Funktion "combine_conjunctive", welche auch von der Bibliothek pyds
mitgeliefert wird.
Abschließend wird noch die plausibelste Emotion ausgewählt (durch die Funktion
"max_pl" von pyds) und der dazugehörige Wert bestimmt.
python main.py data.csv
- Python 3.5 oder höher
\vfill
\centering Github: ArianMoser/WBS-Evidenz