项目选择
经过团队内所有成员一致探讨,我们团队选择完善和改进之学霸系统的第二个子模块,即:网站内容结构定义和数据处理。具体的要求如下:(摘自Xueba系统项目需求)
网站内容结构定义和数据处理(Content schema definition & Content Pipeline)
- 定义在线教学问答网站需要的内容结构, 并从爬到的内容中抽取元数据 (meta data), 并支持标签, 翻译等功能。
- 定义在线问答网站的内容结构,找出其中涉及的实体及它们之间的关系;
- 支持增量式的将输入的新数据,按照定义好的内容结构合并到已有的内容中(重复内容怎么处理,更新内容怎么处理,用户上传内容怎么处理);
- 支持标签;
- 支持关键词翻译;
- 制作一个界面来跟踪和报告数据处理的进度。
从第一步收集到的网页中, 抽取关键词, 作中英翻译等, 把数据和元数据存入数据库中 (目前用SQL 数据库存储,如需采用其他的数据库,需要跟爬虫和在线系统团队协商)
需求疑问
在细化项目需求的时候有如下的几个问题:
- 对于“网站内容结构的定义”具体是指哪一个方面,这个概念比较模糊,而且在Teacher的问题描述中谈到的是“定义在线问答网站的内容结构,找出其中涉及的实体及它们之间的关系”,这是指网页的前端的设计还是指网站路由的设计?
- 由于我们是要采用第一个模块的成果,包括他们团队爬取到的数据,然而他们爬取到的数据是各种各样的(网页、论文、讲演稿、技术文档、视频、问答等等),我们的工作是针对诸如论文,演讲稿等文本类元数据进行数据处理?还是需要比如将视频资料也进行定义,比如:关键词提取,标签等?
- Teacher要求要有一个界面来跟踪和报告数据处理的进度,然而这可能会有两种考虑,其一、可能需要预先将爬取的数据分类、提取关键词、贴标签、然后存到数据库中,这样感觉进度报告可能不是服务于用户的,而只是服务于系统管理员来进行数据处理进度的追踪和度量。其二,另外一个考虑是用户直接交互,在数据库中最新提取到的数据可能没有来得及进行相关处理,在用户查询相关内容时候不能立刻呈现给用户,需要即时的进行数据处理,然而此时的界面反映给用户来知悉数据处理进度的,希望Teacher能对于这一问题给予进一步细化。