OpsEval / latex_utils.py
Junetheriver's picture
add latex and csv function
de840d4
import pandas as pd
from tabulate import tabulate
import re
# 创建一个示例 DataFrame
data = {
'Model': [
'GPT-4', 'GLM-4', 'GPT-3.5-turbo', 'Qwen-72B-Chat', 'ERNIE-Bot-4.0', 'LLaMA-2-70B',
'DevOps-Model-14B-Chat', 'GLM-3-turbo', 'Qwen-14B-Chat', 'LLaMA-2-13B', 'InternLM2-Chat-20B',
'LLaMA-2-7B', 'Qwen-7B-Chat', 'Baichuan2-13B-Chat', 'InternLM2-Chat-7B', 'Mistral-7B', 'ChatGLM3-6B'
],
'Naive': [
'/', '64.77', '68.30', '70.32', '60.00', '55.00', '63.85', '59.53', '62.60', '53.30', '60.48',
'48.20', '52.10', '51.90', '48.20', '47.22', '42.10'
],
'SC': [
'/', '64.77', '68.30', '70.32', '60.00', '56.20', '61.96', '59.53', '59.70', '53.00', '60.48',
'46.80', '51.00', '51.60', '48.20', '47.22', '42.10'
],
'CoT': [
'88.70', '77.06', '70.90', '70.13', '70.00', '66.80', '41.15', '63.65', '50.58', '56.80', '45.10',
'52.00', '48.30', '44.50', '49.74', '45.58', '43.47'
],
'CoT+SC': [
'/', '77.06', '72.50', '70.22', '70.00', '67.20', '44.01', '63.65', '55.88', '61.00', '45.10',
'55.20', '49.80', '47.45', '49.74', '45.58', '43.47'
]
}
df = pd.DataFrame(data)
# 使用tabulate生成LaTeX表格
latex_table = tabulate(df, headers='keys', tablefmt='latex', showindex=False,
colalign='left')
def gen_latex_table(caption, label, dataframe):
# print(caption)
# print(label)
# print(dataframe)
if len(dataframe.columns) > 2:
table = tabulate(dataframe, headers='keys', tablefmt='latex', showindex=False,
missingval='/',
colalign='left')
else:
table = tabulate(dataframe, headers='keys', tablefmt='latex', showindex=False,
missingval='/')
table = (
"\\begin{table}[]\n"
f"\\caption{{{caption}}}\n"
f"\\label{{{label}}}\n"
"\\footnotesize\n"
f"{table}\n"
"\\end{table}"
)
# 确认生成的\hline只有三个
assert table.count("\\hline") == 3
# 将table中的第一个\hline改为\toprule
table = table.replace("\\hline", "\\toprule", 1)
# 将table中的第二个\hline改为\midrule
table = table.replace("\\hline", "\\midrule", 1)
# 将table中的最后一个\hline改为\bottomrule
table = table.replace("\\hline", "\\bottomrule", 1)
# 将table中的所有nan(独立的单词)替换为/
table = re.sub(r'\bnan\b', '/', table)
return table
# # 添加表格环境
# latex_table = (
# "\\begin{table}[]\n"
# "\\caption{LLMs' overall performance (Accuracy\\%) on Wired Network Operations English test set (3-shot). "
# "\\normalfont Models are ranked based on their best performance (marked as bold) among different settings.}\n"
# "\\label{tab:network_eng_3shot}\n"
# "\\footnotesize\n"
# f"{latex_table}\n"
# "\\end{table}"
# )
# latex_table = gen_latex_table(
# caption="LLMs' overall performance (Accuracy\%) on Wired Network Operations English test set (3-shot). "
# "Models are ranked based on their best performance (marked as bold) among different settings.",
# label="tab:network_eng_3shot",
# table=latex_table
# )
# print(latex_table)