Ich habe ein Problem mit dem Erstellen Zyklus mit dict. Ich habe ein Wörterbuch: Die Schlüssel sind eindeutige Zahlen, und die Werte sind Wörter. Ich muss eine Matrix erstellen: Zeilen sind Zahlen der Sätze, und Spalten sind die eindeutigen Zahlen für Wörter (aus dem Diktat). Das Element der Matrix zeigt die Anzahl jedes Wortes in jedem Satz an. Dies ist mein Code für das Erstellen des Diktats. (Am Anfang hatte ich eine rohe Textdatei mit Sätzen)Python Zyklus durch Diktat
with open ('sentences.txt', 'r') as file_obj:
lines=[]
for line in file_obj:
line_split=re.split('[^a-z]',line.lower().strip()
j=0
new_line=[]
while j<=len(line_split)-1:
if (line_split[j]):
new_line.append(line_split[j])
j+=1
lines.append(new_line)
vocab = {}
k = 1
for i in range(len(lines)):
for j in range(len(lines[i])):
if lines[i][j] not in vocab.values():
vocab[k]=lines[i][j]
k+=1
import numpy as np //now I am trying to create a matrix
matr = np.array(np.zeros((len(lines),len(vocab))))
m=0
l=0
while l<22:
for f in range (len(lines[l])):
if vocab[1]==lines[l][f]: //this works only for the 1 word in dict
matr[l][0]+=1
l+=1
print(matr[3][0])
matr = np.array(np.zeros((len(lines),len(vocab)))) // this also works
for values in range (len(vocab)):
for line in lines:
a=line.count(vocab[1])
print(a)
Aber wenn ich versuche, einen Zyklus zu machen durch die dict zu gehen, nichts funktioniert! Kannst du mir bitte sagen, wie ich die ganze Matrix füllen kann? Vielen Dank im Voraus!
Es klingt sicher, als würden Sie Ihr Wörterbuch rückwärts entwerfen. Wenn Sie auf die Zahlen zugreifen müssen, indem Sie das Wort nachschlagen, sollten die Wörter die Schlüssel und die Zahlen die Werte sein. – Blckknght
Können Sie uns ein Beispiel dafür geben, was Sie erreichen möchten? –
Natürlich @Blckknght ist richtig, aber ich sehe viel mehr Redundanz beim Aufbau des Wörterbuchs. Warum teilen Sie jede Zeile auf und fügen Sie sie dann wieder hinzu (?), Um den gesamten Inhalt zu durchlaufen, wenn Sie die Wörter aus der Zeile 'split' sofort hinzufügen können? Ist "Vocab" nicht auch eine globale Variable? – usr2564301