Neo4j 提供大规模自然语言处理,使设备维修更高效
挑战
每次卡特彼勒机器送修或保养时,技术人员都会创建一份
保修文件,记录投诉、问题分析和解决方案。
存在一个大规模的技术文档库,其中大部分从
标签和计算语言学标准来看相当不错。然而,有大量
分散的数据需要连接。
该公司认识到有超过2700万份文档中存储着宝贵的数据,
并着手创建了一个NLP工具来发现这些未见的连接和趋势。
在过去十年中,他们已经一直在探索NLP在车辆
维护和供应链管理等方面的应用。尽管大部分数据在某些领域可以被
正确映射,但这并不意味着他们能够以有意义的方式表示和
利用这些知识。
“我们希望创建一个系统,允许人们提出任何类型的问题,只要这些问题在
特定领域内,”卡特彼勒首席数据科学家Ryan Chandler说道。“这意味着要创建一个
对话系统来测试图数据库的使用,演示一个能够回答问题的开放式用户界面,并开发一种创建口语化人机界面的能力。”
回答问题并开发创建口语化人机界面的能力。”
解决方案
因为图是最低层次的结构并提供了巨大的灵活性,所以图数据库
自然适用于语言处理和机器学习。
语言处理通常被分解为依存结构(关注动词并从动词引出弧线表示其他词与动词的关系),
或分解为成分树。
这两种结构都是图。
卡特彼勒使用 Neo4j 的图数据结构来创建知识的逻辑形式。
这种关系型数据库的 NoSQL 替代方案使他们能够构建本体并执行
推理。
为了从自然语言获取图查询结果,团队创建了数据架构,该架构通过一个开源NLP工具包摄取文本,
该工具包使用 Python 将句子组合成字符串,纠正边界并删除文本中的“垃圾”。
数据也从 SAP ERP 系统以及非 SAP ERP 系统导入。
系统,以及非SAP ERP系统。
机器学习分类工具从已经用
“原因”或“投诉”等术语标记的数据部分中学习,并应用于其余数据。
它使用 WordNet 作为词典提供单词定义,使用 Stanford
依存句法分析器解析文本,并使用 Neo4j 查找模式和连接,构建
层次结构和添加本体。
一旦这些都整合在一起,用户就可以使用简单的 Cypher 查询进行有意义的搜索。