名词短语提取正则表达式

时间:2017-05-21 03:59:12

标签: python regex nlp

下面给出的RE的解释是什么

r'KT: {(<JJ>* <NN.*>+ <IN>)? <JJ>* <NN.*>+}'

我不知道KT是什么,但JJ是形容词,NN是名词而IN是介词。

编辑:重新发布链接 http://bdewilde.github.io/blog/2014/09/23/intro-to-automatic-keyphrase-extraction/

1 个答案:

答案 0 :(得分:1)

假设您正在使用Penn part-of-speech tags

<NN.*>+至少匹配

中的一个
  • NN:名词,单数或质量
  • NNS:名词,复数
  • NNP:专有名词,单数
  • NNPS:正确的名词,复数

<JJ>匹配至少为零的形容词(不是比较或最高级),因此这是可选的。

您的RegEx的<JJ>* <NN.*>+部分因此至少匹配一个名词。该名词前面可以有任意数量的形容词。例如:

  • cats
  • brown cats
  • cute brown cats

(<JJ>* <NN.*>+ <IN>)?表示上面可以有另一个名词短语和介词(IN),例如

  • green eyes of cute brown cats

KT不是词性标记。您引用的代码适用于NLTK's RegexpParser,其中语法(大致)定义为Label: {rules}。所以KT实际上只是每个识别的名词短语都会采用的标签;您也可以将其命名为NPNounPhrase