我有一个文本文件,我必须从它中提取出人们在工作中扮演的角色。“机械工程师”,“软件开发人员”等。我用NLTK来提取它,例如,
grammer= r"""
NP: {<NN.*|JJ>*<NN.*>} """我得到的结果是好的,但仍然对少数文件垃圾即将到来。对于这些行,我想应用正则表达式。
我的短信样本是这样的。
我想要的是,我会在“工程师”之前提取两个或三个单词。我使用正则表达式,例如,
regex=re.compile('|'.join([r'(?:\S+\s)?\S*[eE]ngineer']))但是,它只在特定单词之前提取一个单词。如何使它提取两个或更多的单词。?
我试着用{2-3}代替"?“在表达上。但我没有得到想要的结果。
我的方法正确吗?或者其他更好地提取这个特定短语的方法?
发布于 2016-05-24 07:50:39
判罚
(\w+\s){2,3}dog将匹配
over the lazy dog
the lazy dog在……里面
The quick brown fox jumps over the lazy dog the lazy dog我想这会让你开始的
https://stackoverflow.com/questions/37406032
复制相似问题