ich möchte von der Funktion ein Array von Wörtern aus nltk.Why zurückgegeben diese Funktion nur ein Wort zurückgibt, und wenn ich die Rückkehr kommentieren und kommentieren der Druck gibt die 5 Wörter zurück.Python-Funktion gibt nur einen Wert zurück
Ich möchte sie zurückgeben und sie in einer anderen Funktion verwenden.
file = open('Text/Walden.txt', 'r',encoding="utf8")
walden = file.read()
walden = walden.split()
def makePairs(arr):
pairs = []
for i in range(len(arr)):
if i < len(arr)-1:
temp = (arr[i], arr[i+1])
pairs.append(temp)
return pairs
def generate(cfd, word = 'the', num = 5):
for i in range(num):
arr = [] # make an array with the words shown by proper count
for j in cfd[word]:
for k in range(cfd[word][j]):
arr.append(j)
word = arr[int((len(arr))*random.random())] # choose the word randomly from the conditional distribution
print(word, end=' ')
return(word)
#return random.choices(arr, k=num)
pairs = makePairs(walden)
cfd = nltk.ConditionalFreqDist(pairs)
generate(cfd)
Der Ausgang ist nun wie folgt aus:
little The print The
had
>>>
oder
But girl?"— print girl?"—
cases
>>>
In dieser Zeile: ‚Wort = arr [int ((len (arr)) * random.random. "Ich glaube, dass Sie ein Wort auswählen. Der Druck ist vor ihm, also zeigen Sie alle Wörter – fernand0
fernand0, keine Argumente dort. Schien wie OP war hauptsächlich damit beschäftigt, warum" Rückkehr "nicht wie erwartet funktioniert - ich denke, die 'print'-Anweisung war hauptsächlich zum Debuggen. –
die Zeile' #print (word, end = '') 'würde was auch immer in der Variablen' word' ausgeben. Gleich danach würde man eine zufällige Position von arr in Worte fassen 'word = arr [int ((len (arr)) * random.random())]' und später gibst du das zurück, das heißt, wenn ich correc bin t nur ein Wort. Also meine Antwort erklären, warum das nicht funktionierte. – fernand0