如何判断句子是否是一个问题(疑问句)?

nab*_*tar 23 java algorithm text-processing nlp data-mining

是否有一个开源Java库/算法用于查找特定文本是否是一个问题?
我正在研究一个问题回答系统,需要分析用户输入的文本是否是一个问题.
我认为问题可以通过使用开源NLP库来解决,但它显然比简单的词性标记更复杂.因此,如果有人可以通过使用现有的开源NLP库来告诉算法,那也会很好.
如果您知道使用数据挖掘来解决此问题的库/工具包,请告诉我.虽然很难获得足够的数据用于培训目的,但我将能够使用堆栈交换数据进行培训.

msb*_*msb 12

在问题的句法分析中,正确的结构将采用以下形式:

(SBARQ (WH+ (W+) ...)
       (SQ ...*
           (V+) ...*)
       (?))
Run Code Online (Sandbox Code Playgroud)

因此,使用任何可用的语法分析器,具有嵌入式SQ(可选)的SBARQ节点的树将是输入是问题的指示符.WH +节点(WHNP/WHADVP/WHADJP)包含问题词干(who/what/when/where/why/how),SQ保存倒置短语.

即:

(SBARQ 
  (WHNP 
    (WP What)) 
  (SQ 
    (VBZ is) 
    (NP 
      (DT the) 
      (NN question)))
  (. ?))
Run Code Online (Sandbox Code Playgroud)

当然,有很多先行条款会导致解析中的错误(可以解决),以及写得很糟糕的问题.例如,这篇文章的标题"如何判断一个句子是一个问题?" 将有一个SBARQ,但不是SQ.