十堰做网站网站底部流程

当前位置: 首页 > news >正文

十堰做网站,网站底部流程,htnl5 做的视频网站,江门网站优化快速排名gradio简单搭建——关键词简单筛选[2024-4-11 优化] 新的思路#xff1a;标签自动标注界面搭建优化数据处理与生成过程交互界面展示 新的思路#xff1a;标签自动标注 针对通过关键词#xff0c;在文本数据中体现出主体的工作类型这一任务#xff0c;这里使用展示工具grad… gradio简单搭建——关键词简单筛选[2024-4-11 优化] 新的思路标签自动标注界面搭建优化数据处理与生成过程交互界面展示 新的思路标签自动标注 针对通过关键词在文本数据中体现出主体的工作类型这一任务这里使用展示工具gradio制作一个简单的交互平台。在前两天的优化后我们可以通过无效关键词、单元素/多元素关键词顺序匹配的方式对文本数据进行约束从而找出符合匹配条件的数据信息并更加高效地执行下游的标注任务。 当对数据信息存在一定程度的了解后我们可以找出一些针对性极强的关键词就像上一节描述的低光速黑域一样——“简单、潦草”地看上一眼就能知道主体的动作、行为大概率描述某一具体工作。例如 某人对材料进行焊接过程中不小心被烫伤。 分析焊接这个词更多是电焊工/焊接工的专业动作过程中则描述过去正在进行专业动作的状态。这两个词的组合成的关键词可以极大概率指向电焊工/焊接工这个工种。 但是发现如果仅仅是查找单元素关键词匹配已经实现了但标注工作还是要亲自去做。为了减少操作步骤、简化工作量我们更希望这类指向性强关键词直接将对应标签标注上去。这也是本次优化目标 添加一组标注相关的单选框将单/多元素关键词匹配的查找结果对应的标签信息更新到原始数据中最终输出完整数据给单选框设置默认值减少greet函数内的判断逻辑。 界面搭建优化 这里并没有强制性地赋予单/多元素匹配单选框默认选项。主要因为上一节关于该单选框均为空也可以执行. import gradio as gr from file_generator import generate_fileclass CONST:file_type_list [xlsx]def submit(input_file,invalid_task,invalid_keyword_input,task,keyword_input,mask_task,mask_keyword,desc):print(ftask:{task})print(fkeyword_input:{keyword_input})print(finvalid_task:{invalid_task})print(finvalid_keyword_input:{invalid_keyword_input})# 输入文件格式设置if not input_file:raise gr.Error(请上传文件)if \ in input_file:input_file input_file.replace(\,/)suf input_file.split(.)[-1]if suf not in CONST.file_type_list:raise gr.Error(不支持的格式:{},请检查文件格式.format(suf))# 2024-4-11 优化:添加了无效元素匹配单选框的默认选项,减少一部分判断操作if invalid_keyword_input:if invalid_task 禁用:raise gr.Error(无效元素匹配[禁用]时,无法输入无效元素) # 选择禁用时,文本框不可用else:if in invalid_keyword_input:invalid_keyword_input invalid_keyword_input.replace(,,)if , in invalid_keyword_input:invalid_keyword_list invalid_keyword_input.split(,)else:invalid_keyword_list [invalid_keyword_input]else:if invalid_task 启用:raise gr.Error(无效元素匹配[启用]时,请输入无效元素) # 选择启用时,文本框内必须输入无效元素else:invalid_keyword_list list()# [单/多元素匹配]逻辑描述# 暂未添加单选框的[默认]选项if task:if not keyword_input:raise gr.Error(请输入匹配关键词) # 已选择[单/多元素匹配]条件下,文本框内必须输入匹配元素else:if in keyword_input:keyword_input keyword_input.replace(,,)if , in keyword_input:if task 单元素匹配:raise gr.Error(单元素匹配模式不支持输入多个关键词)else:keyword_list keyword_input.split(,)else:if task 多元素匹配:raise gr.Error(多元素匹配模式不支持输入单个关键词)else:keyword_list [keyword_input]else:task 无元素匹配keyword_list list() # 未选择使用[单/多元素匹配]# [仅执行查找,填充]逻辑操作if mask_keyword:if mask_task 仅执行查找:raise gr.Error(仅执行查找模式不支持输入标注关键词)# bug修改:必须保证[元素匹配关键词]中有值else:try:assert len(keyword_list)except AssertionError:raise gr.Error(填充状态下,匹配关键词文本框不能为空)else:if mask_task 填充:raise gr.Error(填充模式,请输入标注关键词)output generate_file(input_file,task,invalid_task,mask_task,keyword_list,invalid_keyword_list,mask_keyword)return outputdescription

  1. 单元素匹配:筛选出包含输入元素的样本;
  2. 多元素匹配:筛选出按输入元素顺序,包含输入元素的样本;2024/4/10
  3. 无效元素匹配:元素匹配过程中一旦出现无效元素则不包含该样本; 一次性可以输入多个元素使用逗号(英文)分隔; 例: 上班途中,下班途中,…4. [无效元素匹配]与[单/多元素匹配]操作之间可单独使用,也可混用;2024/4/11
  4. 仅执行查找:仅找出与1,2,3,4步骤的筛选结果;最终返回[仅包含筛选结果]的数据文件;
  5. 填充:将待填充关键词写入文本框中,最终返回[填充筛选结果]对应标注信息的[完整数据文件]; demo gr.Interface(fnsubmit,inputs [gr.File(file_countsingle,label上传文件,file_typesCONST.file_type_list),# 无效元素匹配单选框gr.Radio(choices[启用,禁用],label无效元素匹配,value禁用,),gr.Textbox(label无效关键词,placeholder可以一次输入多个数据,使用逗号(英文)间隔;若选择禁用,文本框为空,),# 匹配单元素,多元素单选框gr.Radio(choices[单元素匹配,多元素匹配],label选择元素匹配模式,),gr.Textbox(label匹配关键词,placeholder请输入匹配关键词),# 仅执行查找,填充单选框gr.Radio(choices[仅执行查找,填充],label选择填充模式,value填充),gr.Textbox(label输入标准标注,placeholder若选择填充,请输入对应标准标注(唯一);若选择仅执行查找,文本框为空,),gr.Text(description,label使用说明)],outputsgr.File(label输出文件),title单元素/多元素匹配筛选数据,examples[[测试文件.xlsx,启用,上班途中,单元素匹配,焊接过程中,填充,焊接工]] )demo.launch(shareFalse, server_name192.168.11.115,server_port8706)数据处理与生成过程 update方法更新df import pandas as pd import time import osdef sorted_keywords_update(df, task, invalid_task, mask_task, keyword_list, invalid_keyword_list, mask_keyword):def sorted_keywords(str_input,sorted_word_list):查找列表中的关键词,如果关键词有序地匹配成功返回True,否则返回Falsecount 0while count len(sorted_word_list):if sorted_word_list[count] in str_input:str_input .join(str_input.split(sorted_word_list[count])[1:])count 1else:breakif count len(sorted_word_list):return Trueelse:return Falsedef eliminate_invalid(df_input,invalid_keyword_list):无效元素匹配[启用]状态下,筛除包含invalid_keyword_list内词对应的行for invalid_word in invalid_keyword_list:df_input df_input[~df_input[文本信息].str.contains(invalid_word)]return df_inputdef mode_2_rules(row):多元素匹配模式规则return sorted_keywords(row[文本信息],keyword_list) Truedef mode_1_rules(df_input, keyword_list):单元素匹配模式规则assert len(keyword_list) 1contain_df df_input[df_input[文本信息].str.contains(keyword_list[0])]return contain_df# 去除已标注过的数据sub_df df[df[标注信息].isna()]# 去除数据中的nan值sub_df sub_df[~sub_df[文本信息].isna()]# 筛选无效元素过程if invalid_task 启用:invalid_sub_df eliminate_invalid(sub_df,invalid_keyword_list)else:invalid_sub_df sub_df# 元素匹配过程if task 单元素匹配:contain_df mode_1_rules(invalid_sub_df,keyword_list)elif task 多元素匹配:contain_df invalid_sub_df[invalid_sub_df.apply(mode_2_rules,axis1)]else:contain_df invalid_sub_df# 创建输出文件夹output_dir f./output/match_keyword/{task}output_path f{output_dir}/{task}_res.xlsxos.makedirs(output_dir, exist_okTrue)# 标准标注填充与写入过程并输出完整数据if mask_task 填充:start time.time()contain_copy contain_df.copy()contain_copy[标注信息] mask_keyworddf.update(contain_copy) # 注意,在选择扩充时,返回完整数据;end time.time()print(fspend time:{round(end - start,4)})df.to_excel(output_path, indexFalse)# 查找状态下,仅输出查找相关的数据else:contain_df.to_excel(output_path, indexFalse)return output_pathdef generate_file(file_path, task, invalid_task, mask_task, keyword_input, invalid_keyword_input, mask_keyword):file_path: 待优化数据文件路径task: 匹配模式:[单模式匹配,多模式匹配]invalid_task: 无效匹配模式:[启用,禁用]mask_task:标准标注填充模式:[仅执行查找,填充]keyword_input: 匹配关键词invalid_keyword_input: 无效匹配关键词mask_keyword: 标准标注关键词df pd.read_excel(file_path)# 数据生成平台output_file_path sorted_keywords_update(df, task, invalid_task, mask_task, keyword_input, invalid_keyword_input, mask_keyword)return output_file_path交互界面展示