[PYTHON] Manipuler des modèles de sujet ~ Modèle de sujet interactif ~

Mise en œuvre du modèle thématique interactif et de ses résultats

introduction

Il existe un concept appelé modèle thématique en tant que méthode d'extraction du contenu d'un ensemble de documents dans la technologie du traitement du langage naturel.

Parmi eux, il existe un modèle de sujet interactif comme méthode de manipulation intentionnelle des mots qui apparaissent dans un sujet.

Par conséquent, dans cet article, nous allons implémenter le modèle de sujet interactif et vérifier son effet.

Méthode

Modèle de sujet

Dans le modèle de sujet, à partir de l'ensemble de documents, la probabilité qu'un sujet (par exemple, un article de journal contient des sujets tels que la politique et le sport) apparaisse, la distribution du sujet $ \ theta $, et comment dans ce sujet C'est une méthode pour estimer la distribution des mots $ \ phi $ pour voir si le mot est facile à sortir.

L'explication du modèle de sujet est http://qiita.com/GushiSnow/items/8156d440540b0a11dfe6 http://statmodeling.hatenablog.com/entry/topic-model-4 Veuillez vous référer aux matériaux pour une compréhension facile.

Latent Dirichlet Allocation(LDA)

Parmi les différents modèles de sujets, l'allocation de dirichlet latent (LDA) est le plus connu.

LDA considère qu'il y a plusieurs sujets (politique, actualités, etc.) dans un même document (article de journal), et chaque sujet a une distribution de mots différente.

Le modèle graphique est comme indiqué dans la figure ci-dessous

LDA.png Soit dit en passant, $ \ theta $ est la distribution des sujets, $ \ phi $ est la distribution des mots, $ z $ est le sujet assigné au mot dans le document, $ v $ est le mot dans le document, $ N $ est le nombre de mots dans le document, $ D $ est le nombre de documents, $ K $ est le nombre de sujets, $ \ alpha $ et $ \ beta $ sont des hyperparamètres.

L'échantillonnage Gibbs et les baies variantes peuvent être utilisés pour calculer le LDA, mais est-ce que l'échantillonnage Gibbs (CGS) est le plus connu? Est.

Le pseudo code pour calculer le LDA avec l'échantillonnage de Gibbs réduit est le suivant


N_dk = 0  #Nombre de mots du document d auxquels le thème k est attribué
N_kv = 0  #Le nombre de fois où le mot v apparaît dans le sujet k
N_k = 0   #Nombre de mots auxquels le thème k est attribué
d = 1, …, D  #Numéro de document
k = 1, …, K  #Numéro de sujet
v = 1, …, V  #Numéro du dictionnaire

initialize(z_dn)  #Initialiser aléatoirement le sujet du nième mot dans le document d

repeat
  for d = 1, …, D do
    for n = 1, …, N_d do # N_d est le nombre de mots utilisés dans le document d

      N_d[k=z_dn] -= 1  #Soustraire du compte
      N_[k=z_dn][v=w_n] -= 1
      N_[k=z_dn] -= 1

      for k = 1, …, K do
        cal(p(z_dn = k)) #Calculez la probabilité que le sujet k soit attribué au nième mot du document d
      endfor

      z_dn ~ Categorical(p(z_dn))  # z_Échantillonnage de sujets DN

      N_d[k=z_dn] += 1  #Compter les nouveaux sujets attribués
      N_[k=z_dn][v=w_n] += 1
      N_[k=z_dn] += 1

    endfor
  endfor
jusqu'à ce que la condition finale soit remplie

La probabilité de devenir $ p (z_ {dn} = k) $ dans le pseudo-code est calculée comme suit.

p(z_{dn}=k) \propto (N_{dk}+\alpha)\frac{N_{kw_{dn}}+\beta}{N_k+\beta V}

Peut être calculé avec.

Interactive Topic Model(ITM)

Quand je calcule un sujet avec LDA, je veux parfois que ce mot et ce mot soient le même sujet.

Vous pouvez résoudre ce problème en contraignant que le mot A et le mot B doivent provenir du même sujet.

C'est le modèle de sujet interactif (ITM) http://dl.acm.org/citation.cfm?id=2002505

Pour donner une explication sensuelle, ITM considère les mots restreints comme un seul mot et répartit uniformément la probabilité d'apparition des mots restreints, facilitant ainsi l'apparition des mots restreints sur le même sujet. スクリーンショット 2017-02-16 16.12.51.png

Le calcul est simple, et la formule de calcul de $ p (z_ {dn} = k) $ dans LDA est réécrite comme suit.

p(z_{dn} = k) \propto \begin{cases}
(N_{dk}+\alpha)\frac{N_{kw_{dn}}+\beta}{N_k+\beta V} \;\;\;\;(w_{dn} \notin \Omega)\\
(N_{dk}+\alpha)\frac{N_{k\Omega}+|\Omega|\beta}{N_k+\beta V}\frac{W_{k\Omega w_{dn}}+\eta}{W_{k \Omega} + |\Omega|\eta} \;\;\;\;(w_{dn} \in \Omega)

\end{cases}

cependant,\OmegaEst une contrainte|\Omega|Est le nombre de mots contenus dans la contrainte,N_{k\Omega}Est un sujetkContrainte avec\OmegaLe nombre de fois qui est sorti,W_{k\Omega w_{dn}}Est un sujetkに割り当てられた制約\OmegaMots dansw_{dn}Représente le nombre de fois qui apparaît.

En d'autres termes, si le mot $ w_ {dn} $ n'est pas inclus dans la contrainte $ \ Omega $, utilisez la même formule que LDA, et s'il est inclus, utilisez la formule ci-dessous pour calculer p (z_ {dn} = k). ..

Expérience

Dans l'expérience, la précision de l'ITM sera vérifiée.

base de données

Un corpus vivant a été utilisé pour l'ensemble de données. http://bookmarks2022.blogspot.jp/2015/06/livedoor.html

code

Code ITM ici https://github.com/kenchin110100/machine_learning/blob/master/sampleITM.py

Résultat expérimental

Nombre fixe de sujets $ K = 10 $, $ \ alpha = 0,1 $, $ \ beta = 0,01 $, $ \ eta = 100 $

Tout d'abord, 50 itérations sans restrictions (c'est-à-dire la même chose qu'un LDA normal)

Le tableau ci-dessous montre les principaux mots qui apparaissent dans chaque sujet.

Thème 1 Thème 2 Thème 3 Thème 4 Thème 5
une fonction App Femme l'oeuvre Japon
Libération Alimenté par le golf films mise à jour
mise à jour écran moi même 153 Relation
article smartphone Masculin 181 monde
Utilisation Présentation mariage réalisé par Populaire
Digi Correspondance Beaucoup Libération films
Relation Max Co., Ltd. Adversaire 3 http://
smartphone Android travaux 96 moi même
Logiciel afficher Noël 13 sujet
utilisateur année 2012 Les filles Livre sensationnel

Vous pouvez voir certains sujets avec cela seul.

Ensuite, contraignez les mots bleus du tableau afin qu'ils soient sur le même sujet. Tournez encore 50 itérations.

Thème 1 Thème 2 Thème 3 Thème 4 Thème 5
Libération App Femme 153 films
Utilisation Alimenté par moi même 181 Japon
une fonction smartphone le golf 3 l'oeuvre
mise à jour Présentation Masculin 96 Libération
article Correspondance mariage 13 monde
un service bien Beaucoup 552 réalisé par
Relation Max Co., Ltd. Adversaire 144 Relation
Digi Android travaux 310 Une fonction spéciale
Logiciel afficher Noël 98 http://
information année 2012 Bien héros sensationnel

Les mots en bleu avec des restrictions apparaissent en commun dans le Thème 5.

Résumé

Le modèle de sujet interactif (ITM) a été utilisé pour contraindre les mots et estimer la distribution des sujets.

Le contenu publié semble bon à première vue, mais en réalité, il est le résultat de nombreux essais et erreurs ...

ITM a également un journal, donc si vous implémentez ce contenu, il peut être plus précis.

Recommended Posts

Manipuler des modèles de sujet ~ Modèle de sujet interactif ~
Création d'une application interactive à l'aide d'un modèle de rubrique
Implémentation du modèle de sujet d'espace continu
Classification des Pokémon par modèle de sujet