正则表达式匹配句子

时间:2017-05-02 21:27:26

标签: regex

我试图在python中创建一个匹配句子的正则表达式。我看到的主要是:[^\.\?\!].*?[\.\?\!],但是下面的测试句子有一些错误。您可以使用网站https://regex101.com/查看。我正在寻找一个包含下面所有问题的正则表达式,例如省略号,敬语和ie。

  

对于使用英语以外的语言进行标记化,我们可以   加载在tokenizers / punkt中找到的相应语言pickle文件   然后用另一种语言标记文本,这是一个参数   tokenize()函数。对于法语文本的标记化,我们将   使用french.pickle文件如下:史密斯先生买了cheapsite.com   150万美元,即他为此付出了很多。他介意吗?亚当   小琼斯认为他没有。无论如何,这不是真的......好吧,有   概率为.9不是。

P.S。如果您想知道我从自然语言处理书中得到了上述句子,并且在同一主题上有另一个堆栈溢出问题。

1 个答案:

答案 0 :(得分:0)

最简单的方法是将其拆分为3个操作。

  • 替换即省略号以及您想要的其他标记,如@@@ie@@@@@@ellipsis@@@之类的点。
  • 匹配句子。
  • 在重建之后,即省略号。

更新:有些代码如何操作。您必须为每个项目进行替换,并使用要从句子匹配器中排除的点。

sentences = re.sub(r'i\.e\.', "@@@ie@@@", sentences);
matches = re.match(r'[^\.\?\!].*[\.\?\!]', sentences);
matches = re.sub(r'@@@ie@@@', "i.e.", matches);