【发布时间】:2015-09-24 07:24:19
【问题描述】:
我想对record 应用三个级别的过滤。
-
rec在 cname 中。rec是>2 个单词的字符串,所以我想考虑将rec的所有ngram 签入record我。如果
gram匹配到record增加filter_company_level并将其写入文件 -
记录的第二个过滤器针对
self.keyword_material_info列表中的每个值value。我。如果
value匹配到record增加filter_with_material_info并将其写入文件 -
第三个过滤器用于
self.keyword_bse_list中的item。我。如果
item匹配到record增加filter_with_keyword_info并将其写入文件二。如果存在最里面的过滤器,现在移动到下一条记录。
我已经写了这些代码,它是否满足上述条件,或者有什么错误?他们都没有给出错误,但想确保逻辑是正确的。
for record in fetch_record:
total += 1
for rec in cname:
try:
c_ngram = self.get_ngrams(rec['company_name'])
for gram in c_ngram:
if gram.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_company_level += 1
# print "Matched based on company name : ", record['article_link']
company_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+'\n')
for value in self.keyword_material_info:
if value.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_material_info += 1
materialinfo_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+' - '+value+'\n')
for item in self.keyword_bse_list:
if item.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_keyword_info += 1
keyword_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+" - "+value+' - '+item+'\n')
print record['article_link']
print value
print item
break
break
# break
raise GetOutOfLoop
except GetOutOfLoop:
break
或者这个是正确的?
for record in fetch_record:
total += 1
for rec in cname:
try:
c_ngram = self.get_ngrams(rec['company_name'])
for gram in c_ngram:
if gram.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_company_level += 1
# print "Matched based on company name : ", record['article_link']
company_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+'\n')
for value in self.keyword_material_info:
if value.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_material_info += 1
materialinfo_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+' - '+value+'\n')
flag_keyword = 0
for item in self.keyword_bse_list:
if item.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_keyword_info += 1
keyword_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+" - "+value+' - '+item+'\n')
print record['article_link']
print value
print item
flag_keyword = 1
break
if flag_keyword == 1:
break
# break
if flag_keyword == 1:
raise GetOutOfLoop
except GetOutOfLoop:
break
【问题讨论】:
-
你的问题本质上是“测试我的代码”吗?
-
@bereal:是为了验证我的代码。我认为这个问题不值得投票,因为我已经清楚地提到了我在做什么和我的尝试。提醒您一下,SO 仅用于编码帮助。
-
code review 更适合这种请求。
-
@bereal:感谢您提供此链接,如果您已申请,我想知道投反对票的原因
-
原因是这个问题对于 SO 来说是题外话,因为它没有解决您可能遇到的任何特定问题,并且以后不会对任何人有用。