Modul zum Generieren des Wortes N-Gramm in Python

Zweck

Nehmen Sie eine beliebige Textdatei als Eingabe und generieren Sie N-Gramm dafür. Dieses Mal werden wir ** Wörter ** N-Gramm erzeugen.

Datensatz

z.B. Nachrichtenartikel

Generieren Sie N-Gramm für die folgenden Artikel. Es wird davon ausgegangen, dass sich der Artikel in ./data/news.txt aus dem Verzeichnis befindet, in dem sich das Programm befindet.

Es ist ein Ergebnis, das die allgemeine Weisheit der Weltraumentwicklung auf den Kopf gestellt hat und als epochale Technologie, die die Startkosten senkt, Aufmerksamkeit erregt. Bei einem Treffen im Kennedy Space Center in Florida nach dem erfolgreichen Start der Rakete sagte Earon Musk, CEO = Chief Executive Officer von Space X: "Es ist möglich, die Rakete zurückzugeben. Das konnte ich beweisen ", sagte er und drückte seine Freude über den Erfolg des Experiments aus. Danach werden wir ein Experiment am Boden durchführen, um festzustellen, ob die diesmal zurückgegebene Rakete abnormal ist und ob es im nächsten Monat oder im nächsten Monat kein Problem gibt Er erklärte, dass er dieselbe Rakete erneut starten würde und sagte: "Die Rakete kann in Zukunft tausende Male wiederverwendet werden, aber derzeit ist es möglich, dies 10 bis 20 Mal zu tun. Einschließlich anderer Raketen." , In Zukunft wird die Wiederverwendung aller Raketen die Norm sein ", sagte er.

Programm

text2bow ist eine Funktion, die einen Satz in eine Wortmenge konvertiert und bei der Eingabe einer Datei mod = "file". Geben Sie bei der Eingabe einer Zeichenfolge mod = "str" an. (Wenn Sie es als Modul verwenden, kann dies mehr sein)

ngram.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import commands as cmd

#Text->Wort(Morphem)einstellen
def text2bow(obj,mod):

    # input:Mod für Dateien="file", input:Mod für Strings="str"
    if mod == "file":
        morp = cmd.getstatusoutput("cat " + obj + " | mecab -Owakati")
    elif mod == "str":
        morp = cmd.getstatusoutput("echo " + obj.encode('utf-8') + " | mecab -Owakati")
    else:
        print "error!!"
        sys.exit(0)

    words = morp[1].decode('utf-8')
    words = words.replace('\n','')

    bow = words.split(' ')

    return bow

# N-Grammgenerierung
def gen_Ngram(words,N):

    ngram = []

    for i in range(len(words)):
        cw = ""
        
        if i >= N-1:
            for j in reversed(range(N)):
                cw += words[i-j]
        else:
            continue

        ngram.append(cw)
                
    return ngram

#Ausgabe
def output_Ngram(ngram):

    for i in range(len(ngram)):
        print ngram[i].encode('utf-8')

def main():

    argvs = sys.argv

    # input:Für Dateien
    bow = text2bow(argvs[2],mod="file")

    # input:Für Saiten
    #bow = text2bow(obj=u"Dies ist n-Es ist ein Programm, das Gramm erzeugt.",mod="str")

    ngram = gen_Ngram(bow,int(argvs[1]))

    output_Ngram(ngram)

if __name__ == "__main__":

    main()

Ausführungsmethode

Derzeit wird davon ausgegangen, dass diesmal eine Textdatei als Eingabe übergeben wird. (Wenn Sie eine Zeichenfolge in das Programm eingeben, importieren Sie ngram.py und verwenden Sie verschiedene Methoden. Achten Sie nur auf den Mod-Wert von text2bow.) Die Ausführungsmethode ist wie folgt.

ngram.py


$ python ngram.py N textfile

Lauf

Geben Sie 2 Gramm des obigen Nachrichtenartikels aus.

ngram.py


$ python ngram.py 2 data/news.txt

Ausgabeergebnis

Raumfahrtentwicklung Der Entwicklung Gesunder Menschenverstand Gesunder Menschenverstand Umkippen Umgestürzt Tato Tomo Kann auch gesagt werden ...

Wenn Sie die obige Ausgabe erhalten können, ist es OK.

Zusammenfassung

Dieses Mal habe ich ein Programm erstellt, das das Wort N-Gramm in Python verarbeiten kann. Um es als Modul zu behandeln, importieren Sie das Programm und verwenden Sie jede Methode. Ich wollte es mit Blick auf Vielseitigkeit machen, daher denke ich, dass es einfach importiert und verwendet werden kann.

Recommended Posts

Modul zum Generieren des Wortes N-Gramm in Python
Verwenden Sie ein Kryptografiemodul, das OpenSSL in Python verarbeitet
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
So löschen Sie stdout in Python
Melden Sie sich auf der Website in Python an
Generieren Sie eine U-Verteilung in Python
Sprechen mit Python [Text zu Sprache]
Generieren Sie QR-Code in Python
Wie man in Python entwickelt
Generieren Sie 8 * 8 (64) Cubes mit Blender Python
Generieren Sie Word Cloud aus Testfalldaten mit Python3
Post an Slack in Python
[Python] Wie man PCA mit Python macht
[Python] Generiert QR-Code im Speicher
Konvertieren Sie Markdown in Python in PDF
Verwendung von SQLite in Python
Generieren Sie das Jupyter-Notizbuch ".ipynb" in Python
Im Python-Befehl zeigt Python auf Python3.8
Versuchen Sie, Trace in Python zu berechnen
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Führen Sie das Python-Unittest-Modul in vs2017 aus
6 Möglichkeiten zum Stringen von Objekten in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
Eine Alternative zu "Pause" in Python
Beherrsche das schwache Ref-Modul in Python
KawaiiGen: Hinter dem Python-Modul, um niedliche Mädchengesichtsbilder zu erzeugen
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Was tun, wenn ModuleNotFoundError: In Python tritt kein Modul mit dem Namen 'XXX' auf
Generieren Sie eine erstklassige Sammlung in Python
Ich habe versucht, PLSA in Python zu implementieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Generieren Sie eine AWS-S3-signierte (zeitlich begrenzte) URL in Python
Ich habe versucht, Permutation in Python zu implementieren
[Python] So zeigen Sie Zufallszahlen an (Zufallsmodul)
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
Warteschlangen- und Python-Implementierungsmodul "deque"
Pin aktuelles Verzeichnis an Skriptverzeichnis in Python
[Itertools.permutations] So löschen Sie eine Sequenz in Python
PUT gzip direkt in S3 in Python
Senden Sie mit Python (Python3) E-Mails an mehrere Empfänger.
Konvertieren Sie die psd-Datei in Python in png
Beispielskript zum Überfüllen von Signalen in Python
Ich habe versucht, PLSA in Python 2 zu implementieren
So setzen Sie die Standardcodierung in Python auf utf-8
Dekorateur zur Vermeidung von UnicodeEncodeError in Python 3 print ()
So arbeiten Sie mit BigQuery in Python
Melden Sie sich mit Anforderungen in Python bei Slack an
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
So extrahieren Sie einen Polygonbereich in Python
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
So überprüfen Sie die Version von opencv mit Python