最近我一直在阅读NLP,到目前为止,我已经得到了一个从句子拆分到POS标签的各种工作原理的基本概念(非常) ,还有知识表示。NLP /任务。回答 - 从数据库中检索信息
据我所知,有很多NLP库(主要是Java或Python),并且已经找到了.NET实现(SharpNLP)。实际上它很棒。无需编写任何自定义处理逻辑;只是使用他们的功能和瞧!用户输入是很好的分离和POS标记。
如果我的主要动机是建立一个问题回答系统(类似于聊天机器人),我不明白的是从这里开始。哪些库(最好是.NET)可供我使用?如果我想构建自己的知识库,我该如何表达自己的知识?我是否需要将POS标记的输入解析为我的数据库可以理解的其他内容?如果我使用MS SQL,是否有任何库可以帮助将POS标记的输入映射到数据库查询?或者我需要写我自己的数据库查询逻辑,根据程序语义(我读过)?
当然,下一步是制定一个结构良好的答复,但我认为我可以稍后离开。现在什么是我在这方面的资源缺乏(知识表示,NLP到KB/DB检索),我真的很感激,如果你们任何人都可以为我提供你的专业知识:)
哈哈,我很高兴你真的试了一下,所以至少我知道我应该朝哪个方向发展努力。对我而言,你所谈论的所有NLP内容似乎都很熟悉(我一直在阅读James Allen的自然语言理解),但是你对“真正的困难”的理解 - 真的让我觉得很懊恼。我猜这就意味着目前的规范是以句子和陈述的形式存储知识/事实,而不是任何其他形式的知识表示,你呢?你听起来对整个问题答疑主题都非常了解。你到目前为止如何? – matt 2013-02-20 16:08:25
@matt虽然我已经在各种特定领域的环境中实现了一些“NLP管道”,但我依然在通过大部分NLP和相关技术实现BS。不要被我显然权威的风格所迷惑;-)另外,这里描述的“事实”(与主语,动词和宾语一样是短语)仅仅是存储知识的常用方便方式,可能特别适用于语义搜索和红外线应用程序;然而,他们并不是你猜测的“当前规范”。例如,它们比语义网络更简单(但也更有限)。 – mjv 2013-02-21 06:47:18
“语义网络”有许多不同的“风味”,它们本身就是知识表示的另一种形式,也很流行,但也可能不是“规范”。事实上,可能没有任何规范,但只是一些概念格式,其众多的实现和支持语言。 NLP骑师的任务是选择一个适合手头任务的人(并且与整体架构非常吻合)。 – mjv 2013-02-21 06:55:04