|
import pandas as pd |
|
import os |
|
import difflib |
|
|
|
def map_(input_text): |
|
|
|
|
|
demo_code_folder = './' |
|
|
|
errorType = pd.read_excel('./error_type.xlsx') |
|
type = [] |
|
for i in range(len(errorType)): |
|
information = { |
|
'num': int(errorType['number'][i]), |
|
'type': errorType['type'][i], |
|
'context': errorType['context'][i] |
|
} |
|
type.append(information) |
|
|
|
|
|
best_match = None |
|
best_similarity = 0 |
|
for info in type: |
|
similarity = difflib.SequenceMatcher(None, input_text, info['type']).ratio() |
|
if similarity > best_similarity: |
|
best_similarity = similarity |
|
best_match = info |
|
|
|
|
|
if best_match: |
|
|
|
code_file_name = str(best_match['num']) + ".py" |
|
code_file_path = os.path.join(demo_code_folder, code_file_name) |
|
|
|
if os.path.exists(code_file_path): |
|
|
|
with open(code_file_path, "r") as file: |
|
code = file.read() |
|
return f"存在的错误:\n\n{best_match['context']}\n\n" + '-' * 50 + f"\n\n示例代码:\n```ss\n{code}\nss```" |
|
else: |
|
return "未找到对应的示例代码文件" |
|
else: |
|
return "未找到相似的错误类型" |
|
|
|
|
|
|