【发布时间】:2020-04-27 17:20:31
【问题描述】:
我正在尝试让机器人抓取文本并高度准确地吸收所有专有名词/短语。因此,在句子中间大写的任何内容,连续大写的任何内容都被视为同一短语(和列表条目)的一部分。
到目前为止我有:
tag_string = re.findall('([a-zA-Z]+)\s([A-Z][a-z]*)\s([a-zA-Z]+)', in_string)
在句号之前的专有名词有问题。也接受周围的小写单词。
我也有:
#tag_string = re.findall('([a-zA-Z]+)\s([A-Z][a-z]*)(\s([a-zA-Z]+)|\.)', in_string)
它需要更多周围的小写单词,但不太容易受到前一期问题的影响。我已经在这几个小时了。有人看到我做错了吗?
【问题讨论】:
-
你是这个意思吗?
(?<!\.)[A-Z][a-z]+regex101.com/r/UvqJLo/1