Dans cet article, je présenterai les grandes lignes du fait que ce type de travail est effectué lors du traitement du langage naturel.
L'analyse morphologique consiste à découper des phrases en mots. Recherchez la partie du mot et renvoyez le formulaire d'utilisation au formulaire d'origine. Par exemple, l'expression «passer un examen qui correspond à votre taille» est analysée comme suit.
Hauteur nez, général, *, *, *, *, hauteur, minotake, minotake Ni Assistance, Case Assistance, Général, *, *, *, Ni, Ni, Ni Verbe correspondant, indépendance, *, *, rappel de ligne cinq dan / wa, connexion continue, correspondance, ah, ah Ta verbe auxiliaire, *, *, *, ta spéciale, forme de base, ta, ta, ta Nomenclature des examens, Connexion Sahen, *, *, *, *, Examen, Juken, Juken
MeCab est utilisé pour l'analyse morphologique. https://taku910.github.io/mecab/ Ceci est largement utilisé, mais il présente quelques faiblesses dans les nouveaux mots et les termes techniques car il divise les mots plus que nécessaire, comme le remplacement de «examen nutritionniste administratif» par «gestion / nutrition / personne / examen». Pour les nouveaux mots, un dictionnaire fréquemment mis à jour appelé mecab-ipadic-NEologd a été publié pour compenser les faiblesses de MeCab. https://github.com/neologd/mecab-ipadic-neologd En plus de cela, je crée un nouveau dictionnaire de mots à analyser localement et je l'utilise en ajoutant diverses choses.
Je voudrais utiliser JUMAN ++ pour sa grande précision. http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++ Lorsque le «gouvernement étranger» est traité par MeCab, il devient «étranger / ginseng / gouvernement», mais dans JUMAN ++, il est analysé comme «étranger / gouvernement». La fonctionnalité est que vous pouvez améliorer vos compétences d'analyse par l'apprentissage automatique. Cependant, je n'ai pas pu résoudre l'erreur lorsque j'ai construit JUMAN ++ avec boost. Je me demande si MeCab sera utilisé tel quel.
Pour le texte contenant des balises HTML, vous devez supprimer les balises. En plus de cela, si vous n'effectuez pas de prétraitement avant d'appliquer à l'analyse morphologique, ① et i apparaîtront comme des mots-clés fréquents, et les mots ayant la même signification seront agrégés séparément.
C'est une porte démoniaque. L'étude des caractères faciaux est en fait une étude profonde avec des décennies d'histoire. Si vous êtes intéressé, veuillez lire l'article spécial dans le Journal of the Society of Artificial Intelligence Vol.32 No. 3 (2017/05). https://www.ai-gakkai.or.jp/vol32_no3/ J'ai pris correctement le dictionnaire des caractères du visage et l'ai ajouté à mon dictionnaire pour rendre le thé boueux, mais le taux de couverture n'est pas élevé. Selon le texte à analyser, il peut être nécessaire de travailler de front avec l'emblème.
Il s'agit d'un processus pour empêcher des mots similaires ayant la même signification d'être agrégés séparément.
Concernant le traitement des numéros, cela peut dépendre du type de document. Dans un contexte normal, vous pouvez supprimer tous les numéros. En revanche, pour les records sportifs et autres éléments où les nombres sont des mots-clés, il est préférable de traiter les nombres comme des nombres. Dans ce cas, le problème est que MeCab divise le nombre avec la virgule décimale en différents mots tels que la partie entière, la partie période et la partie fraction. Dans ce cas, il est nécessaire d'effectuer un processus pour restaurer la valeur numérique après avoir effectué l'analyse morphologique à la fois.
Un mot vide est un mot qui apparaît dans n'importe quel document, tel que «je» ou «est». J'exclus les mots non indépendants et les mots qui apparaissent fréquemment dans le document à analyser comme des mots vides.
Les formules chimiques, les formules mathématiques et physiques, les URL, les codes de produit, les numéros de modèle, etc. doivent être exclus de l'analyse des phrases. Par exemple, si vous donnez simplement la formule chimique du phénol (C6H5OH) à MeCab, ce sera comme ça.
C substantif,Général,*,*,*,*,*
6 nomenclature,nombre,*,*,*,*,*
H substantif,Général,*,*,*,*,*
5 nomenclature,nombre,*,*,*,*,*
OH substantif,Nomenclature propriétaire,Organisation,*,*,*,*
Cela ne peut pas du tout être reconnu comme phénol. De plus, il est souvent inutile d'analyser les phrases anglaises et le code de programme en utilisant la même méthode que le japonais.
Vectorisez le document en utilisant les mots contenus dans le document comme indices (Doc2Vec). Des documents similaires doivent avoir des vecteurs similaires. Doc2Vec est inclus dans une bibliothèque appelée gensim. https://radimrehurek.com/gensim/
Une fois transformé en vecteur, il est possible de combiner des documents similaires. Il existe également une méthode appelée analyse thématique, qui sera décrite plus loin, pour rassembler des documents similaires. Dans certains cas, l'analyse thématique et la vectorisation sont utilisées ensemble. J'aimerais aussi faire divers essais et erreurs ici.
Il classe automatiquement les documents qui ont été analysés morphologiquement et les divise en un nombre spécifié de sujets. Cela peut également être fait avec gensim. gensim devrait avoir peur.
LDA(Latent Dirichlet Allocation): Si vous donnez un groupe de documents, le sujet sera divisé dans le groupe de sujets spécifié. Il est difficile de savoir combien de problèmes doivent être divisés. Il y a des indicateurs comme la perplexité et la cohérence, mais quand je les ai utilisés, ils ne ressemblaient pas à ça. J'ai essayé de mettre en évidence la perplexité et la cohérence en utilisant le package topicmodels de R. https://cran.r-project.org/web/packages/topicmodels/index.html Peut-être que la quantité de documents était trop importante, il ne suffisait pas de courir deux semaines de suite pour dessiner un seul graphique.
DTM(Dynamic Topic Model): Ce modèle est utilisé lorsque de nouvelles informations arrivent et que le sujet change, par exemple lors de l'extension de LDA et de l'analyse d'un sujet sur SNS pendant une certaine période de temps.
HDP(Hierarchical Dirichlet Process): Il devrait étendre la LDA et vous indiquer le nombre de sujets dans lesquels diviser le document, mais lorsque je me nourris de mon ensemble de données, plus de la moitié des sujets sont similaires, c'est donc un sujet raisonnable. Je ne pouvais pas le diviser.
BERT Il s'agit d'un modèle de traitement du langage naturel annoncé par Google l'année dernière. Je veux l'utiliser, mais je n'ai pas du tout enquêté dessus. Je vais étudier à partir de maintenant.
Recommended Posts