[PYTHON] Créez un bot qui stimule les tendances Twitter

Avez-vous un moment où vous souhaitez booster la tendance Twitter?

Dans un tel cas, créons un Bot qui tweete automatiquement en générant des phrases à partir d'une balise spécifique en Python.

Cette fois, je vais omettre la partie de la récupération de phrases sur Twitter et la création de phrases. De plus, je l'ai mis à jour environ 3 fois, Le tout premier est facile, je vais donc l'expliquer.

Effectuer une analyse de syntaxe

Tout d'abord, nous devons extraire la nomenclature du japonais. Cette fois, nous utiliserons une bibliothèque d'analyse syntaxique appelée janome.

janome est un outil qui décompose le japonais en syntaxe

from janome.tokenizer import Tokenizer

tokenizer = Tokenizer()

sentence = 'L'invité d'aujourd'hui était M. Wada.'

for token in tokenizer.tokenize(sentence):
    print(token)
    
#Nom du jour,Avocat possible,*,*,*,*,aujourd'hui,Hongjitsu,Hongjitsu
#Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
#Nomenclature des invités,Général,*,*,*,*,Les invités,Les invités,Les invités
#Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
#Wada substantif,Nomenclature propriétaire,Nom d'une personne,Nom de famille,*,*,Wada,Wada,Wada
#San substantif,suffixe,Nom d'une personne,*,*,*,M.,Soleil,Soleil
#Deshi verbe auxiliaire,*,*,*,Mort spéciale,Type continu,est,Deci,Deci
#Verbe auxiliaire,*,*,*,Spécial,Forme basique,Ta,Ta,Ta
#.. symbole,Phrase,*,*,*,*,。,。,。

Il décompose le japonais comme ça.

Rechercher les doublons

Vous pouvez décomposer un tweet avec cela, mais cela peut provoquer du bruit.

Par conséquent, ne faites une phrase que lorsque la même nomenclature existe dans plusieurs tweets.

Certaines personnes aiment ça. Screenshot.png

Tout d'abord, il existe une classe pour l'extraction des doublons.

class DuplicateChecker:
    
    def __init__(self, tokenier: Tokenizer):
        self.twitt_nouns = []
        self.tokenier = tokenier

    def extract_duplications(self) -> [str]:
        return [x for x in set(self.twitt_nouns) if self.twitt_nouns.count(x) > 1]

    def input_twitt(self, twitt: str):
        tokens = self.tokenier.tokenize(twitt)
        
        nouns = []
        buffer = None
        for token in tokens:
            if token.part_of_speech.count("nom"):
                if buffer is None: 
                    buffer = ""
                buffer += token.surface
            else:
                if buffer is not None:
                    nouns.append(buffer)
                buffer = None
                    
                    
        self.twitt_nouns.extend(nouns)

Maintenant, lorsque je vérifie les doublons, cela ressemble à ceci:

tokenier = Tokenizer()
duplicateChecker = DuplicateChecker(tokenier)

duplicateChecker.input_twitt("J'ai senti la possibilité du motif rayé")
duplicateChecker.input_twitt('Je sens seulement la possibilité')
duplicateChecker.input_twitt('Ressentez la possibilité')

nouns = duplicateChecker.extract_duplications()
nouns # ["possibilité"]

(La production a également été vérifiée par l'utilisateur.)

Génération de déclaration

Faites une phrase à partir de la dernière nomenclature extraite. (Cette fois est appropriée.)

class SentenceGenerator:
    
    def __init__(self, nouns:[str]):
        self.nouns = nouns
        self.senence_base = ["{}Est de l'herbe", "{}important", "{}", "{}Hey", "{}だHey", "{}!"]
        
    def generate(self) -> str:
        index:int = int(random.uniform(0, 200)) % len(self.senence_base)
        sentence = self.senence_base[index].format(self.nouns[0])
        return sentence

Une fois exécuté, cela ressemble à ceci. スクリーンショット 2.png

Résumé

Cette fois, j'ai essayé de faire quelque chose d'une simplicité déraisonnable. S'il y a une réponse, j'écrirai comment je l'ai mise à jour.

Recommended Posts

Créez un bot qui stimule les tendances Twitter
Créer un bot slack
Étapes pour créer un bot Twitter avec Python
Créez un robot de réponse automatique en temps réel à l'aide de l'API Twitter Streaming
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
Créer un bot LINE avec Django
Facile! Implémenter un bot Twitter qui s'exécute sur Heroku en Python
J'ai créé un robot Twitter qui marmonne le Pokémon capturé par #PokemonGO
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
Créer un bot pour retweeter les informations sur le virus corona
[Python] [LINE Bot] Créer un robot LINE de retour de perroquet
Créer un nouveau dict qui combine des dictés
[Python] Créez un LineBot qui s'exécute régulièrement
Faisons un bot Twitter avec Python!
Créez un BOT qui peut appeler des images enregistrées avec Discord comme des pictogrammes
Créez un service Twitter BOT avec GAE / P + Tweepy + RIOT API! (Partie 2)
[Python] J'ai créé un bot Twitter qui génère des tweets semblables à des amis avec des règles de chaîne de Markov.
Créez un bot avec AWS Lambda qui démarre / arrête automatiquement les instances avec des balises spécifiques
Un mémo sur lequel je suis tombé par hasard en faisant une citation RT sur Twitter Bot
Créer un bot Twitter Trend avec heroku + Python
Désactivez les tendances Twitter et ayez une vie confortable sur Twitter! !!
Créer un LINE BOT avec Minette pour Python
Créer une page qui se charge indéfiniment avec python
Créez un BOT qui affiche le nombre de personnes infectées dans le nouveau Corona
Python: créer une classe qui prend en charge l'affectation décompressée
Créez un bot discord qui notifie unilatéralement avec python (seuls les requêtes et json sont utilisés)
Créer une fausse classe qui triche également est une instance
Créer un bot de collecte de données en Python à l'aide de Selenium
J'ai fait un Twitter BOT avec GAE (python) (avec une référence)
Créez un BOT qui raccourcit l'URL Discord
Créez un chatbot prenant en charge la saisie gratuite avec Word2Vec
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
Créer un planning Django
Créez un bot qui ne renvoie que le résultat de l'analyse morphologique avec MeCab avec Discord
Créer un module Python
Créer un environnement Python
J'ai écrit un script pour créer rapidement un environnement de développement pour Twitter Bot avec AWS Lambda + Python 2.7
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
Créez une PythonBox qui sort avec Random après l'entrée PEPPER
Créez un code QR qui affiche "Izumi Oishi" en grattant
Créez un plug-in qui met toujours en évidence le texte arbitraire dans Sublime Text 2
Créez une application d'apprentissage automatique avec ABEJA Platform + LINE Bot
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
[Python] Créez un linebot qui dessine n'importe quelle date sur une photo
Créons un script qui s'enregistre avec Ideone.com en Python.
Créez un jeu de vie mis à jour manuellement avec tkinter
Créons un environnement Docker qui stocke les informations de tendance Qiita!
Créez le code qui renvoie "A et prétendant B" en python
Un client de publication Twitter stérile qui ne sauvegarde que vos tweets
Tornado - Créons une API Web qui renvoie facilement JSON avec JSON
Créez une API Web capable de fournir des images avec Django
J'ai essayé de créer un bot pour annoncer un événement Wiire
Créer un diagramme de corrélation à partir de l'historique des conversations de Twitter