[PYTHON] Algorithme de détection de spam camouflé

Aperçu

Logo

Suite de Algorithme permettant de trouver des critiques de spam complétés Pour trouver des critiques de spam sur les sites d'achats en ligne et de critiques de restaurants Nous avons préparé un algorithme FRAUDAR qui trouve les critiques de spam qui camouflent les critiques ordinaires.

FRAUDAR est l'algorithme primé du meilleur article à la Conférence internationale ACM SIGKDD 2016 sur la découverte des connaissances et l'exploration de données (KDD 2016) (http://www.kdd.org/kdd2016/) et a été mis en œuvre par les auteurs. Est ouvert au public](https://www.andrew.cmu.edu/user/bhooi/projects/fraudar/index.html).

Cette fois, nous faciliterons l'analyse de Ensemble de données pour l'évaluation de l'algorithme de détection des critiques de spam, etc. Algorithme de découverte des critiques de spam complices Nous avons créé l 'Interface commune à (https://qiita.com/jkawamoto/items/d2284316cc37cd810bfd).

Comment utiliser

Le wrapper FRAUDAR rgmining-fraudar créé cette fois est maintenant dans PyPI. Puisqu'il est enregistré, il peut être installé avec la commande pip.

$ pip install --upgrade rgmining-fraudar

Un package appelé fraudar a été ajouté et furadar.ReviewGraph contient une classe de graphes qui implémente cet algorithme. Le constructeur de la classe ReviewGraph reçoit un paramètre indiquant combien de types de motifs de camouflage sont considérés comme une option et un sous-algorithme utilisé en interne, mais je pense que seul le premier doit être donné en fonction de l'ensemble de données (les deux valeurs par défaut conviennent).

import fraudar

#Par exemple, considérons un camouflage à 10 motifs.
n = 10 
graph = fraudar.ReviewGraph(n)

Ajoutez ensuite des réviseurs, des produits et des avis au graphique. Il peut être ajouté de la même manière que l'exemple dans Algorithme pour trouver des critiques de spam collusés.

reviewers = [graph.new_reviewer("reviewer-{0}".format(i)) for i in range(2)]
products = [graph.new_product("product-{0}".format(i)) for i in range(3)]
graph.add_review(reviewers[0], products[0], 0.2)
graph.add_review(reviewers[0], products[1], 0.9)
graph.add_review(reviewers[0], products[2], 0.6)
graph.add_review(reviewers[1], products[0], 0.1)
graph.add_review(reviewers[1], products[1], 0.7)

Il devient. Les réviseurs et les produits sont créés en utilisant les méthodes new_reviewer, new_product de ReviewGraph. La révision est ajoutée par la méthode ʻadd_review`.

Pour exécuter l'algorithme, appelez la méthode ʻupdate` une seule fois.

graph.update()

Enfin, le résultat de l'analyse est acquis. Le réviseur retourné par la méthode new_reviewer a un attribut de ʻanomalous_score`. Cet attribut est défini sur 1 si le réviseur est déterminé comme étant singulier (spammeur), sinon sur 0.

for r in graph.reviewers:
    print(r.name, r.anomalous_score)

De plus, l'objet produit renvoyé par la méthode new_product a un attribut appelé summary. Cette valeur renvoie la moyenne des avis des évaluateurs qui n'ont pas été jugés singuliers.

for p in graph.products:
    print(p.name, p.summary)

Résumé

À la suite de l'algorithme Fraud Eagle pour trouver des critiques de spam collusés, nous avons créé un wrapper pour l'algorithme FRAUDAR. Les deux peuvent gérer ensemble de données pour l'évaluation de l'algorithme de détection des critiques de spam [API commune](https://rgmining.github.io/dataset- io / modules / dataset_io.html # graph-interface) est fourni, vous pouvez donc facilement comparer le comportement.

Recommended Posts

Algorithme de détection de spam camouflé
Ensemble de données pour l'évaluation de l'algorithme de détection des réviseurs de spam
Algorithme pour trouver des critiques de spam complices