2012-10-10 2 views
3

J'ai quelques difficultés à comprendre exactement comment on devrait implémenter le perceptron structuré pour l'étiquetage de la partie vocale. Pourriez-vous s'il vous plaît confirmer ou corriger mes pensées, et/ou combler les lacunes manquantes? Donc, fondamentalement, le perceptron structuré est une variante du perceptron multiclasse, à l'exception de la façon dont vous implémentez la collecte du meilleur score. Une hypothèse de Markov du premier ordre est faite, indiquant que l'index de séquence actuel dépend seulement de l'index précédent. L'entrée est une séquence entière de mots, au lieu d'un seul mot comme dans un cas non structuré, ainsi qu'un vecteur de toutes les étiquettes possibles (y). La fonction f (x, y) renvoie une séquence d'étiquettes devinée pour la séquence de mots donnée.Comprendre le perceptron structuré pour le marquage POS

Dans un perceptron multiclasses, l'obtention du meilleur score est facilement réalisée par itération, car nous ne traitons que la classification d'une étiquette en une seule instance. Le problème de la classification de séquences entières est que cela entraîne une croissance exponentielle du nombre d'étiquettes possibles. C'est là que l'algorithme de Viterbi est nécessaire, qui trouve de manière récursive le meilleur chemin en utilisant deux ensembles de fonctionnalités; un pour déterminer la probabilité qu'une étiquette POS donnée soit attribuée à un certain mot, et l'autre pour déterminer la probabilité qu'une certaine étiquette POS arrive directement après une autre étiquette POS. Le score de chacun de ces ensembles de caractéristiques est multiplié par un poids unique pour chaque état. Si le chemin choisi est faux, chaque poids dans les états du mauvais chemin est puni, et les poids dans le chemin correct sont attribués.

C'est à peu près la distance que j'ai (j'espère) comprise. Mes plus grandes questions en ce moment sont de savoir comment les entités sont structurées (la séquence de tags précédente fait-elle partie des fonctionnalités?) Et comment implémenter l'algorithme de Viterbi. De plus, existe-t-il une implémentation d'un taggeur POS utilisant un perceptron structuré partout où je pourrais analyser (de préférence en Java)?

Je serais très reconnaissant si vous pouviez me donner quelques conseils!

Répondre

3

Je suppose que vous avez déjà lu le original paper, mais laissera le lien ici juste pour l'exhaustivité.

Votre intuition est fondamentalement correcte. Concernant les fonctionnalités, tant que vous vous en tenez à l'algorithme de Viterbi, vous devez vous limiter aux locales. Ceux-ci comprennent généralement une fenêtre de mots (5 mots dans le document ci-dessus, je crois), un ou plusieurs des tags POS précédents et/ou des combinaisons de ceux-ci. L'implémentation de l'algorithme de Viterbi dépendra un peu du choix des fonctionnalités. En général, ce dernier est un exercice relativement simple dans la programmation dynamique, mais vous pouvez également google jusqu'à un certain nombre d'implémentations. Par exemple. this project prétend contenir une implémentation de l'algorithme décrit dans l'article ci-dessus.

Questions connexes