![]() |
1
18
另请参见: How to find out if a sentence is a question (interrogative)? 在一个问题的句法分析中(通过像nltk这样的工具箱获得),正确的结构将采用以下形式:
因此,使用任何一个可用的语法解析器,一个带有SBARQ节点的树(可选地)将成为一个指示输入是一个问题的指标。WH+节点(WHNP/WHADVP/WHADJP)包含问句干(who/what/when/where/why/how),SQ包含倒装短语。 即。:
当然,前面有很多子句会导致语法错误(这可以解决),写得很差的问题也是如此。例如,这篇文章的标题“如何找出一个句子是不是一个问题?”会有一个SBARQ,但不是SQ。 |
![]() |
2
16
你需要一种更高级的语言分析来完成这个任务。需要证据吗?可以。。。
|
![]() |
3
10
找出一个句子是否是一个问题并不是一件容易的事,因为人们提问的方式有很多种,其中很多都不遵循语法规则。因此很难找到一个好的检测规则集。在这种情况下,我会进行机器学习,并使用带注释的文本语料库训练算法(创建语料库和选择特征集可能需要一些时间)。基于机器学习的识别应该比基于规则的方法提供更好的回忆。以下是一个逐步说明:
|
![]() |
4
9
要确定疑问句的起始词,你应该通过一个大的文本语料库寻找以一个字母结尾的句子
你没有想到的几个,包括:我、现在、过去、曾经、可能、可能、可能、可能、可能、将、将、将、应该、已经、曾经和曾经。或许也该随时而去。同时考虑IN,AT,TO,FROM,and ON,以及UNDER和OVER。这一切都取决于你所拥有的查询系统的种类,以及你希望为你的用户提供多少自然语言查询的自由度。
同样,你应该检查你自己的所有问题,人们已经在同一个角度,找出他们的问题实际上
做
结束于
这应该会找到很多疑问句;祈使句也是一种可能性吗?
维基百科上有几篇关于 question answering natural language search engines . 这两个都有你可能想要的参考资料。您也可以浏览这些PDF文件:
START Natural Language Question Answering System 从麻省理工学院来似乎很有趣。 |
![]() |
5
8
为了支持JohnFx的答案,情况变得更糟了。以下是明确的问题:
然后您会发现用户开始输入以下类型的查询: 这是个问题吗?从句法上说,没有,但它确实值得一个很容易被称为答案的回答。(这类查询可能非常常见,具体取决于您的用户群。)
|
![]() |
6
1
我试了一下。。。我的目标是做一些轻量级的事情,不需要额外的库,并且让每个开发人员都能够控制一些必要的元素——比如填充某些字符,只使用负缩略词作为第一个单词的位置,并允许常见的问题元素。我创建了两个函数,当你从一个angular6html页面传入一个值时,它在我的大多数情况下都做得很好。。。 我不把“不要”作为一个开始词,因为它可以是一个陈述和一个问题一样多的次数。你不觉得吗? 角度HTML:
.ts功能:
|