回答編集履歴

4

追記

2020/02/12 04:00

投稿

quickquip
quickquip

スコア11094

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  ```
78
78
 
79
- なので、U+2013 `–` の文字ですね。
79
+ なので、U+2013 `–` の文字ですね。 [https://unicode-table.com/en/2013/](https://unicode-table.com/en/2013/)
80
80
 
81
81
  utf-8で不正な文字ではないかと思います。
82
82
 

3

追記

2020/02/12 04:00

投稿

quickquip
quickquip

スコア11094

test CHANGED
@@ -41,3 +41,55 @@
41
41
 
42
42
 
43
43
  [https://docs.python.org/ja/3/library/functions.html#open](https://docs.python.org/ja/3/library/functions.html#open)の`errros`引数の項目を参照。
44
+
45
+
46
+
47
+ ----
48
+
49
+
50
+
51
+ 追記
52
+
53
+
54
+
55
+ こちらの手元のファイルで218行目は
56
+
57
+
58
+
59
+ ```plain
60
+
61
+ >>> x=open('glove.6B/glove.6B.100d.txt','br').readlines()
62
+
63
+
64
+
65
+ >>> x[217]
66
+
67
+ b'\xe2\x80\x93 -0.22111 -0.37868 -0.45325 0.14185 -0.41884 -0.068733 0.9203 -0.61626 -0.5716 -0.42955 1.2049 -1.2358 -0.26185 0.088171 0.75712 -0.24336 0.46966 0.15848 -0.63489 0.040005 0.28095 0.086989 0.80209 0.74317 0.30236 -0.57191 0.65167 -0.4509 1.1676 -0.060849 -0.85457 1.012 0.6167 -0.9409 -0.59359 -0.32423 0.31153 0.97604 -0.33894 0.32657 0.32848 -1.118 -0.090404 -0.61118 0.32629 -0.61908 0.9044 -0.8888 0.0023076 0.58002 -0.71818 -0.43466 0.55749 1.1147 -0.74757 -2.8426 -0.3132 -0.72711 0.16355 0.32031 -0.26561 0.28186 -0.86369 -0.25157 1.0981 -0.2622 -0.49901 0.071966 0.20213 0.072797 -0.23135 -0.022841 0.52705 0.25267 -0.081948 -0.53206 0.39748 0.53545 -0.89259 -0.64567 0.15596 0.022857 -0.29035 0.003132 -0.8019 0.29554 0.10346 -1.2921 0.31751 0.64262 -0.3628 0.15087 0.13307 1.1898 -0.31689 0.22648 -1.0675 -0.26161 0.080567 -1.2265\n'
68
+
69
+
70
+
71
+
72
+
73
+ >>> hex(ord(b'\xe2\x80\x93'.decode('utf-8')))
74
+
75
+ '0x2013'
76
+
77
+ ```
78
+
79
+ なので、U+2013 `–` の文字ですね。
80
+
81
+ utf-8で不正な文字ではないかと思います。
82
+
83
+
84
+
85
+ ```plain
86
+
87
+ – -0.22111 -0.37868 -0.45325 0.14185 -0.41884 -0.068733 0.9203 -0.61626 -0.5716 -0.42955 1.2049 -1.2358 -0.26185 0.088171 0.75712 -0.24336 0.46966 0.15848 -0.63489 0.040005 0.28095 0.086989 0.80209 0.74317 0.30236 -0.57191 0.65167 -0.4509 1.1676 -0.060849 -0.85457 1.012 0.6167 -0.9409 -0.59359 -0.32423 0.31153 0.97604 -0.33894 0.32657 0.32848 -1.118 -0.090404 -0.61118 0.32629 -0.61908 0.9044 -0.8888 0.0023076 0.58002 -0.71818 -0.43466 0.55749 1.1147 -0.74757 -2.8426 -0.3132 -0.72711 0.16355 0.32031 -0.26561 0.28186 -0.86369 -0.25157 1.0981 -0.2622 -0.49901 0.071966 0.20213 0.072797 -0.23135 -0.022841 0.52705 0.25267 -0.081948 -0.53206 0.39748 0.53545 -0.89259 -0.64567 0.15596 0.022857 -0.29035 0.003132 -0.8019 0.29554 0.10346 -1.2921 0.31751 0.64262 -0.3628 0.15087 0.13307 1.1898 -0.31689 0.22648 -1.0675 -0.26161 0.080567 -1.2265
88
+
89
+ ```
90
+
91
+ でした。
92
+
93
+
94
+
95
+ ファイルが壊れていないなら、`encoding='utf-8'`指定してもutf-8で不正でない文字をエラー扱いしていることになってしまいますね……。

2

修正

2020/02/12 03:57

投稿

quickquip
quickquip

スコア11094

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```python
28
28
 
29
- f=open(os.path.join(glove_dir,'glove.6B.100d.txt'),encoding='utf-8')
29
+ f=open(os.path.join(glove_dir,'glove.6B.100d.txt'),encoding='utf-8', errors='backslashreplace')
30
30
 
31
31
  for i, line in enumerate(f, start=1):
32
32
 

1

些細

2020/02/12 02:35

投稿

quickquip
quickquip

スコア11094

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  if '\x93' in line:
34
34
 
35
- print(i, 'data=', line)```
35
+ print(i, 'data=', line)
36
36
 
37
37
  ```
38
38