2017-04-03 2 views
0

Ich habe ein Problem, das ich unten erklären werde, aber ich entschied nicht, welcher populäre Maschinenalgorithmus (kmeans, KNN etc.) für dieses Problem besser ist.Wie findet man am nächsten gegebene Antwort mit maschinellen Lernalgorithmen

So, hier ist mein Problem:

Denken Sie jede Eingabe als Antwort. Jede Frage hat 5 Optionen (A, B, C, D, E) und eine davon ist korrekt.

Lassen Sie sich die richtigen Antworten übernehmen für spezifischen Test: A B B D C

und der gegebene 2 unterschiedliche Eingang ist: A C B D C und B C B D C. Der erste hat nur eine falsche Antwort, die zweite Frage. Der zweite ist 2 falsche Antworten.

Was ich versuche zu erreichen, ist die nächste Antwort basierend auf richtigen Antworten zu finden. In diesem speziellen Fall ist es A C B D C, weil es nur eine falsche Antwort hat.

Also, ich muss Antworten vom richtigsten bis zum falschesten filtern.

Jede Hilfe wäre willkommen.

+1

ich nicht bekommen. Sie müssen nur die Anzahl der richtigen Antworten zählen. Wenn diese Zahl für zwei Eingänge gleich ist, sind diese Eingänge gleich gut. –

Antwort

0

Vielleicht können Sie die "Levenshtein distance (fast-levenshtein)" basierend auf Strings versuchen. Was es tut, ist eine String-Metrik für die Messung der Bearbeitungsabstand zwischen zwei Sequenzen. Oder mit anderen Worten, es sagt Ihnen, wie viele Zeichen Sie ändern müssen, um Ihr anderes Wort zu bekommen.

''' 
example: 
"hello" - "hallo" : 1 
"hello" - "helpp" : 2 
"hello" - "welp" : 3 (change 2 letters and remove 1 letter) 
"hello" - "yellow": 2 (change 1 letter and add 1 letter) 
etc... 
''' 

import editdistance 

def minimum_edit_distance(answer, answers): 

    answ = [] 

    for a in answers: 
     answ.append(editdistance.eval(answer.lower(), a.lower())) 

    return answ 

minimum_edit_distance("hello", ["hallo", "helpp", "welp", "yellow", "hello"]) 


# Result : [1, 2, 3, 2, 0] 

# OR 

minimum_edit_distance("ABBDC", ["ACBDC", "BCBDC", "ABBCD", "AABDC", "CCCCC"]) 
# Result : [1, 2, 2, 1, 4] 

Aber ja: Sie können auch eine Schleife über die Antwort und überprüfen und zählen, wie viele Dinge sind falsch ....

Verwandte Themen