2. ABOUT
Ivan Menshikh
● Current community manager of
gensim
● Analyst at SkyDNS (2015-2017)
menshikh_iv
menshikh-iv
Lev Konstantinovskiy
● Past community manager of gensim
(2015-2017)
● ML Researcher at WorldSense
teagermylk
tmylk
3. GENSIM: academia and industry
● Numerous Industry Adopters
● 200+ code contributors
● 4K+ Github stars,1.8k+ forks
● 580+ academic citations
4. SOLVES THESE PROBLEMS
● Content classification
● Recommendation systems
● Search engine
● …ANYTHING…
IPython Notebook:
goo.gl/n8xWqM
5. TEXTS, TEXTS, TEXTS, … TEXTS EVERYWHERE
WHAT IS THE INPUT?
● Mails
● Messages
● Logs
● Images (why not?)
6. WHAT IS TEXT (DOCUMENT)?
● Words AKA “tokens”
● Word order
WHAT IS CORPUS?
● Several documents
AKA “Dataset”
TEXTS, TEXTS, TEXTS, … TEXTS EVERYWHERE
7. Тренируемся на кошках
№1: Пушистый котенок мурлыкал.
№2: Пушистый кот мурлыкал и мяукал.
№3: Пушистый котенок мяукал.
№4: Громкий пушистый пудель бегал и лаял.
12. SVD/LSA/LSI
from gensim.models import LsiModel
model = LsiModel(corpus=corpus,
num_topics=2,
id2word=dictionary)
Topics are usually NOT interpretable but here we are lucky:
0: 0.637*"пушистый" + 0.381*"и" + 0.324*"мяукал" + 0.324*"мурлыкал" + 0.256*"котенок"
1: 0.387*"пудель" + 0.387*"бегал" + 0.387*"громкий" + 0.387*"лаял" + -0.343*"котенок"
14. FIT LDA = FIND THE DICE THAT FIT MY TEXT
Which topic will I talk
about? Throw big dice to
decide
(Topics in a document are
modeled as a Dirichlet
probability distribution)
Про собак
Which word will I say from
the topic “Собаки”?
Throw small dice to decide.
(Words in a topic are
modeled as another Dirichlet
probability distribution)
“Громкий”
For example: Громкий пудель кот пудель мурлыкал
16. LDA: COLORED TEXT
Автор: М. Игнатова, 8 лет http://vsookoshkax.ru/istorii/korotkie_rasskazi.htm
У меня живут кот и пудель: старшему коту Афину 2
года 3 месяца, а пуделю Мисти 8 месяцев.
Первым в наш дом попал Мисти тогда ему было не
больше 2 месяцев.
Потом попал кот когда ему было 6 месяцев.
Он много мурлыкал, был пушистый и добрый.
В это время у нас уже жил пудель Мисти и он много
на кота лаял и кусался.
Topic 0: Про собак 0.64
Topic 1: Про кошек 0.36
20. DOC2VEC: NEURAL NETWORK, NOT INTERPRETABLE
from gensim.models import Doc2Vec
from gensim.models.doc2vec import
LabeledSentence
corpus = [LabeledSentence(sent, [idx])
for (idx, sent) in
enumerate(texts)]
model = Doc2Vec(size=5, window=2,
min_count=1)
model.build_vocab(corpus)
model.train(corpus,
epochs=5,
total_examples=len(corpus))