2017-08-24 81 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

相關問題