【发布时间】:2016-08-24 11:55:12
【问题描述】:
我需要帮助来降低以下代码的圈复杂度:
def avg_title_vec(record, lookup):
avg_vec = []
word_vectors = []
for tag in record['all_titles']:
titles = clean_token(tag).split()
for word in titles:
if word in lookup.value:
word_vectors.append(lookup.value[word])
if len(word_vectors):
avg_vec = [
float(val) for val in numpy.mean(
numpy.array(word_vectors),
axis=0)]
output = (record['id'],
','.join([str(a) for a in avg_vec]))
return output
示例输入:
record ={'all_titles': ['hello world', 'hi world', 'bye world']}
lookup.value = {'hello': [0.1, 0.2], 'world': [0.2, 0.3], 'bye': [0.9, -0.1]}
def clean_token(input_string):
return input_string.replace("-", " ").replace("/", " ").replace(
":", " ").replace(",", " ").replace(";", " ").replace(
".", " ").replace("(", " ").replace(")", " ").lower()
因此,lookup.value 中存在的所有单词,我正在取它们的向量形式的平均值。
【问题讨论】:
-
你介意解释一下代码首先要做什么吗?
-
添加了更多细节
-
我从一开始就尝试自己编写代码,但最终得到了相同的代码:)
标签: python cyclomatic-complexity