[PYTHON] Étudiez le traitement du langage naturel avec Kikagaku

Cette fois, j'aimerais écrire un endroit où j'ai appris lorsque j'étudiais le traitement du langage naturel sur un site appelé Kikagaku où je peux en apprendre davantage sur le Deep Learning gratuitement.

Environnement d'exécution

・ MacOS ・ Python3.6 (anaconda) ・ VSCode

Les références

[Illustration! Explication approfondie de l'utilisation de Python Beautiful Soup! (sélectionner, trouver, trouver tout, installation, grattage, etc.)](https://ai-inter1.com/beautifulsoup_1/#:~:text=Beautiful%20Soup(%E3%83%93%E3%83%A5%E3) % 83% BC% E3% 83% 86% E3% 82% A3% E3% 83% 95% E3% 83% AB% E3% 83% BB% E3% 82% B9% E3% 83% BC% E3% 83 % 97),% E3% 82% B9% E3% 82% AF% E3% 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0% E7% 94 % A8% E3% 81% AE% E3% 83% A9% E3% 82% A4% E3% 83% 96% E3% 83% A9% E3% 83% AA% E3% 81% A7% E3% 81% 99 % E3% 80% 82 & text = Python% E3% 81% A7% E3% 81% AF% E3% 80% 81Beautiful% 20Soup% E3% 82% 92,% E3% 81% 99% E3% 82% 8B% E3% 81% 93% E3% 81% A8% E3% 81% 8C% E3% 81% A7% E3% 81% 8D% E3% 81% BE% E3% 81% 99% E3% 80% 82) [Python] Conversion de casse des chaînes de caractères (fonction inférieure, supérieure) Référentiel cloné (https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/cloning-a-repository) Comparaison des analyseurs morphologiques fin 2019 Préparation de l'environnement pour l'utilisation de MeCab sur Mac Analyse morphologique avec MeCab sur Mac Paramètres d'utilisation de JUMAN ++ dans l'environnement pyenv de Python sur mac J'ai essayé l'analyse morphologique avec pyknp (JUMANN ++) Exécution de Human ++ avec Python

Je n'ai pas compris et enquêté

Qu'est-ce que la belle soupe?

Tout d'abord, ravi de vous rencontrer, beau groupe. En fait, il s'agit d'une bibliothèque qui ne peut extraire que les informations nécessaires de l'instruction htmlm. Par exemple, je pense que les phrases HTML sur le net sont entourées de div '' et de h1 ''. Cependant, ces balises gênent l'analyse des phrases, il est donc beau de n'obtenir que les informations sans elles.

Quelle est la fonction lower ()?

Il existe une fonction inférieure et une fonction supérieure, qui sont respectivement une fonction pour rendre ** inférieur ** et une fonction pour rendre ** supérieur **.

Analyse morphologique

J'ai installé «MeCab» et «Human ++» car ils étaient bons pour l'analyse morphologique. MeCab est probablement le meilleur en termes de vitesse, et si vous ne voulez que de la précision, Human ++ semble être le meilleur. L'installation de Mecab était assez simple.

$ brew install mecab
$ brew install mecab-ipadic
$ pip install mecab-python3
$ git clone url

Pour l'URL après git clone, collez l'URL copiée depuis Github Repository.

import MeCab
m = MeCab.Tagger('-d/usr/local/lib/mecab/dic/mecab-ipadic-neologd')
text = '<html>Apprentissage profond à partir de zéro</html>'
print(m.parse(text))

MeCab sera écrit comme ceci. Au fait, dans les parenthèses de Tagger ()

Peut être spécifié.

Juman ++ avait également besoin d'une installation pyknp pour être utilisable avec python.

$ brew install jumanpp
$ pip install pyknp

Ceci termine l'installation de «Juman ++» et «Pyknp». Ensuite, j'écrirai sur la façon d'écrire Human ++ sur Python.

from pyknp.juman.juman import Juman
juman = Juman()
result = juman.analysis("Gouvernement des étrangers")
for mrph in result.mrph_list():
    print(mrph.midasi, mrph.yomi)

Juman ++ est écrit sur Python comme ceci. J'utilise Juman ++, mais il semble que ce soit correct de le laisser comme Juman lors de l'écriture de code. En plus de midasi et yomi dans la partie impression, vous pouvez également ajouter mrph.genkei, mrph.hinsi, mrph.bunrui, mrph.katuyou1, mrph.katuyou2, mrph.imis, mrph.repname.

Ce que je n'ai pas compris quel que soit le traitement du langage naturel

J'ai utilisé «split», qui est une fonction qui peut être extraite mot par mot. Au début, je pensais que c'était une fonction spécialisée pour le traitement du langage naturel, mais c'était généralement une fonction python. ** split génère des phrases séparées par mot. ** **

Cependant, si seul le fractionnement est utilisé, la marge après la virgule est affichée telle quelle, donc la fonction appelée strip est utilisée car elle n'a pas l'air très bien. En utilisant cela, il est possible de sortir avec les marges supprimées.

Résumé

Cette fois, il a fallu beaucoup de temps pour analyser la morphologie. Cependant, je pensais que c'était désormais des connaissances nécessaires pour le traitement du langage naturel, donc je pense qu'il était bon d'apprendre avec soin.

Recommended Posts

Étudiez le traitement du langage naturel avec Kikagaku
[Traitement du langage naturel] Prétraitement avec le japonais
3. Traitement du langage naturel par Python 2-1. Réseau de co-occurrence
3. Traitement du langage naturel par Python 1-1. Word N-gram
J'ai essayé le traitement du langage naturel avec des transformateurs.
Python: traitement du langage naturel
RNN_LSTM2 Traitement du langage naturel
Étude de cas sur le traitement du langage naturel: Fréquence des mots dans'Anne avec un E '
3. Traitement du langage naturel par Python 2-2. Réseau de co-occurrence [mecab-ipadic-NEologd]
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
Profitons du traitement du langage naturel à l'aide de l'API COTOHA
100 coups de traitement du langage avec Python 2015
Traitement du langage naturel 1 Analyse morphologique
Traitement du langage naturel 3 Continuité des mots
Traitement du langage naturel 2 similitude de mots
Créer un environnement pour le traitement du langage naturel avec Python
100 traitements du langage naturel frappent le chapitre 4 Commentaire
100 traitements de langage avec Python
Traitement du langage naturel pour les personnes occupées
100 traitements de langage avec Python (chapitre 3)
Logivan du langage artificiel et traitement du langage naturel (traitement du langage artificiel)
Se préparer à démarrer le traitement du langage naturel
Résumé de l'installation de l'analyseur de traitement du langage naturel
Créez facilement un modèle de traitement du langage naturel avec BERT + LightGBM + optuna
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Résumez comment prétraiter le texte (traitement du langage naturel) avec l'api tf.data.Dataset
J'ai fait 100 traitements linguistiques Knock 2020 avec GiNZA v3.1 Chapitre 4
Traiter le nom de la carte Yugioh en langage naturel --Yugiou Data Science 2. PNL
100 Knocking Natural Language Processing Chapitre 1 (Mouvement préparatoire)
100 traitements de langage avec Python (chapitre 2, partie 2)
[WIP] Pré-traitement des notes dans le traitement du langage naturel
100 traitements de langage avec Python (chapitre 2, partie 1)
Mémo de produits pratique autour du traitement du langage naturel
Traitement du langage 100 knocks-88: 10 mots à haute similitude
100 traitements linguistiques frappent 03 ~ 05
100 coups de traitement linguistique (2020): 40
100 coups de traitement linguistique (2020): 35
100 coups de traitement linguistique (2020): 47
100 coups de traitement linguistique (2020): 39
100 coups de traitement linguistique (2020): 22
100 coups de traitement linguistique (2020): 26
100 coups de traitement linguistique (2020): 34
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 42
100 coups de traitement linguistique (2020): 29
100 coups de traitement linguistique (2020): 49
Le traitement de 100 langues frappe 06 ~ 09
100 coups de traitement linguistique (2020): 43
100 coups de traitement linguistique (2020): 24
100 coups de traitement linguistique (2020): 45
100 coups de traitement linguistique (2020): 10-19
100 coups de traitement linguistique (2020): 30
100 coups de traitement linguistique (2020): 00-09
100 coups de traitement linguistique (2020): 31
C'est vrai, mangeons-le. [Traitement du langage naturel à partir de Kyoto Ben]
100 coups de traitement linguistique (2020): 38
100 coups de traitement linguistique (2020): 48
100 coups de traitement linguistique (2020): 44