Označování podvodů na základě témat

Detekce podvodů v Pythonu

Charlotte Werger

Data Scientist

Využití výsledků modelu LDA pro detekci podvodů

  1. Existují podezřelá témata? (bez štítků)
  2. Jsou témata u podvodných a nepodvodných případů podobná? (se štítky)
  3. Jsou podvodné případy spojeny s určitými tématy? (se štítky)
Detekce podvodů v Pythonu

Témata je třeba vizualizovat

import pyLDAvis.gensim
lda_display = pyLDAvis.gensim.prepare(ldamodel, corpus, 
                         dictionary, sort_topics=False)
pyLDAvis.display(lda_display)
Detekce podvodů v Pythonu

Zkoumání rozdílů mezi tématy

Detekce podvodů v Pythonu

Přiřazení témat k původním datům

def get_topic_details(ldamodel, corpus):
    topic_details_df = pd.DataFrame()
    for i, row in enumerate(ldamodel[corpus]):
        row = sorted(row, key=lambda x: (x[1]), reverse=True)
        for j, (topic_num, prop_topic) in enumerate(row):
            if j == 0:  # => dominant topic
                wp = ldamodel.show_topic(topic_num)
                topic_details_df = topic_details_df.append(pd.Series([topic_num, prop_topic]), 
                                                                      ignore_index=True)
    topic_details_df.columns = ['Dominant_Topic', '% Score']
    return topic_details_df
Detekce podvodů v Pythonu

Přiřazení témat k původním datům

contents = pd.DataFrame({'Original text':text_clean})
topic_details = pd.concat([get_topic_details(ldamodel,
                           corpus), contents], axis=1)
topic_details.head()
    Dominant_Topic    % Score     Original text
0    0.0              0.989108    [investools, advisory, free, ...
1    0.0              0.993513    [forwarded, richard, b, ...
2    1.0              0.964858    [hey, wearing, target, purple, ...
3    0.0              0.989241    [leslie, milosevich, santa, clara, ...
Detekce podvodů v Pythonu

Pojďme procvičovat!

Detekce podvodů v Pythonu

Preparing Video For Download...