2017-05-02 105 views
-2

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

对于英语以外的语言进行标记化,我们可以 加载断词/ PUNKT发现相应的语言咸菜文件和 然后记号化的另一种语言的文本,这是 一个参数标记化()函数。对于法文文本的标记,我们将 使用如下的french.pickle文件:史密斯先生以150万美元的价格购买了cheapsite.com ,即他付出了很多。他介意吗?亚当 琼斯小心认为他没有。无论如何,这是不正确的......好吧,与 的概率.9它不是。

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

回答

0

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

更新:一些代码如何做到这一点。你必须为你想从句子匹配中排除的每个项目做替换。

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

是的,你会怎么做? –

+0

用代码示例更新了答案 –

+0

好的,但请记住它并非如此简单,因为对于每种语言,您必须使用点处理至少一千个词典(至少),并为此处理数千个或更多的子串如果你想要一些有效的东西,就不能这样做。 –