※ 引述《l1221l (一一二二一一)》之銘言:
: 試著使用word2vector
: 他們官網提供了train好的資料
: 但是是binary 1的bin檔
: 想轉成可閱讀的形式
: en = content.decode('utf-8')
: print(en)
: 看到的是
: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 5:
: invalid start byte
: 還沒找到解決方案
: 有train了binary 0的資料是
: 71291 48
: </s> 0.008339 0.009207 -0.007980 -0.006829 0.002847 0.006294
: 0.001960 0.000440 -0.007507 0.004622 -0.009076 0.002603 -0.001565 -0.001994
: -0.006908 -0.003921 0.005374 0.006303 0.006186 0.003328 0.003218 -0.007922
: -0.008533 0.010353 0.007919 0.006438 -0.001258 0.008366 -0.001031 0.001531
: -0.000311 -0.006215 0.002734 -0.002786 -0.007970 0.009905 0.009123 -0.002282
: -0.000471 0.001061 -0.007579 -0.008348 0.009489 0.000131 -0.005380 -0.006338
: -0.006409 0.003535
: binary 1的第一行是
: b'71291 200\n'
: b'</s> \xf6(\x03;\xa4\xd0\x10;\x1f\x05\xfb\xba{\xd4\xd6\xba\xb8\x1e3:
: q\xfd\xc5:\xd7\xa3\xf69\x9a\x99\xdd8\xf6(\xec\xba\xd7c\x91:
: \x00\xc0\x0e\xbb\xae\xc7#:\xc3\xf5\xc4\xb9\x85\xeb\xfa\xb9\xcdL
: \xd9\xba3\xb3v\xba=\n'
: 不過這個是小的檔案拿來做對比的
: 他train好的檔案很大 沒有data給我重新來train
: 請問各位大大有沒有好解法呢
: 謝謝
如果是要存成json,在寫入檔案的時候,用這樣輸出:
with open('filename.json', 'w', encoding='utf8') as output:
output.write(json.dumps(meta_data, ensure_ascii=False))
標這個顏色的是關鍵所在
標的第一個是讓檔案輸出是用utf-8的編碼,第二個是讓他直接顯示編碼後的utf-8字元
據我的了解,一般儲存的時候會用ascii模式下去存,
所以才會顯示成'\xf6'的形式,來確保一定能存的進文件,
關掉ensure_ascii應該就能正確的顯示了。