Topic modeling bij fraude

Fraudedetectie in Python

Charlotte Werger

Data Scientist

Topic modeling: verborgen patronen in tekst

  1. Onderwerpen in tekstdata ontdekken
  2. "Waar gaat de tekst over?"
  3. Conceptueel vergelijkbaar met clusteren
  4. Vergelijk topics van fraude- vs. niet-fraudezaken en gebruik als feature of vlag
  5. Of: zit er een topic dat op fraude wijst?
Fraudedetectie in Python

Latent Dirichlet Allocation (LDA)

Met LDA krijg je:

  1. "topics per tekstitem"-model (kansen)
  2. "woorden per topic"-model

Je eigen topicmodel bouwen:

  1. Maak je data schoon
  2. Maak een bag-of-words met dictionary en corpus
  3. Voer dictionary en corpus in het LDA-model
Fraudedetectie in Python

Latent Dirichlet Allocation (LDA)

Fraudedetectie in Python

Bag-of-words: dictionary en corpus

from gensim import corpora
# Maak dictionary: aantal keer dat een woord voorkomt
dictionary = corpora.Dictionary(cleaned_emails)
# Filter (niet)frequente woorden 
dictionary.filter_extremes(no_below=5, keep_n=50000)
# Maak corpus
corpus = [dictionary.doc2bow(text) for text in cleaned_emails]
Fraudedetectie in Python

Latent Dirichlet Allocation (LDA) met gensim

import gensim
# Definieer het LDA-model
ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics = 3, 
id2word=dictionary, passes=15)
# Print de drie topics met topwoorden
topics = ldamodel.print_topics(num_words=4)
for topic in topics:
    print(topic)
(0, 0.029*"email" + 0.016*"send" + 0.016*"results" + 0.016*"invoice")
(1, 0.026*"price" + 0.026*"work" + 0.026*"management" + 0.026*"sell")
(2, 0.029*"distribute" + 0.029*"contact" + 0.016*"supply" + 0.016*"fast")
Fraudedetectie in Python

Laten we oefenen!

Fraudedetectie in Python

Preparing Video For Download...