如何在Python上使用正则表达式标记文本而不忽略其括号
如何在不忽略括号和()的情况下使用正则表达式标记文本 例如: 我想把这句话标记化:如何在Python上使用正则表达式标记文本而不忽略其括号,python,regex,nltk,tokenize,Python,Regex,Nltk,Tokenize,如何在不忽略括号和()的情况下使用正则表达式标记文本 例如: 我想把这句话标记化: I don't like to eat Cici's food (it is true). 我使用了这个正则表达式: pattern = r'''(?x)([A-Z]\.)+|\w+(-\w+)*|\$?\d+(\.\d+)?%?|\.\.\.|[][.,;"'?():-_`]''' tokenize_list = nltk.regexp_tokenize(sentence, pattern) 但输出与我想要
I don't like to eat Cici's food (it is true).
我使用了这个正则表达式:
pattern = r'''(?x)([A-Z]\.)+|\w+(-\w+)*|\$?\d+(\.\d+)?%?|\.\.\.|[][.,;"'?():-_`]'''
tokenize_list = nltk.regexp_tokenize(sentence, pattern)
但输出与我想要的不一样:
I
don
'
t
like
to
eat
Cici
'
s
food
(
it
is
true
)
.
<>我想要的输出应该是这样的,这是考虑括号,而不是标记(和一个词后,也不标记)和一个词之前:< /P>
I
don't
like
to
eat
Cici's
food
(it
is
true)
.
有人能帮我吗?谢谢。您可以使用如下正则表达式:
(['()\w]+|\.)
匹配信息
MATCH 1
1. [0-1] `I`
MATCH 2
1. [2-7] `don't`
MATCH 3
1. [8-12] `like`
MATCH 4
1. [13-15] `to`
MATCH 5
1. [16-19] `eat`
MATCH 6
1. [20-26] `Cici's`
MATCH 7
1. [27-31] `food`
MATCH 8
1. [32-35] `(it`
MATCH 9
1. [36-38] `is`
MATCH 10
1. [39-44] `true)`
MATCH 11
1. [44-45] `.`
除了希望
成为一个单独的标记之外,句子.split()
可能要简单得多。不过,我认为开始括号和结束括号也应该是单独的标记。谢谢你的意见@chepner