Ämnesmodellering av bedrägerier

Bedrägeridetektering i Python

Charlotte Werger

Data Scientist

Ämnesmodellering: hitta dolda mönster i textdata

  1. Identifiera ämnen i textdata
  2. "Vad handlar texten om"
  3. Konceptuellt likt klustring av data
  4. Jämför ämnen i bedrägerifall med icke-bedrägerifall och använd som särdrag eller flagga
  5. Eller.. finns det ett särskilt ämne i datan som verkar peka på bedrägeri?
Bedrägeridetektering i Python

Latent Dirichlet Allocation (LDA)

Med LDA får du:

  1. Modell för "ämnen per textobjekt" (dvs. sannolikheter)
  2. Modell för "ord per ämne"

Så här skapar du en egen ämnesmodell:

  1. Rensa datan
  2. Skapa en bag of words med ordbok och korpus
  3. Mata LDA-modellen med ordboken och korpusen
Bedrägeridetektering i Python

Latent Dirichlet Allocation (LDA)

Bedrägeridetektering i Python

Bag of words: ordbok och korpus

from gensim import corpora
# Create dictionary number of times a word appears
dictionary = corpora.Dictionary(cleaned_emails)
# Filter out (non)frequent words 
dictionary.filter_extremes(no_below=5, keep_n=50000)
# Create corpus
corpus = [dictionary.doc2bow(text) for text in cleaned_emails]
Bedrägeridetektering i Python

Latent Dirichlet Allocation (LDA) med gensim

import gensim
# Define the LDA model
ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics = 3, 
id2word=dictionary, passes=15)
# Print the three topics from the model with top words
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")
Bedrägeridetektering i Python

Nu kör vi en övning!

Bedrägeridetektering i Python

Preparing Video For Download...