从文本数据中找到工作角色

时间:2016-05-24 06:35:42

标签: python regex nlp nltk

我有一个文本文件,我必须从中提取人们的工作角色。 "机械工程师","软件开发人员"等等 我已经使用NLTK使用语法来提取它,

grammer= r"""
          NP: {<NN.*|JJ>*<NN.*>}  """

我得到的结果是好的,但仍然很少有documnets垃圾来了。对于那些我想要应用正则表达式的行。

我的示例文本是这样的。

  • &#34;我是microsoft&#34;
  • 的软件开发工程师
  • &#34;我是具有10年经验的机械工程师&#34;

我想要的是,我将在&#34; Engineer&#34;之前提取两三个单词。 我使用正则表达式,

regex=re.compile('|'.join([r'(?:\S+\s)?\S*[eE]ngineer']))

但是,它只在特定单词之前提取一个单词。如何使它提取两个或更多的单词。?

我试着用{2-3}代替&#34;?&#34;在表达中。但我没有得到理想的结果。

我的方法是否正确? 或者以更好的方式提取这个特定短语的任何其他方法?

1 个答案:

答案 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

这应该让你开始我想