[英]Trying to regex all capitalized words EXCEPT those immediately following a period in Python
我试图让机器人在文本中爬行并高度准确地吸收所有专有名词/短语。 因此,在句子中间大写的任何内容,连续大写的任何内容都被视为同一短语(和列表条目)的一部分。
到目前为止,我有:
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)
这需要更多周围的小写单词,但不太容易受到前一期问题的影响。 我已经在这几个小时了。 有人看到我做错了吗?
一种选择是匹配所有内容以确保匹配期间。 然后您可以过滤掉所有包含句点的匹配项。
像这样\.? *[AZ][az]*
\.? *[AZ][az]*
然后,您可以过滤掉有问题的匹配项。
import re
out = re.findall('\.? *[A-Z][a-z]*', 'This is a sentence. This is Another sentence. And this is a anoth.er Hello')
outFil = [x for x in out if x[0] != '.']
print(out, outFil)
['这个', '。 这个','另一个','。 和','你好']
['这个','另一个','你好']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.