正则表达式 – 如何从输入中获取句号?
在文本中检测句子边界似乎很难.引号如.!?可能用于分隔句子但不准确,因为可能有歧义的词和引文,如美国或教授或博士我正在研究Tperl
regex库和正则表达食谱
Jan Goyvaerts但我不知道如何编写检测表达式句子?
在delphi中使用Tperlregex可能是比较准确的表达式? 谢谢
首先,您可能需要达到自己对“句子”的定义,然后实现该定义.例如,怎么样:
He said: "It's OK!" 是一两句话吗?一般答案是无关紧要的.决定是否要将其解释为一个或两个句子,并相应地进行. 其次,我不认为我会使用正则表达式.相反,我会扫描每个字符并尝试检测序列.一个句子本身可能不足以划分一个句子,但是一个句子后跟空格或回车(或字符串的结尾)可能就是这样.这会立即让你淘汰美国(没有空格的时期). 对于Prof. a Dr.这样的常见缩写,创建一个字典可能是一个好主意 – 也许可以由用户编辑,因为每种语言都有自己的一组常用缩写. 每种语言也都有自己的标点符号规则,这可能会影响标点符号的解释方式.例如,英语倾向于在括号内放置句号(如此),而波兰语则相反(如此).相同的区别将适用于双引号,单引号(某些语言根本不使用它们,有时它们与撇号等无法区分).您的规则可能必须特定于语言,至少部分是这样. 最后,你可能会用人类的方式来界定句子,但总会有一些案例可以抛出分析.例如,假设您有一个识别“Prof.”的字典.作为缩写,你打算做什么 Most people called him Professor Jones,but to me he was simply The Prof. 即使你有一个跟随并以大写字母开头的另一个句子,这仍然无法帮助你知道句子在哪里结束,因为它可能也是 Most people called him Professor Jones,but to me he was simply Prof. Bill. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |