質問編集履歴

12

書式の改善

2019/05/09 19:08

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -140,15 +140,9 @@
140
140
 
141
141
 
142
142
 
143
-
143
+ 特に下記コード
144
144
 
145
145
  ```
146
-
147
-
148
-
149
- とくに重複したクエリ取得と
150
-
151
-
152
146
 
153
147
  pow(dataset[person1][item]-dataset[person2][item], 2)
154
148
 

11

書式の改善

2019/05/09 19:08

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -104,7 +104,7 @@
104
104
 
105
105
  movie1=[person1.movie.value]
106
106
 
107
- score1=[person1.movie.value]
107
+ score1=[person1.score.value]
108
108
 
109
109
 
110
110
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  movie2=[person2.movie.value]
116
116
 
117
- score2=[person2.movie.value]
117
+ score2=[person2.score.value]
118
118
 
119
119
 
120
120
 

10

書式の改善

2019/05/09 18:59

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -126,9 +126,9 @@
126
126
 
127
127
 
128
128
 
129
- for values in set_both.values:
129
+ for value in set_both.values:
130
130
 
131
- distance = pow(movie_score1..values-movie_score2.values, 2)
131
+ distance = pow(movie_score1.value-movie_score2.value, 2)
132
132
 
133
133
  list_destance.append(distance)
134
134
 

9

書式

2019/05/09 15:50

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,13 @@
36
36
 
37
37
  ```
38
38
 
39
- このソースコードをdjangoで書きたいのですが
39
+
40
40
 
41
41
  下記コードは[Pythonで簡単な協調フィルタリングを実装するためのノート](https://qiita.com/hik0107/items/96c483afd6fb2f077985)
42
42
 
43
43
  を参考にしました。
44
+
45
+
44
46
 
45
47
  ```
46
48
 
@@ -86,7 +88,7 @@
86
88
 
87
89
 
88
90
 
89
- こで一つ考えたのが下記プログラムなのですが、どうでしょうか?
91
+ れをデータベースから引っ張り出してdjango書いみたのが下記プログラムです
90
92
 
91
93
 
92
94
 
@@ -164,8 +166,4 @@
164
166
 
165
167
  またここに書いてあるよってありましたら、教えてください。
166
168
 
167
- teratailにも聞いてます。
168
-
169
- https://teratail.com/questions/188254?modal=q-comp
170
-
171
169
  よろしくお願いします。

8

書式

2019/05/09 13:36

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -86,49 +86,9 @@
86
86
 
87
87
 
88
88
 
89
- この場合一つ案ででてきたのが
90
-
91
- ```
92
-
93
- def get_similairty(person1, person2):
89
+ そこで一つ考えたのが下記プログラムなのですが、どうでしょうか?
94
-
95
- person1 = Entry.objects.values('movie','score').get(name='Lisa Rose')
96
-
97
- person2 = Entry.objects.values('movie','score').get(name='Gene Seymour')
98
-
99
- set_both= person1.movie.values & perosn2.movie.vulues
100
90
 
101
91
 
102
-
103
- if len(set_both)==0:
104
-
105
- return 0
106
-
107
-
108
-
109
- list_destance = []
110
-
111
-
112
-
113
- for person1.movie.value,person2.movie.value in set_both:
114
-
115
- distance = pow(person1.score.value-person2.score.value, 2)
116
-
117
- list_destance.append(distance)
118
-
119
-
120
-
121
- return 1/(1+sqrt(sum(list_destance)))
122
-
123
-
124
-
125
-
126
-
127
- ```
128
-
129
-
130
-
131
- もう一つ考えたのが
132
92
 
133
93
  ```
134
94
 
@@ -164,9 +124,9 @@
164
124
 
165
125
 
166
126
 
167
- for movie_score1.keys,movie_score2.keys in set_both:
127
+ for values in set_both.values:
168
128
 
169
- distance = pow(movie_score1.score-movie_score2.score, 2)
129
+ distance = pow(movie_score1..values-movie_score2.values, 2)
170
130
 
171
131
  list_destance.append(distance)
172
132
 
@@ -184,11 +144,7 @@
184
144
 
185
145
 
186
146
 
187
- ここからわからないです。
188
-
189
- とくに
190
-
191
- 重複したクエリ取得と
147
+ とくに重複したクエリ取得と
192
148
 
193
149
 
194
150
 
@@ -200,6 +156,8 @@
200
156
 
201
157
  が特にどうかけばいいのかわかりません。
202
158
 
159
+ 一応上記で自分の書いたプログラム書いてみたのですが....
160
+
203
161
  djangoで協調フィルタリングのプログラムってサイトさがしてもないのですが
204
162
 
205
163
  どう書いたらいいでしょうか?
@@ -210,4 +168,4 @@
210
168
 
211
169
  https://teratail.com/questions/188254?modal=q-comp
212
170
 
213
- よろしくお願いしますw
171
+ よろしくお願いします

7

修正

2019/05/09 13:34

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -188,8 +188,6 @@
188
188
 
189
189
  とくに
190
190
 
191
- ```
192
-
193
191
  重複したクエリ取得と
194
192
 
195
193
 

6

修正

2019/05/08 22:26

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- この場合
89
+ この場合一つ案ででてきたのが
90
90
 
91
91
  ```
92
92
 
@@ -196,9 +196,9 @@
196
196
 
197
197
  pow(dataset[person1][item]-dataset[person2][item], 2)
198
198
 
199
-
200
-
201
- ```
199
+ ```
200
+
201
+
202
202
 
203
203
  が特にどうかけばいいのかわかりません。
204
204
 

5

修正

2019/05/08 22:25

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -120,6 +120,66 @@
120
120
 
121
121
  return 1/(1+sqrt(sum(list_destance)))
122
122
 
123
+
124
+
125
+
126
+
127
+ ```
128
+
129
+
130
+
131
+ もう一つ考えたのが
132
+
133
+ ```
134
+
135
+ def get_similairty(person1, person2):
136
+
137
+ person1 = Entry.objects.filter(name='TaroLisa Rose')
138
+
139
+ person2 = Entry.objects.filter(name='TaroGene Seymour')
140
+
141
+
142
+
143
+ movie1=[person1.movie.value]
144
+
145
+ score1=[person1.movie.value]
146
+
147
+
148
+
149
+ movie_score1=dict(zip(movie1,score1))
150
+
151
+
152
+
153
+ movie2=[person2.movie.value]
154
+
155
+ score2=[person2.movie.value]
156
+
157
+
158
+
159
+ movie_score2=dict(zip(movie2,score2))
160
+
161
+
162
+
163
+ set_both=movie_score1.keys() & movie_score2.keys()
164
+
165
+
166
+
167
+ for movie_score1.keys,movie_score2.keys in set_both:
168
+
169
+ distance = pow(movie_score1.score-movie_score2.score, 2)
170
+
171
+ list_destance.append(distance)
172
+
173
+
174
+
175
+ return 1/(1+sqrt(sum(list_destance)))
176
+
177
+ ```
178
+
179
+
180
+
181
+
182
+
123
183
  ```
124
184
 
125
185
 
@@ -148,8 +208,8 @@
148
208
 
149
209
  またここに書いてあるよってありましたら、教えてください。
150
210
 
151
- djangoのfilterみいるんでが、なかなかうまくかけずに
211
+ teratailにも聞い
152
-
212
+
153
- 自分の書いたプログラムには問題点が多いみたいですので、こういう感じで書くといいんじゃないか
213
+ https://teratail.com/questions/188254?modal=q-comp
154
-
214
+
155
- できればdjangoではこう書って教えてもらえると助かります
215
+ よろしお願いしますw

4

修正

2019/05/08 22:24

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
  person2 = Entry.objects.values('movie','score').get(name='Gene Seymour')
98
98
 
99
- set_both= person1.movie.keys() & perosn2.movie.keys()
99
+ set_both= person1.movie.values & perosn2.movie.vulues
100
100
 
101
101
 
102
102
 
@@ -107,6 +107,18 @@
107
107
 
108
108
 
109
109
  list_destance = []
110
+
111
+
112
+
113
+ for person1.movie.value,person2.movie.value in set_both:
114
+
115
+ distance = pow(person1.score.value-person2.score.value, 2)
116
+
117
+ list_destance.append(distance)
118
+
119
+
120
+
121
+ return 1/(1+sqrt(sum(list_destance)))
110
122
 
111
123
  ```
112
124
 

3

2019/05/08 20:58

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
File without changes

2

2019/05/08 20:07

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
  person2 = Entry.objects.values('movie','score').get(name='Gene Seymour')
98
98
 
99
- set_both= person1.keys() & perosn2.keys()
99
+ set_both= person1.movie.keys() & perosn2.movie.keys()
100
100
 
101
101
 
102
102
 

1

修正

2019/05/08 20:07

投稿

gik
gik

スコア152

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,9 @@
135
135
  どう書いたらいいでしょうか?
136
136
 
137
137
  またここに書いてあるよってありましたら、教えてください。
138
+
139
+ djangoのfilterみているんですが、なかなかうまくかけずに
140
+
141
+ 自分の書いたプログラムには問題点が多いみたいですので、こういう感じで書くといいんじゃないか
142
+
143
+ できればdjangoではこう書くって教えてもらえると助かります