Sprachverarbeitung 100 Klopfen 2015 ["Kapitel 6: Englische Textverarbeitung"](http: //www.cl.ecei) Es ist eine Aufzeichnung von 52. "Stemming" von .tohoku.ac.jp / nlp100 / # ch6). ** Stemming, das Sie häufig in der Sprachverarbeitung verwenden werden **. Es wird tatsächlich im maschinellen Lernklopfen von [71. nachfolgendes Klopfen] verwendet (https://qiita.com/FukuharaYohei/items/60719ddaa47474a9d670). Es ist technisch sehr einfach, weil Sie nur die Funktion aufrufen.
| Verknüpfung | Bemerkungen | 
|---|---|
| 052.Stemming.ipynb | Antwortprogramm GitHub Link | 
| 100 Klicks Amateur-Sprachverarbeitung:52 | Kopieren Sie die Quelle vieler Quellteile und fügen Sie sie ein | 
| Art | Ausführung | Inhalt | 
|---|---|---|
| OS | Ubuntu18.04.01 LTS | Es läuft virtuell | 
| pyenv | 1.2.16 | Ich benutze pyenv, weil ich manchmal mehrere Python-Umgebungen benutze | 
| Python | 3.8.1 | python3 auf pyenv.8.Ich benutze 1 Pakete werden mit venv verwaltet  | 
In der obigen Umgebung verwende ich die folgenden zusätzlichen Python-Pakete. Einfach mit normalem Pip installieren. Dieses Mal habe ich das durch Klopfen angegebene stemming-Paket nicht verwendet. Es wurde seit 2010 nicht mehr aktualisiert und jetzt scheint "nltk" häufiger zu sein.
| Art | Ausführung | 
|---|---|
| nltk | 3.4.5 | 
Ein Überblick über verschiedene grundlegende Technologien für die Verarbeitung natürlicher Sprache durch englische Textverarbeitung mit Stanford Core NLP.
Stanford Core NLP, Stemming, Teilwort-Tagging, Extraktion eindeutiger Ausdrücke, Co-Referenzanalyse, Abhängigkeitsanalyse, Klauselstrukturanalyse, S-Ausdruck
Führen Sie die folgende Verarbeitung für den englischen Text durch (nlp.txt).
Nehmen Sie die Ausgabe> 51 als Eingabe, wenden Sie den Stemming-Algorithmus von Porter an und geben Sie Wörter und Stems in tabulatorgetrennten Formaten aus. Verwenden Sie in Python das Modul stemming als Implementierung des Stemming-Algorithmus von Porter.
"Stemming" ist der Stamm, der sich auf den unveränderlichen vorderen Teil eines Wortes bezieht (z. B. ist Natural's Stemming Natur). Stemming wird später in [71st] verwendet (https://qiita.com/FukuharaYohei/items/60719ddaa47474a9d670). Es gibt verschiedene Arten von "Stemming", und dieses Mal verwende ich Porters Algorithmus (dies scheint berühmt zu sein). Wenn Sie mehr wissen möchten, überprüfen Sie es bitte durch 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)
Das Programm ist zu kurz, um es zu erklären. Sie können mit "ps.stem ()" aufhalten, und es ist sehr einfach aufzurufen.
Wenn das Programm ausgeführt wird, wird das folgende Ergebnis ausgegeben (Auszug aus den ersten 30 Zeilen).
text:052.result.txt(Auszug aus den ersten 30 Zeilen)
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