在为NLTK中的分块编写语法时,是否可以使用非标准的词性标签?例如,我有以下句子来解析:
complication/patf associated/qlco with/prep breast/noun surgery/diap
independent/adj of/prep the/det use/inpr of/prep surgical/diap device/medd ./pd
通过专门的标签(例如“medd”或“diap”)极大地帮助找到我需要的短语。我认为,因为你可以使用RegEx进行解析,它将独立于其他任何东西,但当我尝试运行以下代码时,我收到一个错误:
grammar = r'TEST: {<diap>}'
cp = nltk.RegexpParser(grammar)
cp.parse(sentence)
ValueError: Transformation generated invalid chunkstring:
<patf><qlco><prep><noun>{<diap>}<adj><prep><det><inpr><prep>{<diap>}<medd><pd>
我认为这与标签本身有关,因为NLTK无法从它们生成树,但是是否可以跳过该部分而只是返回分块的项目?也许NLTK不是最好的工具,如果是这样,有人可以推荐另一个用于分块文本的模块吗?
我正在开发使用Anaconda发行版的python 2.7.6。
提前致谢!
答案 0 :(得分:1)
是的,可以使用自定义标签进行NLTK分块。我用过同样的东西。 请参阅:How to parse custom tags using nltk.Regexp.parser()
ValueError和错误描述表明你的语法形成有错误,你需要检查一下。您可以使用相同的更新来更新答案,以获得有关更正的建议。