# 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. 用户需导航至已被标记的不可行路段时系统自动推送标记的范围及信息,提醒用户。 - 用户需求: - 路线准确,信息更新及时。 - 自动避开不可行路线的路线推荐系统,有多种路线选择。 - 能在最短的时间内选择出最佳行驶路线,避免绕弯路、走远路和道路不通等情况。 - 用户画像 ![](https://images.gitee.com/uploads/images/2020/0717/005510_2b4673ed_2231137.png "用户画像2.png") ### 问题表述 - 用户使用场景:导航途径某一因无法预知的意外情况而无法通行的道路时,需要临时改变路线,不仅浪费时间,还消耗精力,影响心情。 - 任务:用户在导航过程中踩坑因不可预知的意外情况导致的路面瘫痪/不可行的情况时,使用画笔标记问题路段,并给出关键词如:修路、路面坍塌、交通事故等,再由系统收集整合,提取文本信息关注点,再标签化文本评论,目的是及时推送给下一位导航途径此路段的用户,帮助用户在最短时间内选择出最佳行驶路线,避免再次踩坑。 - 痛点: - 讨厌走弯路,有意外情况发生时希望导航软件可以及时提醒/推送,帮助最短时间内选择出最佳行驶路线。 - 用户的心声很重要。前一个用户踩雷后,希望可以把失败经验加以利用,充分发挥其价值,帮助其他人。 - 增长点/益点: - 对于已经踩过坑的用户来说,提供经验信息来帮助其他未踩坑用户也是发挥失败经历价值的一种方式,可以缓解踩坑之后烦躁的心情,同时,这次是自己帮助别人,下次就是别人帮助自己,提升成就感与期待值。 - 对于未踩坑的用户来说,前人的失败经验无疑是一种有价值的分享,帮助更快速选择最佳路线,避免绕路,充分利用时间。 - 价值主张画布 ![](https://images.gitee.com/uploads/images/2020/0724/153548_eda8d704_2231137.png "价值主张画布.png") ### 需求列表 优先级|问题|需求|是否智能加值|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,多轮问题。 ![](https://images.gitee.com/uploads/images/2020/0724/141657_e0a34722_2231137.png "屏幕截图.png") 我们可以看到,对于小孩子很简单的问题,电脑却不知道该怎么回答。其原因在于目前的自然语言处理还没有很好地解决常识和推理的问题。 ![](https://images.gitee.com/uploads/images/2020/0724/141757_0268fdcd_2231137.png "屏幕截图.png") 此外,还有前后不一致、自我矛盾的问题。比如说用户问“你今天多大了”?聊天机器人说“我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://images.gitee.com/uploads/images/2020/0717/191639_f9af3f8e_2231137.png "界面流程图.png") #### 原型图 [交互链接在此,点击体验](https://1f1gwe.axshare.com) - 总流程:手机地理定位——用户输入目的地名称——系统规划路线 - 情景1:导航开始——行驶途中遇到因意外情况不可行而导航中无标注的路段,用户使用画笔工具标记出该路段【**智能加值1:高德地图JS矢量图形编辑API**】——文本编辑给出路面状况关键词【**智能加值2:百度AI自然语言处理-评论观点抽取API(提取文本关注点)**】 - 情景2:后台识别该路线途径先前用户标记过的问题路段——整合该路段的被标记范围与内容,标签化文本评论,可视化数据反馈给用户【**智能加值3:百度AI自然语言处理-评论观点抽取API(文本信息标签化)**】——规划新路线 ![](https://images.gitee.com/uploads/images/2020/0718/143755_89b595fa_2231137.png "API原型 (1).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(文本信息标签化)**】——为用户推荐新路线 - 结束流程:系统规划其他路线——用户按需选定最终路线(系统输出选定道路数据信息)**(【数据再加值】系统获取/存储用户选择次数/频率数据信息)**——导航继续——结束 ![](https://images.gitee.com/uploads/images/2020/0717/193609_ecd362f3_2231137.png "数据流程图.png") #### 数据再加值 后台为用户推荐新路线之后可收集到用户选择某路线的次数/频率,可再整合为新的数据集,可视化分析后推送给新用户,供用户参考。 #### 关键智能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(); }); ``` ![](https://images.gitee.com/uploads/images/2020/0717/140239_98feee3e_2231137.png "代码1.png") 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(); }); ``` ![](https://images.gitee.com/uploads/images/2020/0717/140304_4d02f24c_2231137.png "代码3.png") - 借助矢量图形编辑工具对各种已经绘制好的图形进行编辑工作 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); ``` ![](https://images.gitee.com/uploads/images/2020/0717/143734_f516940b_2231137.png "代码4.png") 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. 代码: ``` 椭圆的绘制和编辑

利用mouseTool绘制覆盖物

``` 2. 图例: ![](https://images.gitee.com/uploads/images/2020/0717/144039_49287776_2231137.png "代码6.png") ##### 2. [百度AI开放平台 自然语言处理:评论观点抽取API](https://ai.baidu.com/tech/nlp_apply/comment_tag)——提取评论句子的关注点和评论观点,并输出评论观点标签及评论观点极性 1. 调用评论观点抽取API ``` from aip import AipNlp import csv import pandas as pd from pandas.core.frame import DataFrame """ 你的 APPID AK SK """ APP_ID = '********' API_KEY = '********' SECRET_KEY = '********' client = AipNlp(APP_ID, API_KEY, SECRET_KEY) # 导入评论数据文件,并找到第13列(12行)的评论内容提取出来 def output(): urls = [] with open('E:\\tb_iphone8.csv', "r") as f: reader = csv.reader(f) for row in reader: urls.append(row[12]) return urls # 通过百度云提供的API对评论观点进行提取 def commentTag(): x = output() all={} abst='' for i in range(10560): text=x[i] """ 调用评论观点抽取 """ """ 如果有可选参数 """ # 可选参数为13表示利用了3C产品的语料库 options = {} options["type"] = 13 """ 带参数调用评论观点抽取 """ result=client.commentTag(text, options) print(result) if "error_code" in result.keys(): abst+='' all['abstract'] = abst else: data = result['items'] items = data[0] abst += items['abstract'] all['abstract'] = abst return abst if __name__ == '__main__': ALL=commentTag() print(ALL) ``` 2. body请求示例 ``` { "text":"三星电脑电池不给力", "type":13 } ``` 3. 返回结果示例 ``` { "items": [ { "prop":"电池", "adj": "不给力", "sentiment": 0, "begin_pos": 8, "end_pos": 18, "abstract":"三星电脑电池不给力" } ] } ``` 4. 可视化处理 ![](https://images.gitee.com/uploads/images/2020/0717/145845_9023e540_2231137.png "代码9.png") 5. 文本内容标签化 ![](https://images.gitee.com/uploads/images/2020/0717/145910_5fb4e8f6_2231137.png "代码10.png") #### 商业可行性 >从市场发展角度来看,自然语言处理技术的市场基于技术本身的进步正处在快速发展期,市场利润空间成指数级增长,到2021年,全球市场年收入将超过70亿美元。市场架构主要分为软件供应商、硬件供应商和服务提供商。其中,相较于提供软件或硬件等直接支持的行业解决方案,提供自然语言处理平台服务以及其他相关数据或算法服务的企业占有超过50%的市场份额。 #### 技术可行性 >自然语言处理技术是指将人类沟通时所用的语言信息,经过处理转化为机器语言的过程。其作为人工智能技术的重要分支,在信息处理和数据提取中占据着重要地位。自然语言处理技术拥有众多细化技术分支,例如语音识别、语音合成、语义分析等。通过这些细化技术的互相组合,其能够实现社交网络文本情感分析、客户信息挖掘等更为复杂的技术应用。 #### 用户可欲性 用户想要的是更简单明了的操作及更简洁直观的可视化体验,结合高德JS API及百度评论观点抽取API可以做到这样的效果,满足用户需求。 >目前为止,自然语言处理平台的应用分布于多个领域,且通过其细化技术任务的多种组合,使自然语言处理平台的应用成功落地于众多分散的细化应用场景。 ### 关键智能API对比优势分析及可取代性分析 - 百度AI: - 全面、超大规模数据集、超大规模训练模型 - 单独的产品形态,不隶属于相关问服务的子项目 - 对零基础的用户有专门产品,也有面向专业算法工程师的数据管理和模型设计 - 高德地图JS API: - 支持平台全面Android/iOS/WP8 - 平台易用性强,对开发者更友好 - 阿里系的业务资源支持 - 腾讯地图的合作 - 拥有甲级导航电子地图测绘资质和甲级航空摄影测绘资质,拥有优质底层地图数据,拥有自有实采导航电子地图数据库 - 可取代性:高德地图API对比百度地图API >无论百度地图开放平台还是高德开放平台均着眼于LBS为开发者提供功能服务,但是目前从数据上看,高德地图API有更多APP接入,这一方面是因为其平台本身可以提供给用户丰富、实用的功能接口,带来更好的用户体验,另一方面也是由于阿里系软件的战略协同作用,因此高德地图API已经成为了阿里生态圈中不可或缺的一环。对于百度地图API,无论是功能细节或者推广渠道上都有亮眼之处,不过在百度系生态圈中却显得较为孤立,无论百度钱包或者糯米网在同类产品竞争中都不处在特别有优势的地位,这无形之中也影响了百度地图API的发展。 ### AI概率性考量及API使用风险评估 - 将自然语言处理技术付诸实践并非能够一蹴而就,从最初的词袋模型根据字段出现概率进行分析理解发展至如今基于深度学习技术的自然语言理解,其模型构建流程都包含着五个主要阶段:获取语料,对语料进行预处理,特征化,模型训练,以及之后对模型的评估与调试。这套成熟稳定的技术流程促生了成熟的集成层次,针对不同应用场景的通用性自然语言平台加速了自然语言处理技术商业化落地的脚步。 - 语义、数据与符号边界,让自然语言处理平台受地域限制:不同地区所开发针对本区域内使用的自然语言平台应用模块,在向不同语种区域延展的情况下会受限于平台的自然语言处理基础技术能力。 - 算法通用数据化,让自然语言处理平台较难进入特定领域:自然语言平台已然在零售、金融等行业应用渐入佳境,但在如心理诊疗,情感调节等特定情感感知、人与人交流领域还存在局限性。 ## 学习/实践心得总结及感谢 - 本文档写作进一步对《API机器学习与人工智能》课程深化总结实践,结合课上学习内容,并引入《产品经理能力培养》及《用户与视觉界面设计》课程的知识进行相关问题的思考总结和产品原型的制作。特别感谢[高德开放平台](https://lbs.amap.com/)提供的[矢量图形编辑JS API](https://lbs.amap.com/api/javascript-api/guide/overlays/editable-vector-overlay/?sug_index=0)和[百度AI开放平台](https://ai.baidu.com/)提供的[自然语言处理-评论观点抽取API](https://ai.baidu.com/tech/nlp_apply/comment_tag)代码对本产品的设计启蒙与技术支持。 - 总结:智能API的价值主张应按用户需求进行研究整合,切勿”为了智能而智能“。本项目以高德地图JS API:矢量图形编辑+百度AI开放平台:自然语言处理技术-评论观点抽取API为核心价值主张,以人为本,以用户为中心,旨在解决地图导航踩坑的痛点,由高德开放平台提供的矢量图形编辑JS API和百度AI开放平台提供的自然语言处理-评论观点抽取API代码提供技术支持,并且以界面流程、数据流程兼具的产品原型去做产品设计及验证,不仅是一次尝试,更是一次挑战。再次感谢。 - 参考报告: - [12个国内外头部案例,解读自然语言处理平台商业化趋势](https://www.thepaper.cn/newsDetail_forward_7335518) - [当前国内外在自然语言处理领域有哪些研究热点和难点?](https://www.zhihu.com/question/30305058?sort=created) - [百度地图API VS 高德地图API——地图开放平台竞品分析](http://www.360doc.com/showweb/0/0/926489032.aspx) - [2019年中国手机地图行业市场分析](https://bg.qianzhan.com/report/detail/300/191210-187cc691.html) - 原创图表(除必要界面流程图及数据流程图外)个数:7 - 有效外连URL(非重复)个数:13