首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex模式用于查找英文POS标记语料库中后缀、尾引号和单词的所有匹配项

Regex模式用于查找英文POS标记语料库中后缀、尾引号和单词的所有匹配项
EN

Stack Overflow用户
提问于 2020-04-11 10:14:13
回答 1查看 105关注 0票数 0

我正在做一个NLP项目,在这个项目中,我被赋予了一个POS标记的句子数据集来处理。数据集的格式(也应该提供例句)是

(单词,pos_tag)

除非这个单词有一个单引号(词缀如're,'s,n't,还有结尾引号也是'‘),否则格式是

(“单词”,"pos_tag")

用于处理此数据集的代码段如下所示

代码语言:javascript
复制
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'),('.','.')

感谢和感谢所有的回答和帮助

EN

回答 1

Stack Overflow用户

发布于 2020-04-11 13:01:35

我会用:

代码语言:javascript
复制
(               # 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: ",
)

见Regex Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61155129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档