MCPcopy Create free account
hub / github.com/OpenBMB/BMTools / split_question

Function split_question

bmtools/tools/meta_analysis/api.py:93–114  ·  view source on GitHub ↗
(criteria)

Source from the content-addressed store, hash-verified

91 return docs,sims
92
93def split_question(criteria):
94 prp = """Please decompose the complex query into a series of simple questions. You can refer to these examples: [QUERY] Randomized controlled and controlled clinical trials which evaluated individual education for adults with type 2 diabetes. The intervention was individual face-to-face patient education while control individuals received usual care, routine treatment or group education. Only studies that assessed outcome measures at least six months from baseline were included. [QUESTIONS] ###1 Is a randomised controlled trial (RCT) or a controlled clinical trial conducted in the article? ###2 Does the article compare individual face-to-face patient education versus usual care, routine treatment or group education? ###3 Are the patients in the article adults with type 2 diabetes? ###4 Does the article outcome measure at least six months from baseline? [QUERY] Studies were included if they conduct experiments of comparing graph neural networks with other deep learning models. Performance on molecular datasets is reported. [QUESTIONS] ###1 Does the article conduct experiments of graph neural networks? ###2 Does the article compare different deep learning models? ###3 Does the article report performance on molecular datasets?
95 Now the QUERY is:
96 """
97 prp+=criteria
98 prp+=" What are the decomposed QUESTIONS? "
99 response = generate_response(prp)
100 orig = response.strip('\n')
101 #print('Split Questions: '+orig)
102 if orig.find('###')==-1:
103 cnt = 1
104 while orig.find(str(cnt)+'. ')>-1:
105 orig = orig.replace(str(cnt)+'. ', '###'+str(cnt)+' ')
106 segs = orig.split('###')
107 ques = []
108 for seg in segs:
109 if len(seg.split(' '))<6:
110 continue
111 if seg[0].isdigit()==False:
112 continue
113 ques.append(seg[2:])
114 return ques
115
116def judge(pred):
117 if pred.find('No. ')>-1 or pred.find('No, ')>-1 or pred.find('are not')>-1 or pred.find('is not')>-1 or pred.find('does not')>-1 or pred.find('do not')>-1:

Callers 1

split_criteriaFunction · 0.85

Calls 1

generate_responseFunction · 0.85

Tested by

no test coverage detected