Ich bin derzeit ein Anfänger, der maschinelles Lernen lernt. Durch Kopieren des Codes des Vorfahren mit kaggle werde ich den Fehler, der beim Erlernen der Methode und der Lösung aufgetreten ist, als Erinnerung zusammenfassen.
Zusammenfassend versucht Windows standardmäßig, auf CP932 zu konvertieren. Wenn es jedoch nicht in CP932 konvertiert werden kann, tritt eine UnicodeEncodeError-Ausnahme auf, sodass wir die Gegenmaßnahmen zusammengefasst haben.
Referenz-URL https://qiita.com/Yuu94/items/9ffdfcb2c26d6b33792e
https://qiita.com/butada/items/33db39ced989c2ebf644
Windows 10 Home Python 3.7.4.
embedding_dict={}
with open('xxxxx.txt','r') as f:
for line in f:
values=line.split()
word = values[0]
vectors=np.asarray(values[1:],'float32')
embedding_dict[word]=vectors
f.close()
UnicodeDecodeError: 'cp932' codec can't decode byte 0x93 in position 5456: illegal multibyte sequence
Kam heraus. Dies bedeutet, dass bei Verwendung einer Windows-Umgebung die Standardeinstellung mit cp932 codiert ist. In diesem Fall wird eine Fehlermeldung angezeigt, wenn Code enthalten ist, der nicht konvertiert werden kann. Der spezifische Code ist diesmal unbekannt, aber es scheint, dass der Code der Person aus Übersee von kaggle kopiert wurde.
Fügen Sie daher dem Programm eine Beschreibung hinzu, damit es in UTF-8 codiert wird.
embedding_dict={}
with open('xxxxx.txt','r',encoding="utf-8") as f:
for line in f:
values=line.split()
word = values[0]
vectors=np.asarray(values[1:],'float32')
embedding_dict[word]=vectors
f.close()
Fügen Sie einfach encoding = "utf-8" hinzu, aber das ist die Lösung.
Ich habe erfahren, dass der Fehler selbst ein Windows-spezifisches Problem ist und wie er codiert wurde.
Recommended Posts