-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
在对pairsfreq_queue更新的时候 bpe.hxx使用如下方法
if (i > 0) {
pairsfreq_queue_->increase(std::make_pair(voc[i-1], voc[i]), -freq);
pairsfreq_queue_->increase(std::make_pair(voc[i-1], best_bytes), freq);
}
if (i+2 < n) {
pairsfreq_queue_->increase(std::make_pair(voc[i+1], voc[i+2]), -freq);
pairsfreq_queue_->increase(std::make_pair(best_bytes, voc[i+2]), freq);
}
这里似乎没有考虑连续两个都被合并的情况 比如eded 我们将e和d合并 第一个ed合并的时候 会减少de的freq 第二个de合并时候 会再次减少de的freq 此外 第一个ed合并后 增加的是ed e这一个pair的freq 但实际上应该增加的是ed ed这一个pair的freq 也就是合并后插入pairsfreq_queue_的应该是(ed, ed) 且只插入一次 freq为1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels