我有一个文本文件,我必须从中提取人们的工作角色。 "机械工程师","软件开发人员"等等 我已经使用NLTK使用语法来提取它,
grammer= r"""
NP: {<NN.*|JJ>*<NN.*>} """
我得到的结果是好的,但仍然很少有documnets垃圾来了。对于那些我想要应用正则表达式的行。
我的示例文本是这样的。
我想要的是,我将在&#34; Engineer&#34;之前提取两三个单词。 我使用正则表达式,
regex=re.compile('|'.join([r'(?:\S+\s)?\S*[eE]ngineer']))
但是,它只在特定单词之前提取一个单词。如何使它提取两个或更多的单词。?
我试着用{2-3}代替&#34;?&#34;在表达中。但我没有得到理想的结果。
我的方法是否正确? 或者以更好的方式提取这个特定短语的任何其他方法?
答案 0 :(得分:1)
正则表达式
(\w+\s){2,3}dog
将匹配
over the lazy dog
the lazy dog
在
The quick brown fox jumps over the lazy dog the lazy dog
这应该让你开始我想