当前位置:网站首页>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等领域的同仁、老师和专家能够提供宝贵的建议,谢谢!
边栏推荐
- 基于Pytorch的LSTM实战160万条评论情感分类
- MySQL32-锁
- 高并发系统的限流方案研究,其实限流实现也不复杂
- Advantages and disadvantages of evaluation methods
- Mysql36 database backup and recovery
- Time complexity (see which sentence is executed the most times)
- Mysql21 user and permission management
- Windchill configure remote Oracle database connection
- Solve the problem of remote connection to MySQL under Linux in Windows
- A necessary soft skill for Software Test Engineers: structured thinking
猜你喜欢
Introduction tutorial of typescript (dark horse programmer of station B)
How to make shell script executable
MySQL实战优化高手02 为了执行SQL语句,你知道MySQL用了什么样的架构设计吗?
API learning of OpenGL (2003) gl_ TEXTURE_ WRAP_ S GL_ TEXTURE_ WRAP_ T
PyTorch RNN 实战案例_MNIST手写字体识别
Mysql25 index creation and design principles
Valentine's Day is coming, are you still worried about eating dog food? Teach you to make a confession wall hand in hand. Express your love to the person you want
Mysql32 lock
MySQL34-其他数据库日志
What is the current situation of the game industry in the Internet world?
随机推荐
软件测试工程师发展规划路线
A necessary soft skill for Software Test Engineers: structured thinking
[after reading the series] how to realize app automation without programming (automatically start Kwai APP)
Opencv uses freetype to display Chinese
MySQL combat optimization expert 09 production experience: how to deploy a monitoring system for a database in a production environment?
MySQL34-其他数据库日志
Global and Chinese market of wafer processing robots 2022-2028: Research Report on technology, participants, trends, market size and share
Win10: how to modify the priority of dual network cards?
Transactions have four characteristics?
[unity] simulate jelly effect (with collision) -- tutorial on using jellysprites plug-in
A necessary soft skill for Software Test Engineers: structured thinking
Security design verification of API interface: ticket, signature, timestamp
MySQL23-存储引擎
在jupyter NoteBook使用Pytorch进行MNIST实现
API learning of OpenGL (2002) smooth flat of glsl
In fact, the implementation of current limiting is not complicated
Anaconda3 installation CV2
MySQL 29 other database tuning strategies
MySQL25-索引的创建与设计原则
Discriminant model: a discriminant model creation framework log linear model