基于50W携程出行攻略构建事件图谱(含码源):交通工具子图谱、订酒店吃饭事件图谱等

  • 项目构成

    • 本项目由两个部分的组成,具体包括语料的获取以及基于语料的事件挖掘两个部分,具体项目目录包括:
    • news_spider:基于scrapy的游记采集脚本
    • event_graph:基于依存句法与顺承模式的顺承事件抽取脚
    • image:游记顺承事件图谱效果图

1.出行领域语料的获取

  1. 语料来源:携程出行攻略

  2. 时间范围:2018年7月14日之前

  3. 采集方式:使用scrapy编写爬虫脚本进行抓取

  4. 采集规模:共采集505767篇,量级50W  

  5. 采集脚本目录:news_spider/travelspider

  6. 语料举例:

         107330 一路向南——第二篇相逢南通(自驾游) - 游记攻略【携程攻略】
    107331 彩云之南—云上的蜜月之旅 - 丽江游记攻略【携程攻略】
    107332 甘肃游记之玛曲郎木寺 - 碌曲游记攻略【携程攻略】
    107333 拍客白沙行 - 舟山游记攻略【携程攻略】
    107334 九华山-沐浴在佛恩下的XXX - 九华山游记攻略【携程攻略】
    107335 垦丁夏季活动 - 垦丁游记攻略【携程攻略】
    107336 行走在台湾(向隅版)---世外桃源之我们的家(九份民宿) - 九份游记攻略【携程攻略】
    107337 卫赛节马来西亚行 - 马六甲州游记攻略【携程攻略】
    107338 蓝天下的嘉峪关 - 嘉峪关游记攻略【携程攻略】
    107339 人生一定要登一次雪山---都日峰 - 四川游记攻略【携程攻略】
    107340 八月,青海湖不远 - 海北游记攻略【携程攻略】
    107341 #冬季北京# 帝都极冷天去首富的酒店避避寒 - 北京游记攻略【携程攻略】
    107342 圣地西藏 - 青海湖游记攻略【携程攻略】
    107343 孩子,妈妈想让你见识更多的繁华世界 - 深圳游记攻略【携程攻略】
    107344 顶级奢华,舍我其谁! - 澳门游记攻略【携程攻略】
    107345 旅行、不需要走远!美景就在身边 - 江门游记攻略【携程攻略】
    107346 安安静静,不言不语都是好风景 - 厦门游记攻略【携程攻略】
    107347 邂逅则天故里 行走美丽利州 体验师带你看中国女儿节 - 广元游记攻略【携程攻略】
    107348 台湾,可以这样玩--15日环岛自由行全记录 - 台北游记攻略【携程攻略】
    107349 让我记忆深刻的厦门--详细版 - 厦门游记攻略【携程攻略】
    107350 上海地鐵站 - 上海游记攻略【携程攻略】
    107351 逃离雾霾,带着“马拉多纳”去腾冲 - 腾冲游记攻略【携程攻略】
    107352 在我心上用力地开一 - 四川游记攻略【携程攻略】
    107353 冬季到鄱阳湖边的余干县看鸟,多张美图记录环湖游全过程 - 余干游记攻略【携程攻略】
    107354 2014.十一沈阳,本溪老边沟,枫叶大道,丹东,不走重复路,古迹,景色5日穷游 - 沈阳游记攻略【携程攻略】
    107355 库不齐老牛湾之户外行走 - 库布齐沙漠游记攻略【携程攻略】

2.基于出行语料的顺承事件图谱构建

2.1, 顺承事件的抽取

  • event_extract.py, 思想步骤如下:

    1. 输入游记文本
    2. 对游记进行长句切分
    3. 基于构造的顺承关系模板,进行顺承前后部分提取, 转入4)
    4. 对3)得到的部分进行短句处理,转入5)
    5. 对4)得到的短句进行谓词性短语提取
    6. 对5)得到的谓词性短语向上汇聚,得到一个长句的谓词性短语有序集合
    7. 对6)步骤得到的谓词性短语集合,以滑窗方式构造顺承关系事件对
    8. 对步骤7)得到的顺承事件对进行汇总,最终得到顺承事件库
    9. 对8)进行事件进行整合,去除过低频次的事件,构造标准顺承关系库

2.2, 顺承事件图谱的展示

10)使用VIS插件进行顺承关系图谱构建与展示, event_graph.py

11)由于VIS作为一个封装的JS库,因此生成的顺承图谱在项目中暂时设置到500,见travel_event_graph.html

3.顺承关系图谱效果

3.1 总体图谱样式

以500个顺承事件, 进行顺承事件图谱展示,结果是一张事件网络,这是一个大的顺承关系图谱,由众多小子图谱构成

3.2 去丽江子图谱

该子图谱围绕"去丽江旅游"这一出行事件为核心形成的事件群:

3.3飞机路线子图谱

该子图谱显示了选择飞机进行出行形成的事件序列

3.4火车路线子图谱

该子图谱显示了选择火车进行出行形成的事件序列

3.5订酒店事件图谱

该子图谱描述了一个"预定酒店不愉快事件",从预定到失望到总结,在这条顺承事件链表现出来

3.6做饭事件图谱

该子图谱表示了一个"做饭"场景下的顺承事件,感觉也很有意思

4.总结

  1. 该项目只是一个基于50W文章领域语料,运用简单提取方式形成的顺承关系图谱demo,还有很多不足
  2. 该项目目前是形成了事件节点为326781个, 顺承事件对为543580条,分别为30W和50W的图谱规模
  3. 对于谓词性短语进行事件表示是事件表示的一种方式,本方法只采用VOB关系进行提取,这种方式还有待改进
  4. 以3)得到的结果中,还存在大量噪声,这一方面准确率受依存句法的准确性限制,另一方面该依存关系可能还相对单一,不够准确
  5. 在构造顺承事件序列的方法,本项目采用的是长句为单位下的滑窗方式进行构造,这个方式还有待改进
  6. 基于目前形成的顺承关系图谱还有待于进一步挖掘,可以在此基础上完成更多有价值的信息挖掘

项目码源链接

链接跳转

基于50W携程出行攻略构建事件图谱(含码源):交通工具子图谱、订酒店吃饭事件图谱等的更多相关文章

  1. 自动化测试_百度--糯米中--携程-出行<一>

    1:接下来我们看看思路  和相应的功能 使用python+selenium+unittest完成测试脚本 打开chrome浏览器,窗口最大化,设置等待时间10s 打开百度首页 鼠标移动到更多产品,点击 ...

  2. Java性能调优攻略全分享,5步搞定!(附超全技能图谱)

    对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...

  3. 超时空英雄传说2复仇魔神完全攻略&秘技

    ╓─╥───────────────────────────────────────────────────╥─╖ ║ ║ 超 時 空 英 雄 傳 說 2 ║ ║ ║ ║ --復 仇 魔 神-- ║ ...

  4. 主程的晋升攻略(3):IP、DNS和CDN

    有段时间我面试程序猿时,喜欢问这个问题:局域网IP有哪些IP段?由这个问题再追问NAT(网络地址转换). 为什么不是每一个设备一个公网IP? 先说个关于QQ的小故事,最早开发QQ时.小马哥他们也没想到 ...

  5. 基于DCMTK的DICOM相关程序编写攻略

    2008年09月10日 星期三 15:35 基于DCMTK的DICOM相关程序编写攻略 前言: 由于现在的医学影像设备的图像存储和传输正在逐渐向DICOM标准靠拢,在我们进行医学图像处理的过程中,经常 ...

  6. CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性.服务端基于Spring Boot ...

  7. 商业研究(20):滴滴出行,进军海外包车?与OTA携程和包车创业公司,共演“三国杀”?看看分析师、投资人和权威人士等10个人的观点碰撞

     小雷友情提示:创业有风险,投资需谨慎.      前一篇文章,在探讨境外游创业公司-皇包车和易途8的时候,提到"滴滴如果进军海外包车,为海外华人提供打车和包车服务,有较大可能对海外包车公司 ...

  8. 主程的晋升攻略(4):TCP、消息分包和协议设计

    在<主程的晋升攻略(3):IP.DNS和CDN>中,一次网络请求经过DNS解析知道了目的IP,如今就要发出网络包,这里我们说一说TCP的相关话题. TCP是一种流式协议 讲网络编程的教科书 ...

  9. 2020最新nginx+gunicorn+supervisor部署基于flask开发的项目的生产环境的详细攻略

    本攻略基于ubuntu1804的版本,服务器用的华为云的服务器,python3(python2已经在2020彻底停止维护了,所以转到python3是必须的)欢迎加我的QQ6398903,或QQ群讨论相 ...

  10. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

随机推荐

  1. SpringBoot 拦截器 统一日志 记录用户请求返回日志

    你请求我接口,传了什么参数,我返回了什么值给你,全部记下来.防止扯皮 需求:记录每次用户请求Controller的Body参数, 思路:在每个Controller 该当中记录,容易漏记,如果在拦截器里 ...

  2. 哈佛大学《CS50 Python人工智能入门》公开课 (2020)

    课程介绍 本课程探讨现代人工智能基础上的概念和算法,深入探讨游戏引擎.手写识别和机器翻译等技术的思想.通过实践项目,学生在将图形搜索算法.分类.优化.强化学习以及其他人工智能和机器学习的主题融入到他们 ...

  3. 自用 IntelliJ IDEA Vim 插件配置

    Prefrence: https://einverne.github.io/post/2020/12/my-idea-vimrc-config.html https://gist.github.com ...

  4. SpringBoot 项目实战 | 瑞吉外卖 Day01

    一.软件开发整体介绍 1.软件开发流程 2.角色分工 项目经理:对整个项目负责,任务分配.把控进度 产品经理:进行需求调研,输出需求调研文档.产品原型等 UI设计师:根据产品原型输出界面效果图 架构师 ...

  5. AtCoder Beginner Contest 175 (AB水,C数学,D思维+前缀和处理+进价思考,E方阵+条件DP,F新回文字符串处理 GJ)

    补题链接:Here A - Rainy Season 如果不是 RSR 型的话直接计算 R 的数量即可 B - Making Triangle 给定 \(N\) 根长度分别为 \(L_i\) 的棍子, ...

  6. AtCoder Beginner Contest 195 Editorial

    AtCoder Beginner Contest 195 Editorial Problem A - Health M Death(opens new window) 只要检查 \(H\equiv 0 ...

  7. Java 开发手册 (阿里巴巴开发手册)

    Java 开发手册 (有需要pdf版本的私信我,可以邮箱发)0版本号 制定团队 更新日期 备注 1.4.0 阿里巴巴集团技术团队 2018.5.20 增加设计规约(详尽版) 一.编程规约 (一) 命名 ...

  8. sql语句内变量的使用

    0.原始表格如下: 1.定义变量,并在sql语句内查询: set @user_name = "成龙";SELECT * FROM `tb_user` where userName ...

  9. shell脚本(7)-shell运算

    文档目录: 一.算数运算符 二.关系运算符 三.布尔运算符 四.逻辑运算符 五.字符串运算符 六.文件测试运算符 算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: ...

  10. [转帖]jmeter命令大全(命令行模式)

    jmeter命令 --? 打印命令行选项并退出 -h. --帮助 打印使用信息和退出 -v. --版本 打印版本信息并退出 -p. --propfile<argument> 要使用的jme ...