对这类话题比较感兴趣,再啰嗦两句 233
楼主其实已经把技术列的差不多了,如果要做个人助手的话,我结合我所知道的可用技术,梳理一下流程。
首先是语音输入和识别的问题,推荐这个平台
https://dialogflow.com/ 以前叫
api.ai 后来被 google 收购改名了。现在整合了各大平台接口,可以非常方便的开发语音助手。只要有个手机 app,来提供语音输入输出就行了。后面的逻辑处理你可以自己实现。
这个平台提供了,分词和归纳的功能。比如你问,今天北京的天气怎么样。 分词后"北京"会被归纳到 地点类型,当成一个属性。然后你调用自己接口处理的时候,可以把这些信息都传进去。
语音助手的实质是对话,对话的基础是理解上下文。比如上面的问天气,如果不知道地点,回答起来是牛头不对马嘴的。分词之后,北京作为一个地点属性,存储在上下文中,当前对话的地点就是北京。
你也可以自定义属性,或者为属性添加词条,比如为"地点"添加一个不知名的小地名。
楼主提到技术 1&2,已经有成熟的解决方案了,不用自己再造轮子了。
技术 3&4,楼主或许可以结合你附言中提到的那个东西吧,我不怎么了解。
关于数据存储,因为没有像西部世界里面那种高科技的帽子,数据的录入只能依赖于日常生活中的积累。
我觉得可以这样搞,如果是 社交网络癌的话,现有的数据已经很多了,其中少部分包含对待某事物的情感。可以想办法导出来,算是情感类的数据吧。
可以用 IFTTT,记录社交活动,自己存储起来,用作日后的数据分析。比如有个推是骂 xxx 的,然后你点了赞,通过感情词汇的分析,就可以得到你对 xxx 的态度,然后存储起来。
这个时候你有了人名:xxx,态度:讨厌。再到后面你问助手,我对 xxx 的看法时候,检索对应的信息就 ok 了。
知识类的数据,因为已经有一部分公共的知识(维基百科等)了,这些接口很多就不列举了。 真正自己产出的知识,我 倾向于建立自己的知识库。因为这是你自己真正有特色的东西。如果已经有写 blog 的习惯了,有观点输出,这部分的数据也就有了。如果没有的话,你要自己考虑一下你的知识库该怎么建。个人推荐 notion,现在出了表格真的很好用。