Ich versuche this spinner zu verwenden, um Strings neu zu schreiben.TypeError: Objekt 'instancemethod' ist nicht iterierbar (Content Spinner)
wenn ich versuche, exakt das gleiche Code wie in der Readme-Datei auszuführen:
bot.py:
108: from spinner import spinner
109: s = spinner()
110: spintax = s.getSpintax('Everything in moderation, including moderation.')
111: spun = s.spin(spintax)
112: print spintax, spun
Wenn ich dies tun, es gibt:
Traceback (most recent call last):
File "C:\Python27\Scripts\Reddit\bot.py", line 110, in <module>
spintax = s.getSpintax('Everything in moderation, including moderation.')
File "C:\Python27\Scripts\Reddit\spinner.py", line 56, in getSpintax
n, syn = self.getSynonyms(stem)
File "C:\Python27\Scripts\Reddit\spinner.py", line 36, in getSynonyms
for lemma in syn.lemmas:
TypeError: 'instancemethod' object is not iterable
die relevanten Code für diese Fehlermeldung ist:
spinner.py:
32: def getSynonyms(self, word):
33: # include the original word
34: synonyms = [word]
35: for syn in wordnet.synsets(word):
36: for lemma in syn.lemmas:
37: if lemma.name != word:
38: # since wordnet lemma.name will include _ for spaces, we'll replace these with spaces
39: w, n = re.subn("_", " ", lemma.name)
40: synonyms.append(w)
41: s = list(set(synonyms))
42: return len(s), s
43:
44: # transform text into spintax with the folowing steps
45: # 1. split the text to sentences
46: # 2. loop through the sentences and tokenize it
47: # 3. loop thorugh each token, find its stem and assemble all the synonyms of it into the spintax
48: def getSpintax(self, text):
49: sentences = self.splitToSentences(text)
50: stemmer = PorterStemmer()
51: spintax = ""
52: for sentence in sentences:
53: tokens = regexp_tokenize(sentence, "[\w']+")
54: for token in tokens:
55: stem = stemmer.stem(token)
56: n, syn = self.getSynonyms(stem)
57: spintax += "{"
58: spintax += token
59: spintax += "|"
60: for x in range(n):
61: spintax += syn[x]
62: if x < n-1:
63: spintax += "|"
64: else:
65: spintax += "} "
66: return spintax
Ich habe versucht, sowohl in Python 3 und 2
Ich bin nicht vertraut mit spinner.py, da ich es aus dem Internet nur packte, ich brauche nur etwas, den Text für mich kostenlos spinnen . Auch was bedeutet die folgende Zeile tun:
synonyms = [word]
wenn jemand einen anderen Text spinner empfehle ich verwenden kann ich bereit wäre, etwas anderes zu versuchen, aber ich versuchte, einen Haufen und dieser war die einfachste Ich möchte nur eine Textzeile oder Datei eingeben und sie basierend auf Synonymen/etc. Neu schreiben lassen. Dies scheint die beste Option zu sein, um das zu tun, ich weiß einfach nicht wirklich, was mit dem Code falsch läuft.
Versuchen: 'für Lemma in syn.lemmas()' - man beachte die Klammern –