avidale / compress-fasttext

Tools for shrinking fastText models (in gensim format)
MIT License
169 stars 13 forks source link

Add option to account for n-gram vector norm during pruning #1

Closed thousandvoices closed 4 years ago

thousandvoices commented 4 years ago

Эти изменения позволяют учесть нормы векторов n-грамм при сокращении словаря.

При установке prune_by_norm=True метрики растут для всех моделей, которые я смотрел, поэтому он включен по умолчанию. У меня не хватило терпения проверить все 48 моделей, поэтому вот таблица со средними результатами evaluate_all моделей, которые получилось измерить:

model prune_by_norm=False prune_by_norm=True
ft_freqprune_100K_20K_pq_100.bin 0.967 0.973
ft_freqprune_50K_20K_pq_100.bin 0.953 0.964
ft_freqprune_50K_5K_pq_100.bin 0.893 0.912
avidale commented 4 years ago

Очень классно, я готов мёржить! Единственная штука, которую хочется проверить: стоит ли умножать счётчики на норму или на её квадрат? Я бы ещё с этим поэкспериментировал. Возможно, сделал бы степень, в которую возводится норма, числовым параметром.

thousandvoices commented 4 years ago

С квадратом примерно то же самое получается (самую малость хуже). А параметр пусть будет.