[PYTHON] 100 Sprachverarbeitung Knock-52: Stemming

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.

Referenzlink

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

Umgebung

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

Kapitel 6: Verarbeiten von englischem Text

Inhalt des Studiums

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

Inhalt anklopfen

Führen Sie die folgende Verarbeitung für den englischen Text durch (nlp.txt).

52. Stemming

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.

Problemergänzung (über "Stemming")

"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.

Antworten

Antwortprogramm [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)

Kommentar beantworten

Das Programm ist zu kurz, um es zu erklären. Sie können mit "ps.stem ()" aufhalten, und es ist sehr einfach aufzurufen.

Ausgabeergebnis (Ausführungsergebnis)

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

100 Sprachverarbeitung Knock-52: Stemming
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 38
100 Sprachverarbeitung klopfen 00 ~ 02
100 Sprachverarbeitung klopfen 2020 [00 ~ 39 Antwort]
100 Sprachverarbeitung klopfen 2020 [00-79 Antwort]
100 Sprachverarbeitung klopfen 2020 [00 ~ 69 Antwort]
100 Sprachverarbeitung Knock 2020 Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 17
100 Sprachverarbeitung klopfen 2020 [00 ~ 49 Antwort]
100 Sprachverarbeitung Knock Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 07
100 Sprachverarbeitung Knock 2020 Kapitel 3
100 Sprachverarbeitung Knock 2020 Kapitel 2
100 Amateur-Sprachverarbeitungsklopfen: 09
100 Amateur-Sprachverarbeitungsklopfen: 47
100 Sprachverarbeitung Knock-53: Tokenisierung
100 Amateur-Sprachverarbeitungsklopfen: 97
100 Sprachverarbeitung klopfen 2020 [00 ~ 59 Antwort]
100 Amateur-Sprachverarbeitungsklopfen: 67
100 Sprachverarbeitungsklopfen mit Python 2015
100 Sprachverarbeitung Knock-58: Extraktion von Taple
100 Sprachverarbeitung Knock-57: Abhängigkeitsanalyse
100 Sprachverarbeitung Knock-50: Satzumbruch
100 Sprachverarbeitung Knock Kapitel 1 (Python)
100 Sprachverarbeitung Knock Kapitel 2 (Python)
100 Sprachverarbeitung Knock-25: Vorlagenextraktion
Sprachverarbeitung 100 Knock-87: Wortähnlichkeit
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020
100 Sprachverarbeitung Knock-56: Co-Referenz-Analyse
Lösen von 100 Sprachverarbeitungsklopfen 2020 (01. "Patatokukashi")
100 Amateur-Sprachverarbeitungsklopfen: Zusammenfassung
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
100 Sprachverarbeitung Knock Kapitel 1 in Python
100 Sprachverarbeitung Knock 2020 Kapitel 4: Morphologische Analyse
100 Sprachverarbeitung Knock 2020 Kapitel 9: RNN, CNN
100 Sprachverarbeitung Knock-76 (mit Scicit-Learn): Beschriftung
100 Sprachverarbeitung Knock-55: Extraktion eindeutiger Ausdrücke
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 3
100 Sprachverarbeitung Knock-82 (Kontextwort): Kontextextraktion
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
100 Sprachverarbeitungsklopfen: Kapitel 1 Vorbereitungsbewegung
100 Sprachverarbeitung Knock 2020 Kapitel 6: Maschinelles Lernen
100 Sprachverarbeitung Knock Kapitel 4: Morphologische Analyse
Sprachverarbeitung 100 knock-86: Wortvektoranzeige
100 Sprachverarbeitung Knock 2020 Kapitel 10: Maschinelle Übersetzung (90-98)
100 Sprachverarbeitung Knock 2020 Kapitel 5: Abhängigkeitsanalyse
100 Sprachverarbeitung Knock-28: Entfernen des MediaWiki-Markups
100 Sprachverarbeitung Knock 2020 Kapitel 7: Word Vector
100 Sprachverarbeitung Knock 2020 Kapitel 8: Neuronales Netz
100 Sprachverarbeitung Knock-59: Analyse der S-Formel
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (05 ~ 09)
Sprachverarbeitung 100 Knocks-31 (mit Pandas): Verben
100 Sprachverarbeitung klopfen 2020 "für Google Colaboratory"
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 1
100 Sprachverarbeitung Knock 2020 Kapitel 1: Vorbereitende Bewegung
100 Sprachverarbeitung Knock-73 (mit Scikit-Learn): Lernen
100 Sprachverarbeitung Knock Kapitel 1 von Python
100 Sprachverarbeitung Knock 2020 Kapitel 3: Reguläre Ausdrücke
100-Sprachverarbeitung knock-24: Dateireferenz extrahieren
100 Language Processing Knock 2015 Kapitel 4 Morphologische Analyse (30-39)