Je crée un bot de discordance qui fait jaillir des phrases générées aléatoirement dans le chat toutes les quelques secondes. J'essaie d'utiliser le module nltk pour rendre la structure de la phrase un peu meilleure, mais je suis rattrapé par une erreur et je n'arrive pas à la comprendre. (Je suis newish à python et j'ai appris tout ce que je devais savoir au fur et à mesure le long)Faire un bot discord, mais continuer à obtenir "missing 1 argument de position requis: 'self'"
erreur:.
File "/root/PycharmProjects/untitled/Loop.py", line 29, in background_loop
messages = [(POSifiedText.make_sentence(tries=8, max_overlap_total=14, default_max_overlap_ratio=5.6,))]
TypeError: make_sentence() missing 1 required positional argument: 'self'
code:
import asyncio
import random
import discord.ext.commands
import markovify
import nltk
import re
class POSifiedText(markovify.Text):
def word_split(self, sentence):
words = re.split(self.word_split_pattern , sentence)
words = ["::".join(tag) for tag in nltk.pos_tag (words)]
return words
def word_join(self, words):
sentence = " ".join(word.split("::")[0] for word in words)
return sentence
with open("/root/sample.txt") as f:
text = f.read()
text_model = (markovify.Text(text, state_size=1))
client = discord.Client()
async def background_loop():
await client.wait_until_ready()
while not client.is_closed:
channel = client.get_channel('ChannelIdHere')
messages = [(POSifiedText.make_sentence(tries=8, max_overlap_total=14, default_max_overlap_ratio=5.6,))]
await client.send_message(channel, random.choice(messages))
await asyncio.sleep(10)
client.loop.create_task(background_loop())
client.run("TokenHere")
quand j'utilise 'text_model = POSifiedText (markovify.Text (texte, state_size = 1))' 'je reçois TypeError : chaîne attendue ou objet semblable à un octet – Museman
Modifié. J'ai oublié que tu as hérité de la classe. –