Technical Spec
1 项目背景
Project: Building Online Education Q&A ecosystem
Our Task: Content schema definition & Content Pipeline
要求: 定义这个网站需要的内容结构, 并从爬到的内容中抽取元数据 (meta data), 并支持标签, 翻译等功能。
a. Define a schema of "online education Q&A", find out entities and their relationships.
b. Input new content into pipeline, then merge it into existing content, under schema
c. Have a UI system to track the progress and report data
d. Support tagging
e. Support translation
2 目的
本文档为Pipeline部分的Technical Spec,主要分三部分。
文档首先详细地定义Pipeline部分的I/O标准,方便将来Crawler、Pipeline和UI三个模块的合并工作。然后文档给出了整个Pipeline部分的框架图,配合Crawler模块和UI模块组成整个系统的体系。最后文档详细地描述Pipeline部分每个功能、实现方法和相应的接口。
在这个文档的基础上开发Pipeline,各组员对大到整个系统小到每个Pipeline子系统的模块都有一个进一步的了解,知道每个部分的需求和产出,从而能更好地完成开发工作。
3 I/O标准
3.1 Input
Pipeline的输入为Crawler模块爬取的网页文件。
Crawler爬取网页后将它下载,存放在一个文件夹中,并将文件夹的绝对路径告知Pipeline。Pipeline收到Crawler发送的路径后会一直监督文件夹,发现有新的网页后立刻分析网页,并将分析后的网页删除。
3.2 Output
Pipeline分析网页实际是一个信息提取过程。提取的信息分为两类:Essay(统计文献信息)和QA(存储问答对)。两类信息抽取成两张表,表的数据项如下:
Essay表:
数据名 |
类型 |
说明 |
title |
Char |
标题 |
ontology |
Char(20) |
学科分类 |
data |
Char[] |
内容 |
date |
Date |
日期 |
tag |
Char(20) |
标签 |
author |
Char(20) |
提问者 |
translation |
Char[] |
翻译 |
QA表:
数据名 |
类型 |
说明 |
question |
Char[] |
问题 |
answer |
Char[] |
回答 |
4 框架图
(补)
5 Pipeline功能模块
Pipeline的功能包括数据处理、数据库操作和Pipeline UI。
其中数据处理又可以进一步细化成网页去噪、信息提取、数据分类和排序。数据库实现对两类数据表格的定义,数据的存取和高效地检索,Pipeline UI用来展示整个数据处理流程。
(各模块具体实现和方法补,各组员主要定义自己模块的IO和主要算法或流程)
胡仁君 12/11/06