【问题标题】:natural language query processing自然语言查询处理
【发布时间】:2014-02-03 01:32:22
【问题描述】:

我有一个正在运行的 NLP(自然语言处理应用程序),它为我提供了一个已解析句子的树,那么我应该如何处理它。

What is the time
\-SBAR - Suborginate clause
  |-WHNP - Wh-noun phrase
  | \-WP - Wh-pronoun
  |  \-What
  \-S - Simple declarative clause
   \-VP - Verb phrase
     |-VBZ - Verb, 3rd person singular present
     | \-is
     \-NP - Noun phrase
       |-DT - Determiner
       | \-the
       \-NN - Noun, singular or mass
         \-time

应用程序有一个内置的 javascript 解释器,并试图将短语放入一个简单的函数中,例如

function getReply() {
   return Resource.Time();
}

在基本术语中,what = request = create 函数将是返回的对象,时间将引用时间,现在只需为此制作一个简单的解析器就很容易了,但是我们也有什么是现在时间,或者你知道现在几点。随着项目的发展,我需要它能够基于英语进一步开发。

来源是 C# .Net 4.5

提前致谢。

【问题讨论】:

  • 如果您要问如何识别语义等价的问题,例如“现在几点?”和“你知道现在几点了吗?”,那么这是一个相当困难的问题。解决一般情况需要相当多的研究工作(在实际可部署的编码工作开始之前)。
  • 是的,我正在重写一个基于 AIML 的 AI 引擎,它已经开发了 2 年多,问题是研究已经完成,但是我仍然无法看到最好的解决这个问题的方法是。
  • 感谢您的及时回复。我会尽力回答。我怀疑关于 SO 的任何答案都能够在一般情况下为这个问题提供一个很好的解决方案,但是对于简单的查询,让我尝试帮助:)
  • 谢谢,任何能启动它的东西都会很好,因为它必须有一个稳定的基础。
  • “自然语言查询处理”这个问题的答案是“疯狂紫罗兰色”。但说真的,首先你的问题是什么?

标签: c# nlp artificial-intelligence


【解决方案1】:

据我所知,使用依赖分析树会更有帮助。通常,提出问题的方式是有限的(我的意思是统计上显着的变化是有限的 ...可能会有人们通常不使用的极端情况),并且通过诸如什么何时在哪里为什么如何。

依赖解析将使您能够在查询中提取名义主题以及直接和间接对象。通常,这些将表达查询的基本意图。考虑两个等效查询的示例:

  1. 几点了?
  2. 你知道现在几点了吗?

它们的依赖解析结构如下:

root(ROOT-0, What-1)
cop(What-1, is-2)
det(time-4, the-3)
nsubj(What-1, time-4)

aux(know-3, Do-1)
nsubj(know-3, you-2)
root(ROOT-0, know-3)
dobj(is-7, what-4)
det(time-6, the-5)
nsubj(is-7, time-6)
ccomp(know-3, is-7)

两者都是 what 查询,并且都包含“时间”作为名义主题。后者也包含“you”作为名词性主语,但我认为可以根据启发式删除“do you know”、“can you please tell me”等表达方式。

您会发现Stanford Parser 对这种方法很有帮助。他们也有this online demo,如果您想查看更多工作示例。

【讨论】:

  • 谢谢,我没有使用斯坦福解析器,而是一个修改/重写的 OpenNLP,但你确实激发了一个想法,我可以查询。
  • OpenNLP 恐怕没有依赖解析。 The answer here 证实了我的恐惧。
  • 抱歉,请注意 SharpNLP,它是 OpenNLP 的翻译,但我相信它确实如此。如果没有,那只是清单上的一项额外任务。
  • 哈哈,我知道,我想要一些简单的东西,我可以从中工作,称之为准系统,就像在这个问题中一样,只需要一个地方开始。
猜你喜欢
  • 1970-01-01
  • 2016-07-19
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多