任务四 娱乐相关节目和娱乐人物关系代码整理
标签(空格分隔): 一找
任务描述
分别对娱乐相关节目和娱乐人物关系代码进行整理:
1、娱乐相关节目代码提交到yz-dolphin-serv-crawler模块com.yeezhao.dolphin.crawler.entertainment.related下,另外在cli包增加脚本入口Cli,并在run.sh和start-entertain.sh添加程序入口。
2、娱乐人物关系提交到yz-dolphin-serv-crawler模块com.yeezhao.dolphin.crawler.people.relation下,另外在PeopleCrawlerCli的type=relation的情况下,替换掉PeopleEntertainRelationCrawler().crawl(); run.sh不用再修改。
流程
1.相关节目部署
- 加入了相关电影LIBSVM分类器的模型文件
- 在DolphinCrawlerConsts类中加入相关电影模型文件名
// libSVM model of related movie crawler added by chs
public static final String FILE_RELATEDMOVIE_MODEL = "RelatedMovieClassiModel.txt";
-
在
com.yeezhao.dolphin.crawler.cli
下增加了相关节目的客户端程序RelatedMovieCli
,代码主要参考了同目录下的CategoryToolCli.java
,添加了once和quartz参数 -
修改了run.sh,添加了注释 echo "relatedMovie [-quartz] [-once] 启动相关节目识别"
和程序和命令的对应关系,命令命名为relatedMovie
elif [ "$COMMAND" = "relatedMovie" ];then
CLASS=com.yeezhao.dolphin.crawler.cli.RelatedMovieCli
- 添加start-relation.sh脚本,内容为
nohup sh run.sh relatedMovie -once > related-movie.out 2>&1 &
2.娱乐人物关系部署
- 将
PeopleEntertainRelationCrawler.java
提交到了yz-dolphin-serv-crawler
模块com.yeezhao.dolphin.crawler.people.relation
下 - 修改
PeopleCrawlerCli.java
,在execute()
方法中加入一个relation参数,为我们的程序添加一个入口
@Override
public void execute() {
LOG.info("execute");
Configuration conf = DolphinCrawlerConf.getInstance();
try {
if ("tag".equals(type)) {
new PeopleTagCrawler(conf).crawl();
} else if ("outlink".equals(type)) {
new PeopleOutlinkCrawler(conf).crawl();
} else if ("data".equals(type)) {
new PeopleDataCrawler().crawl();
} else if ("relation".equals(type)) {
new PeopleEntertainRelationCrawler().crawl();
} else if ("all".equals(type)) {
new PeopleAllHideCrawler().crawl();
} else if ("baike".equals(type)) {
new AllBaikeCrawler().crawl();
} else if ("analyz".equals(type)) {
new PeopleRelationAnalyz().crawl();
new PeopleSexAnalyz().analyz();
new PeopleBidirectionalRelation().analyz();
} else if ("count".equals(type)) {
new PeoplePropertiesCount().crawl();
} else if ("coverimage".equals(type)) {
new PeopleCoverImageCrawler().crawl();
} else if ("delete".equals(type)) {
new ClearRelation().clear();
} else if ("test".equals(type)) {
new PeopleIdentityAnalyze().crawl();
}
else {
LOG.error("type is not found: " + type);
return;
}
} catch (Exception e) {
e.printStackTrace();
}
LOG.info("all done!");
}