Frage

(let ((g (* 2 (or (gethash word good) 0)))
      (b (or (gethash word bad) 0)))
   (unless (< (+ g b) 5)
     (max .01
          (min .99 (float (/ (min 1 (/ b nbad))
                             (+ (min 1 (/ g ngood))   
                                (min 1 (/ b nbad)))))))))
War es hilfreich?

Lösung

Was ist das Problem? Es ist fast einfaches Englisch:

Let g kann der Wert von word in der Hash-Tabelle good (oder 0, wenn nicht existent dort) mal 2

(let ((g (* 2 (or (gethash word good) 0)))

und b den Wert von word in der Hash-Tabelle bad (oder 0, wenn nicht existent dort).

      (b (or (gethash word bad) 0)))

Vor diesem Hintergrund und unter der Annahme, dass die Summe der g und b ist nicht kleiner als 5

   (unless (< (+ g b) 5)

gibt die maximal entweder 0,01 oder

     (max .01

das Minimum von entweder 0,99 oder

          (min .99 

b / nbad dividiert durch die Summe aus b / nbad und g / ngood (als ein Gleitkommawert, und diese einzelnen Quotienten sollte höchstens 1 sein).

               (float (/ (min 1 (/ b nbad))
                         (+ (min 1 (/ g ngood))   
                            (min 1 (/ b nbad)))))))))

Andere Tipps

Sieht aus wie es versucht, eine Punktzahl zu berechnen, basierend auf der Anwesenheit von word in der die Hash-Tabellen good und bad.

Wenn das Wort existiert nicht in einer Hash-Tabelle einen Wert von 0 gegeben ist, andernfalls, wenn es in der guten Tabelle existiert es durch 2 (verdoppelt) gewichtet wird.

Wenn die Gäste weniger als 5 berechnet die Partitur (Abschnitt unter unless) wie folgt:

score = min(1, b/nbad) / (min(1, g/ngood) + min(1, b/nbad))
max(0.01, min(0.99, score))

Ich bin nicht sicher, was ngood und nbad sind aber dann zeigt n für mich sind sie wahrscheinlich zählt. Es sieht auch wie der Code wird der berechnete Wert unter 5. hält auch wie in der Score-Berechnung Es sieht der Nenner auf maximal 2 hält die unter die Partitur bis 0,5 gebunden gehalten wird.

Auf der Basis der Tags, die Sie verwendet haben, würde ich denke (und es ist nur eine Vermutung), dass es versucht, eine Gewichtung für Wort zu berechnen, basierend auf einer Art von Frequenz (?) Das Zählen des Wortes in Gut und schlecht E-Mail.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top