【问题标题】:How to find out if a sentence is a question (interrogative)?如何判断一个句子是否是疑问句(疑问句)?
【发布时间】:2011-04-04 04:25:55
【问题描述】:

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

【问题讨论】:

  • @Noel 希腊语呢?他们使用;
  • “成为或不成为”也是如此。一个问题与否?因为 THAT 是问题。
  • 不能指望用户总是用 ? 结束他们的问题。 “存在还是不存在”也是一个问题。 :)
  • @belisarius 会花费太长时间 ;)
  • @belisarius 说的都是真的,有点无厘头 ;-)

标签: java algorithm nlp data-mining text-processing


【解决方案1】:

看看Link Grammar Parser是一个基于句子中相关词链接对概念的多语言解析器。它是用 C 编写的,但也有一个 Java JNI 接口。

【讨论】:

    【解决方案2】:

    在一个问题的句法分析中,正确的结构将是:

    (SBARQ (WH+ (W+) ...)
           (SQ ...*
               (V+) ...*)
           (?))
    

    因此,使用任何可用的句法解析器,具有嵌入 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)))
      (. ?))
    

    当然,有很多前面的子句会导致解析中的错误(可以解决),写得不好的问题也会如此。例如,这篇文章的标题“如何判断一个句子是否是一个问题?”会有一个 SBARQ,但没有一个 SQ。

    【讨论】:

    • s/任何一种可用的句法解析器/任何使用 Penn Treebank 格式的解析器/
    • 对于声明 Doctor Who 是 BBC 制作的英国科幻电视节目 Penn Treebank 格式为 (TOP (NP (NP (NNP Doctor))) (SBAR (WHNP (WP Who )) (S (VP (VBZ is)) (NP (NP (DT a) (JJ British) (NN 科学) (NN 小说) (NN 电视) (NN 节目)) (VP (VBN 出品) (PP (IN by ) (NP (DT the) (NNP BBC))))))))) 它失败了...
    • 仅供参考,F#/C# 的解析器可作为 nuget 包使用:sergeytihon.wordpress.com/2013/07/11/…
    • 能否在python nltk penn treebank中解析相同的结构
    【解决方案3】:

    许多 quasi-questions/requests-for-info 以语句的语法形式提出;例如“我想知道是谁偷了我的自行车”。

    我将放弃所有希望确定从其结构中用户的输入是否是一个问题,并且简单地假设它是一个问题,除非它明确地不是一个问题。您可以采用迭代的交互式方法,以便系统可以改进其对用户输入的“理解”:

         User: I would like to know how many angels fit on the head of a pin. 
         System: Do you have a question about angels?
         User: Yes.          
         System: Do you want to know if angels are fit?
         User: No.
         System: Do you want to know if angels have heads?
         User: Possibly.         
         System: Do you want to know if angels have pins?
         User: No.         
         System: Do you want to know if angels are numerous?
         User: No.
         System: Do you want to know the dimensions of an angel?
         User: Yes.
         System: Do you mean angels in paintings?
         User: No.
         System: Do you mean angels in myth and religious writing?
         User: Yes.
         System: Angels are metaphysical beings.
    
    
         User: I hear that Pennsylvania was founded by William Penn. Is that true?
         System: Do you have a question about hearing?
         User: No.
         System: Do you have a question about Pennsylvania?
         User: Yes.         
         System: Pennsylvania was founded by William Penn.
         User: When?         
         System: 1682.
         User: What does the name mean?
         System: What name?
         User: Pennsylvania!
         System: Do you want to know the meaning of Pennsylvania?
         User: Yes.
         System: Pennsylvania means Penn's Woods.
    

    【讨论】:

    • 这是一个很好的方法。我可以假设这纯粹是理论上的吗?
    • @Lee:你有关于“做”的问题吗?
    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2015-05-09
    • 1970-01-01
    • 2014-12-12
    • 2011-09-15
    相关资源
    最近更新 更多