|
@@ -10,46 +10,46 @@ def jieba_tokenizer(text):
|
|
|
return list(jieba.cut(text))
|
|
|
# 定义问题模板
|
|
|
template_dict = {
|
|
|
- "1": ["某年省间交易电量是多少?","某年全年累计省间交易电量是多少?","某年累计省间交易电量是多少?","某年一整年累计省间交易电量是多少?"],
|
|
|
+ "1": ["某年省间交易电量是多少?","某年全年累计省间交易电量是多少?","某年累计省间交易电量是多少?","某年一整年累计省间交易电量是多少?","某年年度累计交易电量是多少?"],
|
|
|
# "1": ["某年全年累计XXX是多少?"],
|
|
|
"2": ["某年某月交易电量是多少?","某年某月完成了多少交易电量?"],
|
|
|
"3": ["某年某月至某月的交易电量合计多少?","某年某月到某月累计交易电量是多少?","某年某月至某月累计交易电量是多少?"],
|
|
|
"8.1": ["某年省间交易电量按交易周期划分的电量是多少?"],
|
|
|
- "8.2": ["某年省间交易电量按交易类型划分的电量是多少?"],
|
|
|
+ "8.2": ["某年省间交易电量按交易类型划分的电量是多少?","某年省间交易电量按交易的类型划分的电量是多少"],
|
|
|
"8.3": ["某年省间交易电量按发电类型划分的电量是多少?"],
|
|
|
- "8.4": ["某年省间交易电量按交易方式划分的电量是多少?"],
|
|
|
+ "8.4": ["某年省间交易电量按交易方式划分的电量是多少?","某年省间交易电量按交易的方式划分的电量是多少?"],
|
|
|
"9.1": ["某年省间交易电量年度交易电量是多少?"],
|
|
|
"9.2": ["某年省间交易电量月度交易电量是多少?"],
|
|
|
- "9.3": ["某年省间交易电量现货交易电量是多少?"],
|
|
|
+ "9.3": ["某年省间交易电量现货交易电量是多少?","某年现货的交易电量?"],
|
|
|
"9.4": ["某年省间交易电量应急交易电量是多少?"],
|
|
|
"9.5": ["某年省间交易电量月内交易电量是多少?"],
|
|
|
- "9.6": ["某年省间交易电量省间外送交易电量是多少?"],
|
|
|
+ "9.6": ["某年省间交易电量省间外送交易电量是多少?","某年省间外送的交易电量是多少?"],
|
|
|
"9.7": ["某年省间交易电量电力直接交易电量是多少?"],
|
|
|
"9.8": ["某年省间交易电量合同交易电量是多少?"],
|
|
|
- "9.9": ["某年省间交易电量绿电交易电量是多少?"],
|
|
|
+ "9.9": ["某年省间交易电量绿电交易电量是多少?","某年省间交易电量中绿电交易电量是多少?"],
|
|
|
"9.10": ["某年省间交易电量非市场化交易电量是多少?"],
|
|
|
- "9.11": ["某年省间交易电量新能源交易电量是多少?"],
|
|
|
- "9.12": ["某年省间交易电量火电交易电量是多少?"],
|
|
|
- "9.13": ["某年省间交易电量水电交易电量是多少?"],
|
|
|
- "9.14": ["某年省间交易电量核电交易电量是多少?"],
|
|
|
+ "9.11": ["某年省间交易电量新能源交易电量是多少?","某年按新能源的类型的交易电量是多少?"],
|
|
|
+ "9.12": ["某年省间交易电量火电交易电量是多少?","某年按火电的类型的交易电量是多少?"],
|
|
|
+ "9.13": ["某年省间交易电量水电交易电量是多少?","某年省间交易电量按水电类型交易电量是多少?","某年按水电的类型的交易电量是多少?"],
|
|
|
+ "9.14": ["某年省间交易电量核电交易电量是多少?","某年省间交易电量按核电类型交易电量是多少?","某年按核电的类型的交易电量是多少?"],
|
|
|
"9.15": ["某年省间交易电量双边交易电量是多少?"],
|
|
|
"9.16": ["某年省间交易电量集中交易电量是多少?"],
|
|
|
"9.17": ["某年省间交易电量挂牌交易电量是多少?"],
|
|
|
- "16.1": ["当月送出均价最高的是哪个省?","当年送出均价最高的是哪个省?"],
|
|
|
- "16.2": ["当月送出均价最低的是哪个省?","当年送出均价最低的是哪个省?"],
|
|
|
+ # "16.1": ["当月送出均价最高的是哪个省?","当年送出均价最高的是哪个省?"],
|
|
|
+ # "16.2": ["当月送出均价最低的是哪个省?","当年送出均价最低的是哪个省?"],
|
|
|
"17.1": ["某年某月哪个省送出电量最高?是多少?"],
|
|
|
"17.2": ["某年某月哪个省受入电量最高?是多少?"],
|
|
|
"17.3": ["某年某月哪个省送出电量最低?是多少?"],
|
|
|
"17.4": ["某年某月哪个省受入电量最低?是多少?"],
|
|
|
- "18.1": ["某年某月哪个省送出均价最高?是多少?"],
|
|
|
+ "18.1": ["某年某月哪个省送出均价最高?是多少?","某年某月送出均价最高的是哪个省?","某年某月哪个省送出均价最高?"],
|
|
|
"18.2": ["某年某月哪个省受入均价最高?是多少?"],
|
|
|
"18.3": ["某年某月哪个省送出均价最低?是多少?"],
|
|
|
"18.4": ["某年某月哪个省受入均价最低?是多少?"],
|
|
|
"19": ["省间交易正在组织的交易有多少?"],
|
|
|
- "20": ["省间交易当月完成的交易有多少?"],
|
|
|
- "21": ["省间交易当年完成的交易有多少?"],
|
|
|
- "22": ["省间交易当年达成的电量有多少?"],
|
|
|
- "23": ["省间交易当年参与交易的家次有多少?"],
|
|
|
+ "20": ["省间交易当月完成的交易有多少?","省间交易本月已经完成的交易有多少?"],
|
|
|
+ "21": ["省间交易当年完成的交易有多少?","省间交易今年已经完成的交易有多少?","省间交易本年完成的交易有多少?"],
|
|
|
+ "22": ["省间交易当年达成的电量有多少?","省间交易本年达成的电量有多少?"],
|
|
|
+ "23": ["省间交易当年参与交易的家次有多少?","省间交易今年参与交易的家次数有多少?"],
|
|
|
"24": ["某年送出电量前五名是谁?"],
|
|
|
"25": ["某年受入电量前五名是谁?"],
|
|
|
"26": ["某年受入电量第五名是谁?"],
|
|
@@ -471,9 +471,13 @@ def process_query(query, template_dict, json_folder, tokenizer=jieba_tokenizer):
|
|
|
# 按得分排序(降序)
|
|
|
all_matches.sort(key=lambda x: x[2], reverse=True)
|
|
|
best_match = all_matches[0]
|
|
|
+ best_key = best_match[0]
|
|
|
best_score = best_match[2]
|
|
|
second_score = all_matches[1][2] if len(all_matches) > 1 else 0
|
|
|
|
|
|
+ second_match = all_matches[1]
|
|
|
+ second_key = second_match[0]
|
|
|
+
|
|
|
# 判断阈值
|
|
|
similarity_threshold = 0.25
|
|
|
diff_threshold = 0.05 # 差距阈值,可调
|
|
@@ -489,7 +493,7 @@ def process_query(query, template_dict, json_folder, tokenizer=jieba_tokenizer):
|
|
|
"name": "疑问"
|
|
|
}
|
|
|
|
|
|
- if (best_score - second_score) < diff_threshold:
|
|
|
+ if ((best_score - second_score) < diff_threshold) and (best_key != second_key):
|
|
|
# 差距太小,匹配不准确
|
|
|
return {
|
|
|
"content": "您提问的问题不太准确,我无法理解",
|