Regex 匹配句子的正则表达式
我试图用python制作一个与句子匹配的正则表达式。我看到最有效的是:Regex 匹配句子的正则表达式,regex,Regex,我试图用python制作一个与句子匹配的正则表达式。我看到最有效的是:[^\.\?\!].*?[\.\?\!],但是下面的测试句子有一些错误。您可以查看如何使用该站点。我正在寻找一个正则表达式,它包含了下面所有的问题,例如省略号、敬语和I.e.的东西 要在英语以外的语言中执行标记化,我们可以 加载在tokenizers/punkt和中找到的相应语言pickle文件 然后用另一种语言标记文本,这是 tokenize()函数。对于法语文本的标记化,我们将 使用french.pickle文件如下:史密
[^\.\?\!].*?[\.\?\!]
,但是下面的测试句子有一些错误。您可以查看如何使用该站点。我正在寻找一个正则表达式,它包含了下面所有的问题,例如省略号、敬语和I.e.的东西
要在英语以外的语言中执行标记化,我们可以
加载在tokenizers/punkt和中找到的相应语言pickle文件
然后用另一种语言标记文本,这是
tokenize()函数。对于法语文本的标记化,我们将
使用french.pickle文件如下:史密斯先生购买了cheapsite.com
150万美元,也就是说,他为此付出了很多。他介意吗?亚当
小琼斯认为他没有。无论如何,这不是真的。。。嗯,有
概率是0.9,不是
p、 如果你想知道,我从一本自然语言处理书籍中得到了上面的句子,以及关于同一主题的另一个堆栈溢出问题。最简单的方法是将它分成3个操作
- 用其他不带点的标记替换,例如省略号和你想要的任何东西,如
和@@@ie@
李>@@@ellipsis@@
- 匹配句子李>
- 在重建之后,即和省略号李>
sentences = re.sub(r'i\.e\.', "@@@ie@@@", sentences);
matches = re.match(r'[^\.\?\!].*[\.\?\!]', sentences);
matches = re.sub(r'@@@ie@@@', "i.e.", matches);
是的,你会怎么做呢?好的,但请记住,这并不是那么简单,因为对于每种语言来说,你必须(至少)处理一个带有点的千字字典,而如果你想做一些有效的事情,那么对一千个或更多的子字符串这样做是不可能的。你是对的。但是正则表达式中没有其他方法来处理不是句子结尾的点,因为点是regexp中的点。对于广泛的用例,您必须处理NLP