我试图在python中创建一个匹配句子的正则表达式。我看到的主要是:[^\.\?\!].*?[\.\?\!]
,但是下面的测试句子有一些错误。您可以使用网站https://regex101.com/查看。我正在寻找一个包含下面所有问题的正则表达式,例如省略号,敬语和ie。
对于使用英语以外的语言进行标记化,我们可以 加载在tokenizers / punkt中找到的相应语言pickle文件 然后用另一种语言标记文本,这是一个参数 tokenize()函数。对于法语文本的标记化,我们将 使用french.pickle文件如下:史密斯先生买了cheapsite.com 150万美元,即他为此付出了很多。他介意吗?亚当 小琼斯认为他没有。无论如何,这不是真的......好吧,有 概率为.9不是。
P.S。如果您想知道我从自然语言处理书中得到了上述句子,并且在同一主题上有另一个堆栈溢出问题。
答案 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);