我正在做一个NLP项目,在这个项目中,我被赋予了一个POS标记的句子数据集来处理。数据集的格式(也应该提供例句)是
(单词,pos_tag)
除非这个单词有一个单引号(词缀如're,'s,n't,还有结尾引号也是'‘),否则格式是
(“单词”,"pos_tag")
用于处理此数据集的代码段如下所示
def corpus_reader(filepath):
pattern = '\(\'(\w+)\', |(?<=\").*?\", '
sentences = []
with open( filepath ) as f:
corpus = f.readlines()
for line in corpus:
temp = re.findall( pattern, line )
sentences.append( temp )
return sentences该模式由两种模式组成,cond2 1、x、cond2 2用于检测。
cond1对语料库中的所有单词进行匹配和提取。
cond2的意思是匹配'‘、’t、's和're‘,它们都包含在双引号中,就像我之前提到的那样,但是第二个条件并不适用。
所需的结果是所有pos标记的标记的列表。
有人能提供正确的正则表达式来检测我提到的情况吗?
下面是要分析的包含re、n、s和's‘的例句
(“我们”、“PRP”)、(“re”、“VBP”)、(“交谈”、“VBG”)、(“关于”、“IN”)、(“年份”、“NNS”)、(“以前”、“IN”)、(“前”、“IN”)、(“任何人”、“NN”)、(“听到”、“VBD”)、(“of”、“IN”)、(“石棉”、“NN”),(“拥有”、“VBG”)、(“任何”、“DT”)、(“可疑”、“JJ”)、(“属性”、“NNS”)、(“.”、“.”) (‘’,'DT'),(‘美国’,'NNP'),('is','VBZ'),('one','CD'),('of','IN'),('the','DT'),(‘小’,'JJ'),(‘工业化’,'VBN'),(‘国家’,'NNS'),(‘DT’,'WDT'),('T-7',‘-’-‘),(’不‘,'VBZ'),(’n‘,'RB'),(’有‘,'VB'),('a','DT'),(’更高‘,'JJR'),(’标准‘,'NN'),('of','IN'),(’规则‘,'NN'),('for','IN'),('the','DT'),(’the‘,’DT‘),(“光滑”,“JJ”),(‘',’',‘'),(’针状‘,'JJ'),(’纤维‘,'NNS'),(’这样‘,'JJ'),('as','IN'),(’青石棉‘,'NN'),(’那‘,'WDT'),('T-1',’无‘),('are','VBP'),(“机密”、“VBN”)、(“*-5”、“无--”)、(“as”、“IN”)、(“amphobiles”、“NNS”)、(“,”、“、”)、(“根据”、“VBG”)、(“TO”、“TO”)、(“Brooke”、“NNP”)、(“T”、“NNP”)、(“Mossman”、“NNP”)、(“)',',‘'),('a','DT'),(’教授‘,'NN'),('of','IN'),(’病理‘,'NN'),('at','IN'),('the','DT'),(’大学‘,'NNP'),('of','IN'),(’佛蒙特州‘,'NNP'),(’学院‘,'NNP'),('of','IN'),('Medicine','NNP'),('.','.')
感谢和感谢所有的回答和帮助
发布于 2020-04-11 13:01:35
我会用:
( # start of capture group 1
(?<=\(') # first alternative: positive lookbehind: ('
[^']* # zero or more characters other than '
(?=',) # positive lookahead: ',
| # start of second alternative:
(?<=\(") # positive lookbehind: ("
[^"]* # zero or more characters other than "
(?=",) # positive lookahead: ",
)https://stackoverflow.com/questions/61155129
复制相似问题