[PYTHON] 100 Traitement du langage Knock-52: Stemming

Language processing 100 knocks 2015 ["Chapter 6: English text processing"](http: //www.cl.ecei) Il s'agit d'un enregistrement de 52nd "Stemming" de .tohoku.ac.jp / nlp100 / # ch6). ** Stemming que vous utiliserez souvent dans le traitement du langage **. Il est en fait utilisé dans le coup d'apprentissage automatique du 71e coup suivant. C'est techniquement très simple car il suffit d'appeler la fonction.

Lien de référence

Lien Remarques
052.Tige.ipynb Lien GitHub du programme de réponse
100 coups de traitement du langage amateur:52 Copiez et collez la source de nombreuses pièces source

environnement

type version Contenu
OS Ubuntu18.04.01 LTS Il fonctionne virtuellement
pyenv 1.2.16 J'utilise pyenv car j'utilise parfois plusieurs environnements Python
Python 3.8.1 python3 sur pyenv.8.J'utilise 1
Les packages sont gérés à l'aide de venv

Dans l'environnement ci-dessus, j'utilise les packages Python supplémentaires suivants. Installez simplement avec pip ordinaire. Cette fois, je n'ai pas utilisé le package de base spécifié par knocking. Il n'a pas été mis à jour depuis 2010, et maintenant nltk semble plus courant.

type version
nltk 3.4.5

Chapitre 6: Traitement du texte anglais

contenu de l'étude

Un aperçu des différentes technologies de base pour le traitement du langage naturel grâce au traitement de texte anglais à l'aide de Stanford Core NLP.

Stanford Core NLP, dérivation, balisage de mot partiel, extraction d'expressions propres, analyse de co-référence, analyse de dépendance, analyse de structure de phrase, S-expression

Contenu frappé

Effectuez le traitement suivant sur le texte anglais (nlp.txt).

52. Stemming

Prenez la sortie de> 51 comme entrée, appliquez l'algorithme de dérivation de Porter et sortez les mots et les racines au format délimité par des tabulations. En Python, utilisez le module stemming comme implémentation de l'algorithme de tige de Porter.

Supplément de problème (à propos de la "dérivation")

"Stemming" est la racine, qui se réfère à la partie avant immuable d'un mot (par exemple, la racine de Natural est natur). La tige sera également utilisée plus tard dans 71e. Il existe plusieurs types de "dérivation", et cette fois j'utilise l'algorithme de Porter (cela semble être célèbre). Si vous voulez en savoir plus, consultez-le par google.

Répondre

Programme de réponse [052. Stemming.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/06.%E8%8B%B1%E8%AA%9E%E3%83%86%E3%82 % AD% E3% 82% B9% E3% 83% 88% E3% 81% AE% E5% 87% A6% E7% 90% 86/052.% E3% 82% B9% E3% 83% 86% E3% 83% 9F% E3% 83% B3% E3% 82% B0.ipynb)

import re

from nltk.stem.porter import PorterStemmer as PS

ps = PS()

with open('./051.result.txt') as file_in, \
     open('./052.result.txt', 'w') as file_out:
    for token in file_in:
        if token != '\n':
            print(token.rstrip(), '\t', ps.stem(token.rstrip()), file=file_out)

Répondre au commentaire

Le programme est trop court pour être expliqué. Vous pouvez dériver en faisant simplement ps.stem (), et c'est très facile à appeler.

Résultat de sortie (résultat de l'exécution)

Lorsque le programme est exécuté, le résultat suivant est sorti (extrait des 30 premières lignes).

text:052.result.txt(Extrait des 30 premières lignes)


Natural 	 natur
language 	 languag
processing 	 process
From 	 from
Wikipedia 	 wikipedia
the 	 the
free 	 free
encyclopedia 	 encyclopedia
Natural 	 natur
language 	 languag
processing 	 process
(NLP) 	 (nlp)
is 	 is
a 	 a
field 	 field
of 	 of
computer 	 comput
science 	 scienc
artificial 	 artifici
intelligence 	 intellig
and 	 and
linguistics 	 linguist
concerned 	 concern
with 	 with
the 	 the
interactions 	 interact
between 	 between
computers 	 comput
and 	 and
human 	 human

Recommended Posts

100 Traitement du langage Knock-52: Stemming
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 langues de traitement knock 2020 [00-79 réponse]
100 traitements linguistiques Knock 2020 [00 ~ 69 réponse]
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 17
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 Traitement du langage Knock Chapitre 1
100 coups de langue amateur: 07
100 Language Processing Knock 2020 Chapitre 3
100 Language Processing Knock 2020 Chapitre 2
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
Traitement 100 langues knock-53: Tokenisation
100 coups de traitement du langage amateur: 97
100 traitements linguistiques Knock 2020 [00 ~ 59 réponse]
100 coups de traitement du langage amateur: 67
100 coups de traitement du langage avec Python 2015
100 Language Processing Knock-58: Extraction de Taple
100 Language Processing Knock-57: Analyse des dépendances
100 traitement linguistique knock-50: coupure de phrase
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
100 Language Processing Knock-25: Extraction de modèles
Traitement du langage 100 Knock-87: similitude des mots
J'ai essayé 100 traitements linguistiques Knock 2020
100 Language Processing Knock-56: analyse de co-référence
Résolution de 100 traitements linguistiques Knock 2020 (01. "Patatokukashi")
100 coups de traitement du langage amateur: Résumé
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 Language Processing Knock 2020 Chapitre 4: Analyse morphologique
100 Language Processing Knock 2020 Chapitre 9: RNN, CNN
100 traitement du langage knock-76 (en utilisant scicit-learn): étiquetage
100 Language Processing Knock-55: extraction d'expressions uniques
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
100 Language Processing Knock-82 (mot de contexte): Extraction de contexte
100 traitements de langage avec Python (chapitre 3)
100 Language Processing Knock: Chapitre 1 Mouvement préparatoire
100 Language Processing Knock 2020 Chapitre 6: Apprentissage automatique
100 Traitement du langage Knock Chapitre 4: Analyse morphologique
Traitement du langage 100 knock-86: affichage vectoriel Word
100 Language Processing Knock 2020 Chapitre 10: Traduction automatique (90-98)
100 Language Processing Knock 2020 Chapitre 5: Analyse des dépendances
100 Language Processing Knock-28: Suppression du balisage MediaWiki
100 Traitement du langage Knock 2020 Chapitre 7: Vecteur de mots
100 Language Processing Knock 2020 Chapitre 8: Neural Net
100 traitement du langage knock-59: analyse de la formule S
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
100 traitement du langage knock-31 (en utilisant des pandas): verbe
100 langues de traitement frappent 2020 "pour Google Colaboratory"
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 1
100 Language Processing Knock 2020 Chapitre 1: Mouvement préparatoire
100 traitement du langage knock-73 (en utilisant scikit-learn): apprentissage
100 Language Processing Knock Chapitre 1 par Python
100 Language Processing Knock 2020 Chapitre 3: Expressions régulières
100 langage traitement knock-24: Extraire la référence du fichier
100 Language Processing Knock 2015 Chapitre 4 Analyse morphologique (30-39)