Auteur | mczhao, responsable R&D senior de Ctrip, se concentre sur le domaine de la technologie de traitement du langage naturel.
Avec l'émergence continue de points chauds de consommation et de nouveaux mèmes de célébrités sur Internet, certains mots qui n'ont jamais été vus auparavant apparaissent souvent dans les tâches PNL sur les plateformes de commerce électronique. Ces mots ne font pas partie du vocabulaire existant du système et sont appelés « mots non enregistrés ».
D'une part, le manque de mots dans le lexique affecte la qualité de segmentation des mots de certains segmenteurs de mots basés sur le lexique, ce qui affecte indirectement la qualité du rappel de texte et des invites de surbrillance, c'est-à-dire la précision de la recherche de texte de l'utilisateur. et la qualité des résultats de recherche.
D'un autre côté, dans l'algorithme d'apprentissage profond PNL traditionnel BERT/Transformer, etc., les vecteurs de mots sont souvent utilisés à la place des vecteurs de mots lors du traitement du chinois. En théorie, l'effet de l'utilisation de vecteurs de mots devrait être meilleur, mais en raison des mots non enregistrés, l'effet de l'utilisation de vecteurs de mots dans la pratique est meilleur. Si le vocabulaire est plus complet, l'effet de l'utilisation de vecteurs de mots sera meilleur que celui de l'utilisation de vecteurs de mots.
Pour résumer, la découverte de nouveaux mots est un problème que nous devons résoudre en ce moment.
Il existe déjà des solutions relativement matures à ce problème de découverte de nouveaux mots chinois dans l'industrie. L'entrée est un corpus, et après avoir segmenté ces textes dans NGram, des segments candidats sont générés. Calculez certaines caractéristiques statistiques de ces fragments, puis déterminez si ce fragment est un mot basé sur ces caractéristiques.
L'approche dominante de l'industrie consiste à compter et à observer ces trois indicateurs : popularité, cohésion et richesse des personnages adjacents gauche et droit. Il existe de nombreux articles décrivant ces trois indicateurs sur Internet. Voici une brève introduction Pour plus de détails, vous pouvez vous référer aux deux nouveaux articles sur la découverte de mots de Hello NLP et Smooth NLP.
Utilisez la fréquence des mots pour exprimer la popularité. Comptez les temps d'occurrence de tous les fragments dans tous les corpus, et ces fragments à haute fréquence constituent souvent un seul mot.
Utilisez des informations mutuelles ponctuelles pour mesurer la cohésion :
Par exemple, nous déterminons si Hanting est un mot, log(P("Hanting") /P("汉")P("tribunal")). La probabilité que Hanting devienne un mot est directement proportionnelle à la popularité de « Hanting » et inversement proportionnelle à la popularité des mots « Han » et « ting ». Ceci est facile à comprendre. Par exemple, le caractère le plus courant « 的 » dans les caractères chinois. La probabilité de faire correspondre n'importe quel caractère chinois avec « 的 » est très élevée, mais cela ne signifie pas que « x de » ou « 的x ». est le même mot. Ici, la popularité du seul mot «的» joue un rôle inhibiteur.
L'entropie des voisins gauche et droit représente la richesse des caractères gauche et droit. L'entropie d'adjacence gauche et droite est le caractère aléatoire de la distribution des mots apparaissant à gauche ou à droite du fragment de mot candidat. Vous pouvez séparer l’entropie de gauche et l’entropie de droite, ou vous pouvez combiner les deux entropies en un seul indicateur.
Par exemple, la popularité et la cohésion du segment « Shangri-La » sont très élevées, et la popularité et la cohésion du sous-segment correspondant « Shangri-La » sont également très élevées, mais parce que "Shangri-La" Dans la plupart des cas, le mot "La" apparaît après "里". Son entropie de contiguïté droite est très faible, ce qui inhibe la formation de ses mots. On peut juger que les trois caractères "shangri" ne peuvent pas former un mot. seul.
Le problème de la méthode classique est qu'elle nécessite un réglage manuel des paramètres de seuil. Une fois qu'un expert en PNL a compris la distribution de probabilité des fragments dans le corpus actuel, il combine ces indicateurs à l'aide de formules ou les utilise indépendamment, puis définit un seuil comme norme de jugement. Les résultats du jugement utilisant cette norme peuvent également atteindre une grande précision.
Mais la distribution de probabilité ou la fréquence des mots n'est pas statique. À mesure que le corpus devient de plus en plus abondant, ou que la popularité pondérée du corpus (généralement la popularité du produit correspondant) fluctue, les paramètres et les seuils de la formule sont fixés par les experts. des changements sont également nécessaires. Cela gaspille beaucoup de main d’œuvre et transforme les ingénieurs en intelligence artificielle en de simples peaufineurs.
Les trois indicateurs des algorithmes existants mentionnés ci-dessus dans l'industrie n'ont qu'une seule caractéristique source fondamentale, à savoir le mot fréquence. Dans les méthodes statistiques, certaines statistiques simples et clés sont généralement affichées sous forme d'images, telles que des histogrammes, des boîtes à moustaches, etc. Même s'il n'y a pas d'intervention de modèle, les gens peuvent toujours prendre les bonnes décisions en un coup d'œil. Vous pouvez découper le corpus en fragments de longueur limitée, normaliser la fréquence des mots des fragments entre 0 et 255 et le mapper dans une matrice bidimensionnelle. Les lignes représentent les caractères de début et les colonnes représentent les caractères de fin. est un fragment, et le pixel La luminosité du point est la popularité du fragment de mot candidat.
L'image ci-dessus est le diagramme de distribution de probabilité de fréquence des mots de la phrase courte "Pudong Airport Ramada Hotel". Nous avons été agréablement surpris de constater qu'à l'œil nu, nous pouvons distinguer approximativement des blocs de triangles rectangles isocèles plus brillants, tels que : « Pudong », « Aéroport de Pudong », « Aéroport », « Hôtel Ramada », etc. Ces blocs peuvent déterminer que le fragment correspondant est le mot dont nous avons besoin.
En observant la carte de distribution de probabilité de fréquence des mots, nous pouvons transformer un problème de segmentation de phrases courtes en un problème de segmentation d'images. Les premiers algorithmes de segmentation d'images sont similaires aux nouveaux algorithmes de découverte de mots mentionnés ci-dessus. Ils sont également des algorithmes basés sur des seuils pour détecter les changements de niveaux de gris. Avec le développement de la technologie, les algorithmes d'apprentissage en profondeur sont désormais généralement utilisés, et le plus célèbre est le. Algorithme de segmentation d'images U-Net.
La première moitié d'U-Net utilise le sous-échantillonnage convolutif pour extraire les caractéristiques de plusieurs couches de granularités différentes, et la seconde moitié est suréchantillonnée pour concaténer ces caractéristiques à la même résolution, et enfin via une couche de connexion complète +Softmax obtient des résultats de classification au niveau des pixels.
La segmentation de la carte de distribution de probabilité de fréquence des mots est similaire à la segmentation du graphique. Les deux parties sont découpées avec des positions adjacentes et des niveaux de gris similaires. Par conséquent, pour segmenter des phrases courtes, vous pouvez également vous référer à l’algorithme de segmentation d’images et utiliser un réseau entièrement convolutif. La raison pour laquelle nous utilisons la convolution est que, que nous coupions des phrases courtes ou des images, nous accordons plus d'attention aux informations locales, c'est-à-dire aux pixels proches de la pointe. La raison pour laquelle nous utilisons des réseaux multicouches est que le regroupement multicouche peut montrer le jugement de seuil des différentes caractéristiques des couches. Par exemple, lorsque nous découpons le terrain de la carte, nous devons prendre en compte non seulement la pente (dérivée première/différence), mais également la. changement de pente (deuxième ordre). Dérivée/différence), les deux sont seuillés respectivement et la méthode de combinaison n'est pas une simple pondération linéaire mais un réseau série.
Pour le nouveau scénario de découverte de mots, nous concevons l'algorithme suivant :
Par rapport à U-Net, il existe les différences suivantes :
1) Le sous-échantillonnage et le sur-échantillonnage sont abandonnés, La raison est que les phrases courtes généralement utilisées pour la segmentation sont relativement courtes et la distribution de fréquence des mots. La résolution de l'image n'est pas élevée, le modèle est donc simplifié.
2) U-Net est un tri-catégorie (bloc 1, bloc 2, sur le bord), Cet algorithme ne nécessite que deux catégories (que le pixel soit un mot). Ainsi, les résultats de sortie finaux sont également différents. U-Net génère des blocs continus et des lignes de séparation, et nous avons seulement besoin de savoir si un certain point est positif.
L'image ci-dessous est le résultat prédit par le modèle après avoir entraîné le modèle. On peut voir que dans les résultats de sortie, les pixels correspondant aux trois mots « Shanghai » (ligne supérieure, colonne mer), « Hongqiao » et « Business District » ont été identifiés.
Utilisez le modèle formé et saisissez les noms des points de repère dans la base de données des points de repère de Ctrip. Certains nouveaux mots peuvent être automatiquement segmentés et découverts, comme le montre l'image ci-dessous. Bien qu'il existe quelques cas problématiques, la précision globale. ça va.
Après avoir importé ces mots dans le thésaurus, la précision de la segmentation des mots de recherche augmente et la couverture du thésaurus des résultats de la segmentation des mots augmente. Étant donné que la segmentation des mots de recherche a généralement tendance à sur-rappeler et à éliminer les rappels manqués, l'industrie a une approche plus radicale du rappel par segmentation de mots, et la précision est généralement résolue par un tri ultérieur. Par conséquent, la précision de la segmentation des mots s’est améliorée, mais aux yeux des utilisateurs, la précision des résultats de recherche ne s’est pas améliorée de manière significative. Cependant, il peut résoudre certains problèmes de mise en évidence incorrecte causés par des erreurs de segmentation de mots.
Si vous souhaitez explorer le fonctionnement du modèle, vous pouvez visualiser le noyau de convolution de la couche intermédiaire. Nous simplifions d'abord le nombre de noyaux de convolution dans la couche convolutive du modèle de 4 à 1. Après l'entraînement, affichez la couche intermédiaire via l'API de TensorFlow : model.get_layer('Conv2').__dict__. Nous avons constaté que le noyau de convolution de la couche Conv2 est le suivant :
Vous pouvez voir que la première et la deuxième lignes ont des effets opposés sur le modèle, correspondant à la ligne précédente du pixel moins le courant rangée. Différence (avec poids), si la différence en niveaux de gris est plus grande, la chaîne représentée par ce pixel est plus susceptible d'être un mot.
Vous pouvez également voir que la valeur absolue de 0,04505884 dans la première ligne et la deuxième colonne est relativement petite, probablement parce que les paramètres positifs de la première ligne moins la deuxième ligne et les paramètres négatifs de la troisième colonne moins la deuxième Les colonnes s'annulent.
Cet article décrit un modèle de réseau entièrement convolutif avec une structure très simple, et il y a encore beaucoup de place à l'amélioration.
Tout d'abord, élargissez la plage de sélection des fonctionnalités. Par exemple, la fonctionnalité d'entrée dans cet article est uniquement la fréquence des mots. Si l'entropie de contiguïté gauche et droite est également incluse dans la fonctionnalité d'entrée, l'effet de segmentation sera plus précis.
La seconde est d'augmenter la profondeur du réseau. Grâce à l'analyse du modèle, nous avons constaté que la première couche de convolution sert principalement à traiter les cas causés par des pixels remplis de 0. Il n'y a qu'une seule couche de convolution qui se concentre réellement sur la chaleur réelle. S'il s'agit d'un noyau de convolution 3x3, seul le premier ordre est visible pour le résultat de différence, la deuxième ligne et la deuxième colonne avant et après le pixel actuel ne sont pas prises en compte. Vous pouvez étendre de manière appropriée la taille du noyau de convolution ou approfondir le réseau pour agrandir le champ de vision du modèle. Mais l’approfondissement du réseau entraînera également le problème du surapprentissage.
Enfin, ce modèle peut non seulement être utilisé pour compléter le vocabulaire afin d'améliorer l'effet de segmentation des mots, mais peut également être directement utilisé comme référence pour la segmentation des mots. Ce modèle peut être appliqué à la fois dans le rappel du mot candidat et dans le mot. étapes de notation du chemin de segmentation du processus de segmentation de mots. Les résultats de prédiction du modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!