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!