2017-08-24 76 views
1

我需要确保某些字符串是否有效的问题。我正在考虑如何自己写这篇文章,但如果不是非常有限的话,它实际上是一个相当复杂的分析,而且我相信它之前一定要做很多次。如何检查是否字符串是一个有效的查询

我不只是在谈论与质问字开始,以问号结尾。例如,我希望所有这些通过:

  1. 是大峡谷大吗?
  2. 我知道峡谷通常是相当大的,而且是大峡谷大?
  3. 我刚才在想,大峡谷是大峡谷吗?

我很想抓住一个现有的js库(或端口的东西),为我做到这一点。我一直在寻找一段时间,但一无所获。

  • 附:我不得不在标题中使用“查询”一词,因为“问题”一词被禁止。
+0

这超出您所使用的语言为语言语义分析,复杂的和(高度飒飒后)专业特长。如果有一个JS库存在,我会很惊讶,大多数自然语言处理代码都是专有的,并由大家伙(Google,MS,Amazon等)拥有。 –

+0

[compromise.js](http://compromise.cool/)是JS NLP引擎,它甚至有一个'.questions()'子集。当然,它不是一个神奇的解决方案 - 所有YMMV都是如此。 –

+0

@Jay Gould - 嘿 - 谢谢你回来。是的,我同意,但我认为可能有些东西可能是常见的,因为它可以检测潜在的令人反感的语言。虽然这些通常使用较少的语义/暴力方法。 –

回答

2

亚历克斯·K的下我的问题的意见给我,我需要确切的答案。

compromise.js

真棒! :-)

编辑:

按照要求,这里是一个工作的例子。

在你的终端,安装npm,键入以下内容:

npm install compromise 

现在来测试是否一个字符串(MyString的)包含您可以使用下面的一个问题:

var nlp = require('compromise'); 
var containsQuestion = nlp(myString).questions().data().length === 1; 

(在上述情况下,多个问题也导致了阴性结果)

+1

请分享一个工作示例。 – lumio

+0

@lumio - 当然。我会编辑我的答案。 –

+0

或者只是编辑这一个 – lumio

相关问题