当前位置:网站首页>CSDN问答模块标题推荐任务(一) —— 基本框架的搭建
CSDN问答模块标题推荐任务(一) —— 基本框架的搭建
2022-07-06 09:11:00 【Alexxinlu】
系列文章
团队博客: CSDN AI小组
1 问题定义
1.1 背景
在CSDN的问答模块中,很多初学者的提问标题缺乏有效信息,例如:
救救孩子吧!
大佬救我!!!帮我完成一下这个题目
求大神!!!
在上图例子中,更好的标题应该是 “如何在移动端页面中加入滚动条?”
在这类提问标题中,包含的有用信息量极少,无法从标题中快速理解问题的意思,在一定程度上会影响问题回答者的效率和用户的体验。此外,该类数据也会进一步影响下游NLP任务的效果,例如:问题分类,问题推荐等。
故为了提升提问标题的质量,需要基于问题描述等信息,在用户输入标题和问题描述后,给用户推荐更精准的标题,并提示用户进行更改。
1.2 输入
可用的输入信息如下所示:
"id": 998678,
"title": “求助,很简单的C#问题”,
"body": “老师要求做一个成绩管理系统,要求实现分类登入,可是这个cheng’xu如果用户是学生,即使comboBox不选学生也能顺利登入,admin就没这个问题,请教大佬是为什么?\r\n\t\r\n\t\r\n\tprivate void button1_Click(object sender, EventArgs e)\r\n {\r\n string sUser = txtUser.Text.ToString();\r\n string sPassword = txtPassword.Text.ToString();\r\n\r\n if (sUser == “admin” && sPassword == “1234” && comboBoxLeixing.Text == “管理员”)\r\n {\r\n Menuadmin main = new Menuadmin();\r\n main.Show();\r\n this.Hide();\r\n }\r\n\r\n if (sUser == “徐光睿” || sUser == “曹广” || sUser == “曹子岳” || sUser == “陈思佳” || sUser == “陈旭” || sUser == “黄文广” ||\r\n sUser == “雷章树” || sUser == “刘晴晴” || sUser == “齐世勐” || sUser == “沈彬” || sUser == “帅兴” || sUser == “孙权伟” ||\r\n sUser == “王恒” || sUser == “王瑞” || sUser == “向猛” || sUser == “张国梁” || sUser == “张宗友” || sUser == “张舒敏”\r\n && sPassword == “1234” && comboBoxLeixing.Text == “学生”)\r\n {\r\n Menustudent main = new Menustudent();\r\n main.Show();\r\n this.Hide();\r\n }\r\n\r\n if (sUser == “刘兆良” || sUser == “龙隆” || sUser == “冯伟” || sUser == “刘善勇” ||\r\n sUser == “印森林” || sUser == “程乐利” || sUser == “刘岩” || sUser == “赵俊威”\r\n && sPassword == “1234” && comboBoxLeixing.Text== “教师”)\r\n {\r\n Menuteacher main = new Menuteacher();\r\n main.Show();\r\n this.Hide();\r\n }\r\n \r\n else\r\n label3.Text = “用户名或密码错误,请重新输入!”;\r\n }”,
"tag_id": 95,
"tag_name": “c语言”
输入主要包含以上五个字段,其中title是需要改进的标题。
当前只使用了title和body两个字段作为输入。
1.3 输出
改进后的提问标题。
2 解决方案
本文将问题进一步抽象为NLP中的文本摘要任务,具体的实施步骤如下:
2.1 数据预处理
当前主要做了以下预处理操作:
- 去掉无关信息。例如:代码段、URL、无关字符等;
- 将段落切分成句子。基于分隔符进行切分,例如:换行符、句号、问号、感叹号等。
2.2 模型
2.2.1 粗排序
当前方案使用的是经典的抽取式模型TextRank,对输入的所有句子进行排名,最后选择TopN的句子进行推荐。
2.2.2 精排序
因为本文是对提问标题进行推荐,故需优先考虑问句。
此处使用基于词典的方法,识别输入中的所有问句。再机遇粗排序的结果,将问句排到最前。
2.3 实验结果与错误数据分析
初步分析结果如下图所示:
由上图可知,当前主要存在的问题包括:
- 样本问题:有些提问的body中只有图片、代码段等内容,不包含有用的中文文本信息。
- 标题过长:当前使用的预处理方法过于简单,导致切分后,有些句子过长,且当前使用的模型是抽取式文本摘要算法,不会对输入的句子进行修改。故导致某些推荐的标题过长。而提问标题一般比较精简。
3 下一步计划
- 对样本进行分类,对于只有图片或代码段的样本,需要先识别和判断其中的信息,再进行标题推荐。
- 对标题进行精简,考虑使用问题模版或生成式的文本摘要方法进行改进。
P.S.
该系列文章会持续进行更新。现在做的还过于简单,效果也还不尽如人意,希望NLP等领域的同仁、老师和专家能够提供宝贵的建议,谢谢!
边栏推荐
- API learning of OpenGL (2003) gl_ TEXTURE_ WRAP_ S GL_ TEXTURE_ WRAP_ T
- [Li Kou 387] the first unique character in the string
- MySQL combat optimization expert 07 production experience: how to conduct 360 degree dead angle pressure test on the database in the production environment?
- Texttext data enhancement method data argument
- How to build an interface automation testing framework?
- How to change php INI file supports PDO abstraction layer
- Discriminant model: a discriminant model creation framework log linear model
- 数据库中间件_Mycat总结
- Implement context manager through with
- MySQL transaction log
猜你喜欢
MySQL29-数据库其它调优策略
Implement context manager through with
Water and rain condition monitoring reservoir water and rain condition online monitoring
Use xtrabackup for MySQL database physical backup
Super detailed steps to implement Wechat public number H5 Message push
实现微信公众号H5消息推送的超级详细步骤
Mysql22 logical architecture
[unity] simulate jelly effect (with collision) -- tutorial on using jellysprites plug-in
MySQL30-事务基础知识
MySQL34-其他数据库日志
随机推荐
Adaptive Bezier curve network for real-time end-to-end text recognition
MySQL22-逻辑架构
实现微信公众号H5消息推送的超级详细步骤
如何搭建接口自动化测试框架?
MySQL21-用戶與權限管理
Super detailed steps to implement Wechat public number H5 Message push
[paper reading notes] - cryptographic analysis of short RSA secret exponents
MySQL33-多版本并发控制
How to find the number of daffodils with simple and rough methods in C language
February 13, 2022-2-climbing stairs
① BOKE
[Julia] exit notes - Serial
在jupyter NoteBook使用Pytorch进行MNIST实现
MySQL ERROR 1040: Too many connections
Anaconda3 installation CV2
Introduction tutorial of typescript (dark horse programmer of station B)
高并发系统的限流方案研究,其实限流实现也不复杂
MySQL28-数据库的设计规范
Security design verification of API interface: ticket, signature, timestamp
MySQL flush operation