# API_ML_AI_final **Repository Path**: fangwenxi/API_ML_AI_final ## Basic Information - **Project Name**: API_ML_AI_final - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Draw and Drive PRD文档 文档名称|Draw and Drive——产品需求文档| :--:|:--| 产品名称|Draw and Drive| 产品描述|一个利用高德地图JS API、百度AI评论观点抽取API技术帮助用户快速避开地图坑的插件| 产品原型链接|https://1f1gwe.axshare.com| 作者|方闻熙| ## PRD1.价值主张宣言 虽然现如今的地图导航已经十分精确,但是因为**来不及更新修路、路面坍塌、交通事故等意外情况导致的路面瘫痪/不可行的信息导致用户走弯路、迟到**等情况还是时有发生。为解决这个痛点,我们调用高德开放平台**地图JS矢量图形编辑API**,让已经踩过坑的用户使用画笔手动**标记问题路段**,并**输入文本关键词表述如:修路、路面坍塌、交通事故或其他等点明路面状态**,结合**自然语言处理技术的信息抽取API**(百度AI评论观点抽取API),收集整合用户标记的文本评论,提取文本信息关注点,再标签化文本评论,**当有车辆再次导航途径该路段时系统自动推送往前用户标记的内容以提醒用户**,帮助用户在最短时间内选择出最佳行驶路线,避免再次踩坑。**充分利用用户群体标记的数据是最快捷、最节省的方案**。 ### 核心价值宣言(最小可行性产品) 一句话版本:高德地图JS API:矢量图形编辑+百度AI开放平台:自然语言处理技术-评论观点抽取API,**以用户为中心,帮助用户走对路、走好路**。 ### 人工智能概率性考量 >将自然语言处理技术付诸实践并非能够一蹴而就,从最初的词袋模型根据字段出现概率进行分析理解发展至如今基于深度学习技术的自然语言理解,其模型构建流程都包含着五个主要阶段:获取语料,对语料进行预处理,特征化,模型训练,以及之后对模型的评估与调试。这套成熟稳定的技术流程促生了成熟的集成层次,针对不同应用场景的通用性自然语言平台加速了自然语言处理技术商业化落地的脚步。 ## PRD2.问题表述与需求列表 - 针对用户群体:地图导航软件使用者。 - 使用情境: 1. 用户在导航途中遇到地图无标记的不可用路段时手动标记出范围和信息,供其他用户参考。 2. 用户需导航至已被标记的不可行路段时系统自动推送标记的范围及信息,提醒用户。 - 用户需求: - 路线准确,信息更新及时。 - 自动避开不可行路线的路线推荐系统,有多种路线选择。 - 能在最短的时间内选择出最佳行驶路线,避免绕弯路、走远路和道路不通等情况。 - 用户画像  ### 问题表述 - 用户使用场景:导航途径某一因无法预知的意外情况而无法通行的道路时,需要临时改变路线,不仅浪费时间,还消耗精力,影响心情。 - 任务:用户在导航过程中踩坑因不可预知的意外情况导致的路面瘫痪/不可行的情况时,使用画笔标记问题路段,并给出关键词如:修路、路面坍塌、交通事故等,再由系统收集整合,提取文本信息关注点,再标签化文本评论,目的是及时推送给下一位导航途径此路段的用户,帮助用户在最短时间内选择出最佳行驶路线,避免再次踩坑。 - 痛点: - 讨厌走弯路,有意外情况发生时希望导航软件可以及时提醒/推送,帮助最短时间内选择出最佳行驶路线。 - 用户的心声很重要。前一个用户踩雷后,希望可以把失败经验加以利用,充分发挥其价值,帮助其他人。 - 增长点/益点: - 对于已经踩过坑的用户来说,提供经验信息来帮助其他未踩坑用户也是发挥失败经历价值的一种方式,可以缓解踩坑之后烦躁的心情,同时,这次是自己帮助别人,下次就是别人帮助自己,提升成就感与期待值。 - 对于未踩坑的用户来说,前人的失败经验无疑是一种有价值的分享,帮助更快速选择最佳路线,避免绕路,充分利用时间。 - 价值主张画布  ### 需求列表 优先级|问题|需求|是否智能加值|API类型 :--:|:--:|:--:|:--:|:-- 1|地点定位|手机地理定位|否|[高德地图JS API:定位](https://lbs.amap.com/api/javascript-api/guide/services/geolocation/?sug_index=1) 2|导航路线|路线规划|否|[高德地图JS API:路线规划](https://lbs.amap.com/api/javascript-api/guide/services/navigation/?sug_index=0) 3|问题路段表达|矢量图形编辑|是|[高德地图JS API:矢量图形编辑](https://lbs.amap.com/api/javascript-api/guide/overlays/editable-vector-overlay/?sug_index=0) 4|提取文本关注点|自然语言处理|是|[百度AI开放平台 自然语言处理:评论观点抽取API](https://ai.baidu.com/tech/nlp_apply/comment_tag) 5|文本信息标签化|自然语言处理|是|[百度AI开放平台 自然语言处理:评论观点抽取API](https://ai.baidu.com/tech/nlp_apply/comment_tag) ### 利害相关者分析 - 人工智能类型:自然语言处理 - 系统性偏差: 1. Rich Resource Tasks,即有足够资源的任务,比如中英机器翻译。尽管是基于大语料的,但翻出来的结果还有很多错误,包括翻错词、丢词、不合语法等。 >即使在这样的足够资源的算法里面,仍然存在众多的问题要研究,比如说丢词,如何把词典集成进来,如何上下文判断一些问题,然后还有领域自适应、主体自适应等等,谁也不敢说这些问题通过Rich-Resource就解决了,这里面有上下文件联系的问题,还有数据歧视的问题,还有Multi-task learning,还有Human knowledge。 2. Low Resources Tasks,即资源很少或没有资源,比如说中文到希伯来语的翻译,几乎没有什么资源。 >首先Low-Resource如何建模,如何从数据分析中做无监督或少监督的学习,这是没有明确回答的问题。怎么做Transfer Learning,怎么做Unsupervised learning,也是目前的一个难题。还有一些先验的规则辞典,如何让它冷启动起来;人能不能参与其中帮助一个开始弱小的系统逐渐变得更加强大。这些都是目前热门的话题,都还没有很好地解决。 3. Multi-turn Tasks,多轮问题。  我们可以看到,对于小孩子很简单的问题,电脑却不知道该怎么回答。其原因在于目前的自然语言处理还没有很好地解决常识和推理的问题。  此外,还有前后不一致、自我矛盾的问题。比如说用户问“你今天多大了”?聊天机器人说“我16了”。隔几天用户又问“你今天多大了”?它可能说“我24岁”,自己前后不一致了。还有空间不一致、逻辑不一致的问题。这就需要人跟机器对话的时候,要有一个记忆体系,把说过的话的特征存储起来,将来在用的时候,要抽取这样的信息来表征一个机器人各方面的信息。 - ESG考量: 1. 现在大家都用大规模的机器训练,同样的算法,只要训练速度快,就可以快速迭代,然后你的水平就比别人高。与之同时,当然也特别耗资源,许多模型一训练可能要好几天或者好几万美金。 2. 首先你要标数据,标注的代价是非常大的。其次,数据有隐含歧视的问题,通过数据分析,可能会得到歧视性的结果。另外数据有偏差,数据在标注的时候请人标注,人都是偷懒的,想最简单的方法去标注,结果标注的数据千篇一律,基于这样的数据学的模型也只能解决标注的数据,拿到真实任务上由于跟你标注分布不一样,所以根本不好使。比如说我们做Q&A问答系统,我们在所有的问答里面都假设是第一名,但到了搜索引擎上有很多简单的问题都解决不好。此外,还有数据隐私保护等等问题。 ## PRD3.解决方案原型表述 - 界面及数据流程设计: 1. 用户使用画笔工具标记出问题路段,后台获取准确路段位置信息及标记范围,反馈给用户。 2. 用户文本输入关键词信息,后台获取、整合关键词,提取文本关注点。 3. 系统可视化用户标记的不可行路段的位置范围及问题数据,标签化文本信息,最后推送给用户。 - 智能交互与API: 1. 【高德地图JS API:矢量图形编辑】在用户使用画笔工作时调用高德JS矢量图形编辑API,把用户的语言描述转化为可视化的矢量图形(直线、曲线、折线、矩形等),**解决用户表达问题**。 2. 【百度AI开放平台 自然语言处理:评论观点抽取API】用户输入文本信息后调用自然语言处理评论观点抽取API,整合分类用户输入的关键词信息,提取文本关注点,并标签化文本评论,**解决用户信息阅读难度问题**。 ### 界面流程及关键智能交互 #### 界面流程图 - 总流程:进入地图导航——用户输入目的地名称——系统给出路线规划——用户按需选定行驶路线——开始导航 - 副流程:用户在选定行驶路线后: - 情景1:导航开始——行驶途中遇到因意外情况不可行而导航中无标注的路段——用户使用画笔工具标记出该路段【**智能加值1:高德地图JS矢量图形编辑API**】——文本编辑给出路面状况关键词【**智能加值2:百度AI自然语言处理-评论观点抽取API(提取文本关注点)**】——退出编辑,系统推荐新路线 - 情景2:后台识别该路线途径先前用户标记过的问题路段——整合该路段的被标记范围与内容,标签化文本评论,可视化数据反馈给用户【**智能加值3:百度AI自然语言处理-评论观点抽取API(文本信息标签化)**】——为用户推荐新路线 - 结束流程:系统为用户推荐其他行驶路线——用户按需选定最终行驶路线——导航继续  #### 原型图 [交互链接在此,点击体验](https://1f1gwe.axshare.com) - 总流程:手机地理定位——用户输入目的地名称——系统规划路线 - 情景1:导航开始——行驶途中遇到因意外情况不可行而导航中无标注的路段,用户使用画笔工具标记出该路段【**智能加值1:高德地图JS矢量图形编辑API**】——文本编辑给出路面状况关键词【**智能加值2:百度AI自然语言处理-评论观点抽取API(提取文本关注点)**】 - 情景2:后台识别该路线途径先前用户标记过的问题路段——整合该路段的被标记范围与内容,标签化文本评论,可视化数据反馈给用户【**智能加值3:百度AI自然语言处理-评论观点抽取API(文本信息标签化)**】——规划新路线 .png") #### 商业可行性 >2018年我国手机地图用户规模达到7.2亿人,同比增长5.9%,随着大数据、区块链等技术的发展,人们越来越多地使用地理地图和基于地理位置相关的服务。一方面,未来手机地图场景化应用将面向以在线旅游、移动出行等基于LBS地理位置信息为基础的日常生活消费生态;另一方面,无人驾驶、车联网等新型产业也为地图行业提供增量空间。从我国互联网普及程度以及手机普及程度开始飞速发展开始,手机地图用户规模的增长也迎来了飞速发展期,进入2013年之后,用户规模基数增大,增速开始回落。从2012年到2018年,我国手机地图用户规模增速从104.40%下降到5.90%。 #### 技术可行性 高德地图开放平台提供的地图渲染与矢量图形编辑API很好地解决了这一痛点。其优势有:支持平台全面Android/iOS/WP8;平台易用性强,对开发者更友好;阿里系的业务资源支持;腾讯地图的合作;拥有甲级导航电子地图测绘资质和甲级航空摄影测绘资质,拥有优质底层地图数据,拥有自有实采导航电子地图数据库。 #### 用户可欲性 随着社会发展,人民生活水平提高,选择自驾游的人越来越多,城市道路也越来越四通八达,使用导航软件的人不在少数。现在中国的汽车市场正处于增长期。而汽车司机最常用的手机APP就是地图导航软件,汽车市场的增加肯定也会增加地图导航APP的用户量和活跃度。地图导航APP的用户量和活跃度增加,更多的功能需求也随之而来。 ### 数据流程及关键智能API使用 #### 数据流程图 - 总流程:进入地图导航——用户触发定位按钮以获取位置信息(系统获取/存储用户位置数据信息)——用户在文本框中输入目的地名称(系统获取/存储用户目标地点位置数据信息)——系统根据定位及目的地数据给出路线规划供用户选择——用户做出选择,触发选择机制(系统输出用户选定指定路线的数据信息) - 副流程:用户在选定行驶路线后: - 情景1:导航开始——行驶过程中遇问题路段——用户触发画笔工具以编辑矢量图形(系统获取/存储用户标记的路段位置及范围数据信息)【**智能加值1:高德地图JS矢量图形编辑API**】——用户文本输入路面问题关键词信息(系统获取/存储用户输入的路段问题数据信息)【**智能加值2:百度AI自然语言处理-评论观点抽取API(提取文本关注点)**】——完成编辑——系统规划新路线 - 情景2:系统识别该路线途径用户标记过的问题路段(系统整合输出路段数据信息)——系统将该路段被标记的范围及内容可视化,推送至用户端提醒用户【**智能加值3:百度AI自然语言处理-评论观点抽取API(文本信息标签化)**】——为用户推荐新路线 - 结束流程:系统规划其他路线——用户按需选定最终路线(系统输出选定道路数据信息)**(【数据再加值】系统获取/存储用户选择次数/频率数据信息)**——导航继续——结束  #### 数据再加值 后台为用户推荐新路线之后可收集到用户选择某路线的次数/频率,可再整合为新的数据集,可视化分析后推送给新用户,供用户参考。 #### 关键智能API ##### 1. [高德地图JS API:矢量图形编辑](https://lbs.amap.com/api/javascript-api/guide/overlays/editable-vector-overlay/?sug_index=0)——在导航地图上直接绘制矢量图形/编辑已有矢量图形 - 使用画笔工具绘制矢量图形 1. 使用画笔工具绘制覆盖物(矢量图形) ``` map.plugin(["AMap.MouseTool"],function(){ var mouseTool = new AMap.MouseTool(map); //使用鼠标工具,在地图上画标记点 mouseTool.marker(); }); ```  2. 获取通过AMap.MouseTool绘制的点、线、面覆盖物的位置/范围/路径 ``` //通过插件方式引入 AMap.MouseTool 工具 map.plugin(["AMap.MouseTool"],function(){ //在地图中添加MouseTool插件 var mouseTool = new AMap.MouseTool(map); //用鼠标工具画多边形 var drawPolygon = mouseTool.polygon(); //添加事件 AMap.event.addListener( mouseTool,'draw',function(e){ console.log(e.obj.getPath());//获取路径/范围 }); }); ``` 3. 画笔工具距离量测、面积量测、拉框放大 ``` //通过插件方式引入 AMap.MouseTool 工具 map.plugin(["AMap.MouseTool"], function() { //在地图中添加MouseTool插件 var distanceTool = new AMap.MouseTool(map); //测量 distanceTool.rule(); }); ```  - 借助矢量图形编辑工具对各种已经绘制好的图形进行编辑工作 1. 添加一条绘制折线 ``` // 折线的节点坐标数组,每个元素为 AMap.LngLat 对象 var path = [ new AMap.LngLat(116.368904,39.913423), new AMap.LngLat(116.382122,39.901176), new AMap.LngLat(116.387271,39.912501), new AMap.LngLat(116.398258,39.904600) ]; var polyline = new AMap.Polyline({ path: path, borderWeight: 2, // 线条宽度,默认为 1 strokeColor: 'red', // 线条颜色 lineJoin: 'round' // 折线拐点连接处样式 }); map.add(polyline); ```  2. 构造折线编辑对象,并开启折线的编辑状态 ``` // 引入多边形编辑器插件 map.plugin(["AMap.PolyEditor"],function(){ // 实例化多边形编辑器,传入地图实例和要进行编辑的多边形实例 polylineEditor = new AMap.PolyEditor(map, polyline); // 开启编辑模式 polylineEditor.open(); }); ``` - 实例 [链接在此,点击体验](https://lbs.amap.com/api/javascript-api/example/overlayers/overlay-draw/?sug_index=1) 1. 代码: ```