如何仅通过将regEx语法与POS和/或CFG结合使用,才能从文本段落中识别出被测实体并将其分块到NLTL中

问题描述

从语料库开始,我已经对词进行了POS标记。现在,我必须确定被测实体,例如30,000吨,500卢比,二十五加仑等。我已经通过NLTL regEX解析器并编写了如下代码

 grammer = r"""  MEASURED_ENTITY: {<CD>+<JJ>*<NN|NNPS|NNS><NNS|NNPS>?} 
                    {<CD><JJ>}
                    {<CD><CD>+}
                    
            """
 cp = nltk.RegexpParser(grammer)
 corpra_2_sen_1 = [('It','PRP'),('is','VBZ'),('of','IN'),('twenty-five','JJ'),('million','CD'),('dollars','NNS')]
 result = cp.parse(corpra_2_sen_1)

但是它给出这样的输出

(S
  It/PRP
  is/VBZ
  of/IN
  twenty-five/JJ
  (MEASURED_ENTITY million/CD dollars/NNS))

此处的被测实体应为“两千五百万美元”

我必须更改语法以使其正确检测到此句子。但是通过这样做,我发现其他句子没有给出正确的检测。

我认为我使用的方法错误的。

我必须在没有机器学习之类的训练分类器的情况下这样做。

有可能吗?任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)