Module pour générer le mot N-gramme en Python

Objectif

Prenez n'importe quel fichier texte comme entrée et générez N-gramme pour cela. Cette fois, nous allons générer ** mots ** N-gramme.

base de données

par exemple, article de presse

Générez N-gramme pour les articles suivants. On suppose que l'article se trouve dans ./data/news.txt à partir du répertoire où se trouve le programme.

On peut dire que c'est un résultat qui bouleverse le sens commun du développement spatial et qui attire l'attention en tant que technologie historique qui réduit les coûts de lancement. Lors d'une réunion tenue au Kennedy Space Center en Floride après le lancement réussi de la fusée, le PDG de Space X = directeur général Earon Musk a déclaré: «Il est possible de rendre la fusée. J'ai pu le prouver », a-t-il déclaré, exprimant sa joie du succès de l'expérience. Après cela, nous allons mener une expérience au sol pour voir si la fusée retournée cette fois est anormale, et s'il n'y a pas de problème, le mois prochain ou le mois prochain Il a déclaré qu'il lancerait à nouveau la même fusée, en disant: «La fusée peut être réutilisée des milliers de fois dans le futur, mais pour le moment, je pense qu'elle peut être réutilisée 10 à 20 fois, y compris d'autres fusées. , À l'avenir, la réutilisation de toutes les roquettes sera la norme », a-t-il déclaré.

programme

text2bow est une fonction qui convertit une phrase en un ensemble de mots, et mod = "file" lors de la saisie d'un fichier. Lors de la saisie d'une chaîne de caractères, spécifiez mod = "str". (Si vous l'utilisez comme module, cela peut être plus)

ngram.py


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

import sys
import commands as cmd

#texte->mot(morphème)ensemble
def text2bow(obj,mod):

    # input:Mod pour les fichiers="file", input:Mod pour cordes="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-Génération Gram
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

#production
def output_Ngram(ngram):

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

def main():

    argvs = sys.argv

    # input:Pour les fichiers
    bow = text2bow(argvs[2],mod="file")

    # input:Pour les cordes
    #bow = text2bow(obj=u"C'est n-C'est un programme qui génère du gramme.",mod="str")

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

    output_Ngram(ngram)

if __name__ == "__main__":

    main()

Méthode d'exécution

Pour le moment, on suppose qu'un fichier texte est passé cette fois en entrée. (Lors de la saisie d'une chaîne de caractères dans le programme, importez ngram.py et utilisez diverses méthodes. Faites attention uniquement à la valeur mod de text2bow) La méthode d'exécution est la suivante.

ngram.py


$ python ngram.py N textfile

--N: nombre arbitraire (par exemple 2 grammes-> N = 2) --textfile: chemin du fichier texte d'entrée

Courir

Sortie de 2 grammes de l'article de nouvelles ci-dessus.

ngram.py


$ python ngram.py 2 data/news.txt

Résultat de sortie

Développement spatial De développement Bon sens Bon sens Renverser Renversé Tato Tomo Peut aussi être dit ...

Si vous pouvez obtenir la sortie ci-dessus, c'est OK.

Résumé

Cette fois, j'ai créé un programme capable de gérer le mot N-gramme en Python. Pour le gérer comme un module, importez le programme et utilisez chaque méthode. J'avais l'intention de le faire avec la polyvalence à l'esprit, donc je pense qu'il peut être importé et utilisé facilement.

Recommended Posts

Module pour générer le mot N-gramme en Python
Utilisez un module de cryptographie qui gère OpenSSL en Python
Pour ajouter un module à python que vous mettez dans Julialang
Essayez de créer un module Python en langage C
Pour vider stdout en Python
Connectez-vous au site Web en Python
Générer une distribution U en Python
Parler avec Python [synthèse vocale]
Générer du code QR en Python
Comment développer en Python
Générez 8 * 8 (64) cubes avec Blender Python
Générez Word Cloud à partir de données de cas d'essai avec python3
Publier sur Slack en Python
[Python] Comment faire PCA avec Python
[Python] Générer un code QR en mémoire
Convertir Markdown en PDF en Python
Comment utiliser SQLite en Python
Générer le notebook Jupyter ".ipynb" en Python
Dans la commande python, python pointe vers python3.8
Essayez de calculer Trace en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Exécuter le module Python unittest dans vs2017
6 façons d'enchaîner des objets en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
Maîtriser le module lowref en Python
KawaiiGen: Derrière le module Python pour générer l'image du visage d'une jolie fille
[Couches Python / AWS Lambda] Je souhaite réutiliser uniquement le module dans AWS Lambda Layers
Que faire lorsque ModuleNotFoundError: Aucun module nommé'XXX 'ne se produit en Python
Générer une collection de première classe en Python
J'ai essayé d'implémenter PLSA en Python
Essayez de vous connecter à qiita avec Python
Générer une URL signée AWS-S3 (limitée dans le temps) en Python
J'ai essayé d'implémenter la permutation en Python
[Python] Comment afficher des nombres aléatoires (module aléatoire)
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Module d'implémentation de file d'attente et Python "deque"
Épingler le répertoire actuel au répertoire de script en Python
[Itertools.permutations] Comment créer une séquence en Python
PUT gzip directement dans S3 en Python
Envoyer des e-mails à plusieurs destinataires avec Python (Python3)
Convertir un fichier psd en png en Python
Exemple de script pour piéger les signaux en Python
J'ai essayé d'implémenter PLSA dans Python 2
Pour définir le codage par défaut sur utf-8 en python
Decorator pour éviter UnicodeEncodeError dans Python 3 print ()
Comment utiliser BigQuery en Python
Connectez-vous à Slack à l'aide de requêtes en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Un moyen simple d'utiliser Wikipedia avec Python
Comment extraire une zone de polygone en Python
3. Traitement du langage naturel par Python 1-1. Word N-gram
Comment vérifier la version d'opencv avec python