Skip to content

Instantly share code, notes, and snippets.

@Sandy4321
Sandy4321 / flashtext_regex_timing_keyword_extraction.py
Created May 28, 2023 21:05 — forked from vi3k6i5/flashtext_regex_timing_keyword_extraction.py
Benchmarking timing performance Keyword Extraction between regex and flashtext
#!/bin/python
from flashtext.keyword import KeywordProcessor
import random
import string
import re
import time
def get_word_of_length(str_length):
# generate a random word of given length
return ''.join(random.choice(string.ascii_lowercase) for _ in range(str_length))
@Sandy4321
Sandy4321 / flashtext_regex_timing_keyword_replace.py
Created May 28, 2023 19:54 — forked from vi3k6i5/flashtext_regex_timing_keyword_replace.py
Benchmarking timing performance Keyword Replace between regex and flashtext
#!/bin/python
from flashtext.keyword import KeywordProcessor
import random
import string
import re
import time
def get_word_of_length(str_length):
# generate a random word of given length
@Sandy4321
Sandy4321 / subparagraphs.ipynb
Created May 25, 2023 21:25 — forked from avidale/subparagraphs.ipynb
subparagraphs.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@Sandy4321
Sandy4321 / covid-trends.ipynb
Created May 25, 2023 21:25 — forked from avidale/covid-trends.ipynb
covid-trends.ipynb
@Sandy4321
Sandy4321 / bert_knn.ipynb
Created May 25, 2023 21:25 — forked from avidale/bert_knn.ipynb
bert_knn.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Как сжать модель fastText в 100 раз

Модель fastText - одно из самых эффективных векторных представлений слов для русского языка. Однако её прикладная польза страдает из-за внушительных (несколько гигабайт) размеров модели. В этой статье мы показываем, как можно уменьшить модель fastText до пары десятков мегабайт, не слишком потеряв в её качестве. Спойлер: квантизация и отбор признаков работают хорошо, а матричные разложения - не очень. Также мы публикуем пакет на Python для этого сжатия и пример компактной модели для русских слов.

Зачем и о чём это

Я не первый, кто пытается это сжать fastText: сами разработчики fastText давно предусмотрели этот режим для своих классификаторов, сжимая их на порядк

@Sandy4321
Sandy4321 / compress.py
Created May 25, 2023 21:24 — forked from avidale/compress.py
Compress fasttext model by applying denser ngram hash
# based on Andrey Vasnetsov code: https://gist.github.com/generall/68fddb87ae1845d6f54c958ed3d0addb
import os
import numpy as np
import gensim
from collections import defaultdict
from copy import deepcopy
from gensim.models.utils_any2vec import ft_ngram_hashes
from tqdm.auto import tqdm, trange