Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
P
physical
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alpha
physical
Commits
54df8a8d
Commit
54df8a8d
authored
6 years ago
by
黄凯
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hk_now' into 'master'
revise click topic recall See merge request alpha/physical!252
parents
3cc7397b
45c3d612
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
39 deletions
+36
-39
collect_data.py
linucb/views/collect_data.py
+15
-36
topic.py
search/views/topic.py
+21
-3
No files found.
linucb/views/collect_data.py
View file @
54df8a8d
...
...
@@ -34,6 +34,7 @@ class CollectData(object):
self
.
linucb_recommend_redis_prefix
=
"physical:linucb:tag_recommend:device_id:"
self
.
linucb_recommend_topic_id_prefix
=
"physical:linucb:topic_recommend:device_id:"
self
.
tag_topic_id_redis_prefix
=
"physical:tag_id:topic_id_list:"
self
.
click_recommend_redis_key_prefix
=
"physical:click_recommend:device_id:"
# 默认
self
.
user_feature
=
[
0
,
1
]
...
...
@@ -80,51 +81,29 @@ class CollectData(object):
if
len
(
click_topic_tag_list
)
>
0
:
recommend_topic_id_list_click
=
ESPerform
.
get_tag_topic_list
(
click_topic_tag_list
,
have_read_topic_id_list
)
if
len
(
recommend_topic_id_list_click
)
>
0
:
num
=
min
(
len
(
recommend_topic_id_list_click
),
2
)
logging
.
info
(
"recommend_topic_id_list:
%
s"
%
(
str
(
num
)))
for
i
in
range
(
0
,
num
):
if
len
(
recommend_topic_id_list_click
)
>
0
:
num
=
min
(
len
(
recommend_topic_id_list_click
),
2
)
logging
.
info
(
"recommend_topic_id_list:
%
s"
%
(
str
(
num
)))
for
i
in
range
(
0
,
num
):
recommend_topic_id_list
.
append
(
recommend_topic_id_list_click
[
i
])
logging
.
info
(
"recommend_topic_id_list:
%
s"
%
(
str
(
recommend_topic_id_list
)))
have_read_topic_id_list
.
extend
(
recommend_topic_id_list
)
click_recommend_redis_key
=
self
.
click_recommend_redis_key_prefix
+
str
(
device_id
)
click_redis_data_dict
=
{
"data"
:
json
.
dumps
(
recommend_topic_id_list
),
"cursor"
:
0
}
redis_client
.
hmset
(
click_recommend_redis_key
,
click_redis_data_dict
)
tag_topic_id_list
=
list
()
tag_id_list
=
recommend_tag_list
[
0
:
100
]
tag_topic_id_list
=
ESPerform
.
get_tag_topic_list
(
tag_id_list
,
have_read_topic_id_list
)
recommend_topic_id_list
.
extend
(
tag_topic_id_list
)
logging
.
info
(
"recommend_topic_id_list:
%
s"
%
(
str
(
recommend_topic_id_list
)))
# for index in range(0,100):
# recommend_topic_id_list_es = list()
# for tag_id in recommend_tag_list[0:100]:
# redis_tag_id_key = self.tag_topic_id_redis_prefix + str(tag_id)
# redis_tag_id_data = redis_client.get(redis_tag_id_key)
# tag_topic_id_list = json.loads(redis_tag_id_data) if redis_tag_id_data else []
# if not redis_tag_id_data:
# tag_topic_id_list = ESPerform.get_tag_topic_list(tag_id)
# redis_client.set(redis_tag_id_key,json.dumps(tag_topic_id_list))
# redis_client.expire(redis_tag_id_key,1*24*60*60)
#
# if len(tag_topic_id_list)>index:
# for topic_id in tag_topic_id_list[index:]:
# if topic_id not in have_read_topic_id_list and topic_id not in recommend_topic_id_list_random and topic_id not in recommend_topic_id_list:
# recommend_topic_id_list_random.append(topic_id)
# break
# tag_id = recommend_tag_list[0:100]
# tag_topic_id_list = ESPerform.get_tag_topic_list(tag_id)
# if len(tag_topic_id_list) > index:
# for topic_id in tag_topic_id_list[index:]:
# if topic_id not in have_read_topic_id_list and topic_id not in recommend_topic_id_list_es and topic_id not in recommend_topic_id_list:
# recommend_topic_id_list_es.append(topic_id)
# if len(recommend_topic_id_list_es) == 100:
# break
# # random.shuffle(recommend_topic_id_list_random)
# recommend_topic_id_list.extend(recommend_topic_id_list_es)
topic_recommend_redis_key
=
self
.
linucb_recommend_topic_id_prefix
+
str
(
device_id
)
redis_data_dict
=
{
"data"
:
json
.
dumps
(
recommend
_topic_id_list
),
"data"
:
json
.
dumps
(
tag
_topic_id_list
),
"cursor"
:
0
}
redis_client
.
hmset
(
topic_recommend_redis_key
,
redis_data_dict
)
return
True
except
:
...
...
This diff is collapsed.
Click to expand it.
search/views/topic.py
View file @
54df8a8d
...
...
@@ -59,6 +59,7 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
redis_field_val_list
=
redis_client
.
hmget
(
redis_key
,
redis_field_list
)
topic_recommend_redis_key
=
"physical:linucb:topic_recommend:device_id:"
+
str
(
device_id
)
click_recommend_redis_key
=
"physical:click_recommend:device_id:"
+
str
(
device_id
)
# recommend_tag_dict = dict()
...
...
@@ -76,6 +77,19 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
recommend_topic_list
=
recommend_topic_id_list
[
cursor
:
newcursor
]
redis_client
.
hset
(
topic_recommend_redis_key
,
"cursor"
,
newcursor
)
click_recommend_topic_id_list
=
list
()
click_recommend_topic_list
=
list
()
click_recommend_topic_dict
=
redis_client
.
hgetall
(
click_recommend_redis_key
)
if
b
"data"
in
click_recommend_topic_dict
:
click_recommend_topic_id_list
=
json
.
loads
(
click_recommend_topic_dict
[
b
"data"
])
cursor
=
int
(
str
(
click_recommend_topic_dict
[
b
"cursor"
],
encoding
=
"utf-8"
))
newcursor
=
cursor
+
2
if
len
(
click_recommend_topic_id_list
)
>
newcursor
:
click_recommend_topic_list
=
click_recommend_topic_id_list
[
cursor
:
newcursor
]
redis_client
.
hset
(
click_recommend_redis_key
,
"cursor"
,
newcursor
)
combine_recommend_topic_list_tmp
=
click_recommend_topic_list
.
extend
(
recommend_topic_list
)
combine_recommend_topic_list
=
combine_recommend_topic_list_tmp
[
0
:
5
]
have_read_topic_id_list
=
list
()
if
redis_field_val_list
[
0
]:
...
...
@@ -94,11 +108,11 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
redis_tag_data
=
redis_client
.
hget
(
"physical:linucb:register_user_tag_info"
,
user_id
)
attention_tag_list
=
json
.
loads
(
redis_tag_data
)
if
redis_tag_data
else
[]
size
=
size
-
len
(
recommend_topic_list
)
size
=
size
-
len
(
combine_
recommend_topic_list
)
topic_id_list
=
TopicUtils
.
get_recommend_topic_ids
(
user_id
=
user_id
,
tag_id
=
tag_id
,
offset
=
offset
,
size
=
size
,
single_size
=
size
,
query
=
query
,
query_type
=
query_type
,
filter_topic_id_list
=
have_read_topic_id_list
,
recommend_tag_list
=
recommend_topic_list
,
recommend_tag_list
=
combine_
recommend_topic_list
,
user_similar_score_list
=
user_similar_score_redis_list
,
index_type
=
"topic"
,
routing
=
"4,5"
,
attention_tag_list
=
attention_tag_list
)
have_read_group_id_set
=
set
()
have_read_user_id_set
=
set
()
...
...
@@ -140,7 +154,11 @@ def get_home_recommend_topic_ids(user_id, device_id, tag_id, offset, size, query
# else:
# break
topic_id_list
.
extend
(
recommend_topic_list
)
topic_id_list
.
extend
(
combine_recommend_topic_list
)
# recommend_topic_list.extend(topic_id_list)
have_read_topic_id_list
.
extend
(
topic_id_list
)
if
len
(
have_read_topic_id_list
)
>
30000
:
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment