索答科技:领域应用 | 基于知识图谱的卧室领域问答系统打造
优采云 发布时间: 2020-08-11 18:352.1.2 数据采集
问句生成。同一个问题的问句是特别多的,首先对输入问句进行剖析,找到“*敏*感*词*问句”,然后对它进行动词,把每一个词用word2vec 寻找相关的词(比如美国-男人=女王-女人),相关的词把它们的位置序列记好,然后做笛卡尔积。这样的做完了,会生成*敏*感*词*这样问句的数据,当然上面有一些是不正确的语句,这个时侯用文本纠错的马尔可夫链的机率图模型去纠正它,最后人工筛选。第二种方式是,采集200多个跟菜谱相关的代词,以及相关的同义词,利用文本生成,生成问句。这里推荐OpenKG
2.1.3 知识库建立
首先做时序融合,就是之前做的实体,它的实体链接是不是按照时间的推理,而它换掉了它本身的这样一个涵义,进而做本体的扩展(不太懂)。多源融合,做一个实体的匹配和概念的对齐。
抽出实体和属性
2.1.4 数据访问
分为4个部份。
1.SPARQL查询 2.自然语言查询 3.SDK的形式 4.逻辑表达式,后台将其转化成SPARQL句子
2.2 知识图谱的建立
其中,不辣的查询比较历时,原因是因为标签没有不辣,因此要把所有的属性都查一遍。后来的解决方式是离线去处理,比如是甜的,那它一定不是辣的。
3 曾经踩过的一些坑
知识图谱上面的搜索是有一个问题的, ElasticSearch 检索上面的排序虽然是十分容易去做的,本身底层就写了一个排序打分的 TF-IDF。而用知识图谱的时侯,它附近的那些节点的权重都是一样的。比如说芋头能做哪些菜,那么查询下来所有的菜的权重都是一样的。知识图谱上面,映射的本身是扁平的,比如地瓜这个节点,能够查询好多菜谱,发现有些所列下来的这些菜你们都不认识,会导致糟糕的体验。解决方式:在知识图谱的属性当中,加了一个热度的一个值,热度主要是通过点击次数去估算,然后按照热度排序。
4 遇到的一些挑战与困难
1. 跨领域问题不仅基础工作,比如查询等方法不会有很大的改动,但是属性是要重新设定的。
2. 语义理解还没有达到一定的高度。当下主要还是在于文本分类+属性抽取+逻辑表达式,但是用多大的数据量可以将一句话直接运用到知识图谱中去还须要继续探究。
- end -
Tip:索答科技已然将 50w 菜谱本体信息在 OpenKG 上开放下来,每个菜谱收录店名,食材,味道,烹饪时间等属性。链接
索答菜谱本体信息 - 开放知识图谱
对于知识图谱查询这一块,主要涉及了RDF,OWL,SPARQL,推荐看 知识图谱-给AI装个脑部 里面讲解的太详尽,也有个demo,有时间我会把python3的实现放在github上。
Reference:
知识图谱-给AI装个脑部
索答科技:领域应用 | 基于知识图谱的卧室领域问答系统建立