Question

binarisation est l'acte de transformer les caractéristiques colorées d'une entité dans des vecteurs de nombres, des vecteurs les plus souvent binaires, de faire de bons exemples pour les algorithmes de classificateur.

Si nous où binariser la phrase « Le chat a mangé le chien », nous pourrions commencer par attribuer chaque mot un identifiant (par exemple cat-1, mangé-2, le 3, le chien-4), puis il suffit de remplacer le mot par son ID donner le vecteur <3,1,2,3,4>.

Compte tenu de ces ID on peut aussi créer un vecteur binaire en donnant à chaque mot quatre emplacements possibles, et le réglage de la fente correspondant à un mot spécifique à un, donnant le vecteur <0,0,1,0,1,0, 0,0,0,1,0,0,0,0,0,1>. Cette dernière méthode est, pour autant que je sache, est communément appelé le sac-de-mots-méthode.

Maintenant, pour ma question, quel est le meilleur méthode de binarisation en matière de décrire les caractéristiques de traitement du langage naturel en général, et en fonction de transition l'analyse syntaxique dépendance (avec Nivres algorithme) en particulier?

Dans ce contexte, nous ne voulons pas coder toute la phrase, mais plutôt l'état actuel de l'analyse syntaxique, par exemple le mot haut sur la pile en le premier mot dans la file d'attente d'entrée. Étant donné que l'ordre est très pertinent, ce qui exclut le sac-de-méthode des mots.

meilleur , je fais référence à la méthode qui rend les données les plus intelligible pour le classificateur, sans utiliser la mémoire inutile. Par exemple, je ne veux pas un mot bigramme à utiliser 400 millions de fonctionnalités pour 20000 mots uniques, si seulement 2% des bigrammes existent réellement.

Depuis la réponse est également en fonction du classificateur particulier, je suis surtout intéressé par les modèles d'entropie maximale (de liblinear), les machines à vecteurs (de libsvm) et Perceptron, mais les réponses applicables à d'autres modèles sont également les bienvenus.

Était-ce utile?

La solution

Ceci est en fait une question très complexe. La première décision que vous devez faire est de savoir si lemmatiser vos jetons d'entrée (vos mots). Si vous faites cela, vous réduisez considérablement votre nombre de type, et votre analyse de la syntaxe devient beaucoup moins compliqué. Cependant, il faut beaucoup de travail à lemmatiser un jeton. Maintenant, dans un langage informatique, cette tâche se réduit considérablement, comme la plupart des langues distinctes des mots-clés ou noms de variables avec un ensemble bien défini de symboles, comme des espaces ou une période ou tout le reste.

La deuxième décision cruciale est ce que vous allez faire avec le post-facto des données. La méthode « sac-de-mots », sous la forme binaire que vous avez présenté, ne tient pas compte l'ordre des mots, ce qui est tout à fait bien si vous faites d'un résumé de texte ou peut-être une recherche de style Google où vous ne se soucient pas les mots apparaissent, aussi longtemps qu'ils apparaissent. Si, d'autre part, vous construisez quelque chose comme un compilateur ou analyseur, l'ordre est très important. Vous pouvez utiliser l'approche symbolique vecteur (comme dans votre deuxième paragraphe), ou vous pouvez étendre le sac de mots se rapprochent de telle sorte que chaque entrée non nul dans le sac-de-mots vecteur contient la position d'index linéaire du jeton dans la phrase.

Enfin, si vous allez à la construction analyser les arbres , il y a des raisons évidentes pourquoi vous voulez aller avec l'approche symbolique vecteur, car il est un grand tracas pour maintenir ids sous-expression pour chaque mot dans le vecteur sac-de-mots, mais très facile à faire « sous-vecteurs » dans un jeton -vecteur. En fait, Eric Brill a utilisé une séquence id jeton pour son partie du discours tagger , ce qui est vraiment bien.

Vous permettez que je demande à ce que la tâche spécifique que vous travaillez?

Autres conseils

  

binarisation est l'acte de   la transformation de caractéristiques colorées de   une entité dans des vecteurs de nombres,   le plus souvent des vecteurs binaires, à faire   de bons exemples pour classificateur   algorithmes.

Je suis la plupart du temps rencontré des caractéristiques numériques qui prennent des valeurs entre 0 et 1 (non binaire que vous décrivez), ce qui représente la pertinence de la caractéristique particulière dans le vecteur (entre 0% et 100%, où 1 représente 100%). Un exemple courant de cette situation sont tf-idf vecteurs:. dans le vecteur représentant un document (ou phrase), vous avez une valeur pour chaque terme dans le vocabulaire entier qui indique la pertinence de ce terme pour le document représenté

Comme Mike a déjà dit dans sa réponse , c'est un problème complexe dans un grand champ. En plus de ses pointeurs, vous trouverez peut-être utile de se pencher sur certains la recherche d'informations techniques comme vecteur modèle spatial , vecteur classification de l'espace et l'indexation sémantique latente comme points de départ. En outre, le champ de mot désambiguïsation traite beaucoup de les problèmes de représentation fonctionnalite en PNL.

[Pas une réponse directe] Tout dépend de ce que vous essayez d'analyser et processus, mais pour un court traitement général phrase humaine (par exemple IVT), une autre méthode consiste à utiliser des réseaux de neurones pour apprendre les modèles. Cela peut être très acurate pour vocubularies assez petite

scroll top