Es gibt eine Implementierung des BLEU-Ergebnisses in Python NLTK, %code%
Aber ich bin mir nicht sicher, ob es das gleiche wie die mtevalv13a ist .pl-Skript .
Was ist der Unterschied zwischen ihnen?
Kurz gesagt
Nein, die BLEU in NLTK ist nicht genau die gleiche wie die %code% .
Aber es kann sehr nahe kommen, siehe Ссылка
%code% entspricht %code% bis zur 4. Ordnung von ngram mit einigen Gleitkommadiskrepanzen
Die Details des Vergleichs und des verwendeten Datensatzes können von Ссылка
Die Hauptunterschiede:
In lang
Es gibt mehrere Unterschiede zwischen %code% und %code% :
Der erste Unterschied besteht darin, dass %code% mit einem eigenen NIST-Tokenizer geliefert wird, während die NLTK-Version von BLEU die Implementierung der Metrik ist und voraussetzt, dass die Eingabe vorbenannt wird / strong>.
Der andere Hauptunterschied besteht darin, dass %code% erwartet, dass die Eingabe im %code% -Format ist, während NLTK BLEU eine Python-Liste von Listen mit Strings aufnimmt, siehe README.txt im zipball hier für weitere Informationen darüber, wie man Textdateien nach SGM konvertiert .
%code% erwartet eine ngram-Reihenfolge von mindestens 1-4. Wenn die minimale ngram-Reihenfolge für den Satz / Korpus kleiner als 4 ist, wird eine 0 Wahrscheinlichkeit zurückgegeben, die ein %code% ist. Um dieses Verhalten zu emulieren, hat NLTK ein %code% -Flag gesetzt:
%code% kann NIST-Scores generieren, während NLTK keine NIST-Score-Implementierung (zumindest noch nicht) aufweist
Anders als die Unterschiede, NLTK BLEU Punkte in mehr Funktionen gepackt:
um Randfälle zu behandeln, die die ursprüngliche BLEU (Papineni, 2002) übersehen hat
Auch für Randfälle, bei denen die größte Ordnung von Ngram & lt; In 4 werden die einheitlichen Gewichte der individuellen ngram-Genauigkeit neu gewichtet, so dass die Masse der Gewichte zu 1,0
summiertwährend NIST hat eine Glättungsmethode für die geometrische Sequenzglättung, NLTK hat ein äquivalentes Objekt mit der gleichen Glättungsmethode und noch mehr Glättungsmethoden, um das Satzlevel BLEU aus Chen und Collin, 2014 zu handhaben / p>
Um die in der NLTK-Version von BLEU hinzugefügten Funktionen zu validieren, wird den Konten ein Regressionstest hinzugefügt, siehe Ссылка
Es gibt eine Implementierung des BLEU-Ergebnisses in Python NLTK,
nltk.translate.bleu_score.corpus_bleu
Aber ich bin mir nicht sicher, ob es das gleiche wie die mtevalv13a ist .pl-Skript .
Was ist der Unterschied zwischen ihnen?
Kurz gesagt
Nein, die BLEU in NLTK ist nicht genau die gleiche wie die mteval-13a.perl
.
Aber es kann sehr nahe kommen, siehe Ссылка
nltk.translate.corpus_bleu
entsprichtmteval-13a.pl
bis zur 4. Ordnung von ngram mit einigen Gleitkommadiskrepanzen
Die Details des Vergleichs und des verwendeten Datensatzes können von Ссылка
Die Hauptunterschiede:
In lang
Es gibt mehrere Unterschiede zwischen mteval-13a.pl
und nltk.translate.corpus_bleu
:
Der erste Unterschied besteht darin, dass mteval-13a.pl
mit einem eigenen NIST-Tokenizer geliefert wird, während die NLTK-Version von BLEU die Implementierung der Metrik ist und voraussetzt, dass die Eingabe vorbenannt wird / strong>.
Der andere Hauptunterschied besteht darin, dass mteval-13a.pl
erwartet, dass die Eingabe im .sgm
-Format ist, während NLTK BLEU eine Python-Liste von Listen mit Strings aufnimmt, siehe README.txt im zipball hier für weitere Informationen darüber, wie man Textdateien nach SGM konvertiert .
mteval-13a.pl
erwartet eine ngram-Reihenfolge von mindestens 1-4. Wenn die minimale ngram-Reihenfolge für den Satz / Korpus kleiner als 4 ist, wird eine 0 Wahrscheinlichkeit zurückgegeben, die ein math.log(float('-inf'))
ist. Um dieses Verhalten zu emulieren, hat NLTK ein _emulate_multibleu
-Flag gesetzt:
mteval-13a.pl
kann NIST-Scores generieren, während NLTK keine NIST-Score-Implementierung (zumindest noch nicht) aufweist
Anders als die Unterschiede, NLTK BLEU Punkte in mehr Funktionen gepackt:
um Randfälle zu behandeln, die die ursprüngliche BLEU (Papineni, 2002) übersehen hat
Auch für Randfälle, bei denen die größte Ordnung von Ngram & lt; In 4 werden die einheitlichen Gewichte der individuellen ngram-Genauigkeit neu gewichtet, so dass die Masse der Gewichte zu 1,0
summiertwährend NIST hat eine Glättungsmethode für die geometrische Sequenzglättung, NLTK hat ein äquivalentes Objekt mit der gleichen Glättungsmethode und noch mehr Glättungsmethoden, um das Satzlevel BLEU aus Chen und Collin, 2014 zu handhaben / p>
Um die in der NLTK-Version von BLEU hinzugefügten Funktionen zu validieren, wird den Konten ein Regressionstest hinzugefügt, siehe Ссылка
Tags und Links machine-learning nlp nltk machine-translation bleu