【发布时间】:2015-06-02 10:04:34
【问题描述】:
我正在尝试标记文本,使用 POS 标记器,然后使用自定义的“模式”(见下文)对其输出进行分块。这些是我的安装导入存储库,然后是 post 标记的输出。
from nltk.chunk import *
from nltk.chunk.util import *
from nltk.chunk.regexp import *
pos = [(u'max', 'NN'), (u'workpiece', 'NN'), (u'diameter', 'NN'), (u'250', 'CD'), (u'mm', 'NN'), (u'threading', 'VBG'), (u'length', 'NN'), (u'800', 'CD'), (u'mm', 'NN'), (u'max', 'NN'), (u'module', 'NN'), (u'5', 'CD'), (u'total', 'NN'), (u'power', 'NN'), (u'requirement', 'NN'), (u'5', 'CD'), (u'kW', 'NNP')]
我正在尝试通过以下方式调整我创建的 POS chunker:
pattern = r"""
FEAT: {<NN><NN>+}
{<VBG><NN>}
VAL: {<CD><NN|NNP>}
"""
我目前的输出:
(S
(ATTR max/NN workpiece/NN diameter/NN)
(VAL 250/CD mm/NN)
(ATTR threading/VBG length/NN)
800/CD
(ATTR mm/NN max/NN module/NN)
5/CD
(ATTR total/NN power/NN requirement/NN)
(VAL 5/CD kW/NNP)
我需要的输出:
(S
(ATTR max/NN workpiece/NN diameter/NN)
(VAL 250/CD mm/NN)
(ATTR threading/VBG length/NN)
(VAL 800/CD mm/NN)
(ATTR max/NN module/NN)
5/CD
(ATTR total/NN power/NN requirement/NN)
(VAL 5/CD kW/NNP)
如何自定义此卡盘模式,以使 800(CD) mm (NN) 也被视为 VAL。我认为我的 VAL 代码表示:找到一个标记为 CD 的标记,然后是标记标记 NN。我应该采取什么方法来实现这一目标?
谢谢
【问题讨论】:
标签: python regex nltk chunking