Skip to content

Instantly share code, notes, and snippets.

View avidale's full-sized avatar

David Dale avidale

View GitHub Profile
@avidale
avidale / init_logreg.ipynb
Last active May 25, 2023 21:22
Logistic regression initialization.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@avidale
avidale / taxonomy.md
Last active May 25, 2023 21:22
w2v-taxonomy

Как предсказать гипероним слова (и зачем). Моё участие в соревновании по пополнению таксономии

Как может машина понимать смысл слов и понятий, и вообще, что значит - понимать? Понимаете ли вы, например, что такое спаржа? Если вы скажете мне, что спаржа - это (1) травянистое растение, (2) съедобный овощ, и (3) сельскохозяйственная культура, то, наверное, я останусь убеждён, что вы действительно знакомы со спаржей. Лингвисты называют такие более общие понятия гиперонимами, и они довольно полезны для ИИ. Например, зная, что я не люблю овощи, робот-официант не стал бы предлагать мне блюда из спаржи. Но чтобы использовать подобные знания, надо сначала откуда-то их добыть.

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

@avidale
avidale / subparagraphs.ipynb
Last active May 25, 2023 21:25
subparagraphs.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@avidale
avidale / convert-conjuction-to-separate-phrases.ipynb
Last active May 25, 2023 21:25
convert conjuction to separate phrases
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@avidale
avidale / pyahocorasick-entity-search.ipynb
Last active May 25, 2023 21:25
pyahocorasick entity search.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@avidale
avidale / covid-trends.ipynb
Last active May 25, 2023 21:25
covid-trends.ipynb
@avidale
avidale / bert_knn.ipynb
Last active February 11, 2024 16:08
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.
@avidale
avidale / fasttext_similarity_weirdness.ipynb
Last active May 25, 2023 21:24
fasttext_similarity_weirdness.ipynb
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 давно предусмотрели этот режим для своих классификаторов, сжимая их на порядк

@avidale
avidale / compress.py
Last active May 25, 2023 21:24
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