gradio简单搭建——关键词简单筛选[2024-4-11 优化]
新的思路:标签自动标注
针对通过关键词,在文本数据中体现出主体的工作类型这一任务,这里使用展示工具gradio
制作一个简单的交互平台。在前两天的优化后,我们可以通过无效关键词、单元素/多元素关键词顺序匹配的方式对文本数据进行约束,从而找出符合匹配条件的数据信息,并更加高效地执行下游的标注任务。
当对数据信息存在一定程度的了解后,我们可以找出一些针对性极强的关键词,就像上一节描述的低光速黑域一样——“简单、潦草”地看上一眼,就能知道主体的动作、行为大概率描述某一具体工作。例如:
某人对材料进行焊接过程中,不小心被烫伤。
分析:焊接这个词更多是电焊工/焊接工的专业动作;过程中则描述过去正在进行专业动作的状态。这两个词的组合成的关键词,可以极大概率指向电焊工/焊接工这个工种。
但是发现:如果仅仅是查找,单元素关键词匹配已经实现了,但标注工作还是要亲自去做。为了减少操作步骤、简化工作量,我们更希望:这类指向性强关键词,直接将对应标签标注上去。这也是本次优化目标:
- 添加一组标注相关的单选框,将单/多元素关键词匹配的查找结果对应的标签信息更新到原始数据中,最终输出完整数据;
- 给单选框设置默认值,减少
greet
函数内的判断逻辑。
界面搭建优化
这里并没有强制性地赋予
单/多元素匹配单选框默认选项。主要因为
上一节关于该单选框均为空也可以执行.
import gradio as gr
from file_generator import generate_file
class CONST:
file_type_list = ['xlsx']
def submit(input_file,
invalid_task,
invalid_keyword_input,
task,
keyword_input,
mask_task,
mask_keyword,
desc):
print(f'task:{
task}')
print(f'keyword_input:{
keyword_input}')
print(f'invalid_task:{
invalid_task}')
print(f'invalid_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