我正在尝试检测一个句子是问题还是陈述。除了在句子末尾寻找问号外,还有其他方法可以检测到这一点吗?我正在处理 Twitter 帖子,人们不一定会遵循 Twitter 上的问号等良好做法。
如果nltk,我也可以引用其他图书馆。现在可以工作了。
最佳答案
一个简单的方法是解析一个句子并寻找分配给它的标签。例如,解析“有没有办法做到这一点?”这句话。使用 Stanford 解析器将返回:
(ROOT
(SQ (VBZ Is)
(NP (EX there))
(NP
(NP (DT any) (JJ other) (NN way))
(S
(VP (TO to)
(VP (VB do)
(NP (DT this))))))
(. ?)))
其中 SQ
表示“反转的是/否问题,或 wh 问题的主要条款,在 SBARQ 中的 wh 短语之后”。另一个例子:
(ROOT
(SBARQ
(WHNP (WP What))
(SQ (VBZ is)
(NP
(NP (DT the) (NN capital))
(PP (IN of)
(NP (NNP Scotland)))))
(. ?)))
其中 SBARQ 表示“由 wh-word 或 wh-phrase 引入的直接问题”。从 Python 调用外部解析器并处理其输出非常简单,例如检查 this Python interface斯坦福 NLP 工具。
关于python - NLTK。判断一个句子是否为疑问句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879551/