正则表达式分词器周期与省略号
regex tokenizer period vs. ellipsis
我想用句末标点符号(如“.”、“?”、“!”)分隔字符串,不包括省略号(“...”)。请注意,我正在处理的文本中的省略号是三个句点,而不是专用的 Unicode 字符串。
目前我做的是
tokenizer = nltk.RegexpTokenizer(r"[?.!]+", gaps=True)
但这仍然会在 ...
处拆分字符串。 但是,我想在 !!!
或 ??
处继续拆分,而不是 .
的多个连续实例。如果我想使用 RegexpTokenizer,区分省略号和句点的最简单方法是什么?
像这样的东西可以工作[?!]+|(?<!\.)\.{1,2}(?!\.)
我们匹配任何 non-zero 数量的 ?
和 !
或 1 或 2 个既没有点也没有点之前的点。
但是lookbehind 和lookahead 的性能很差。
顺便说一句,我找到这个网站 https://pythex.org 来检查 python 正则表达式
我想用句末标点符号(如“.”、“?”、“!”)分隔字符串,不包括省略号(“...”)。请注意,我正在处理的文本中的省略号是三个句点,而不是专用的 Unicode 字符串。
目前我做的是
tokenizer = nltk.RegexpTokenizer(r"[?.!]+", gaps=True)
但这仍然会在 ...
处拆分字符串。 但是,我想在 !!!
或 ??
处继续拆分,而不是 .
的多个连续实例。如果我想使用 RegexpTokenizer,区分省略号和句点的最简单方法是什么?
像这样的东西可以工作[?!]+|(?<!\.)\.{1,2}(?!\.)
我们匹配任何 non-zero 数量的 ?
和 !
或 1 或 2 个既没有点也没有点之前的点。
但是lookbehind 和lookahead 的性能很差。
顺便说一句,我找到这个网站 https://pythex.org 来检查 python 正则表达式