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 | 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 |
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 |
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
Effectuez le traitement suivant sur le texte anglais (nlp.txt).
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.
"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.
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)
Le programme est trop court pour être expliqué. Vous pouvez dériver en faisant simplement ps.stem ()
, et c'est très facile à appeler.
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