2

我正在 NLTK 中加载带有 POS 标记的语料库,我想找到某些涉及 POS 标记的模式。这些模式可能非常复杂,包括许多不同的 POS 标签组合。示例输入字符串:

我们/PRP花费/VBD一些/DT时间/NN阅读/NN关于/IN/DT历史/JJ重要性/NN的/IN茶/NN在/IN韩国/NNP和/CC中国/NNP和/CC然后/ RB尝过/VBD最/DT最/JJS贵/JJ绿/JJ茶/NN I/PRP有/VBP曾经/RB见过/VBN./.

在这种情况下,POS 模式类似于:(IN) (THE)? (NNP) (CC)? (NNP)...

我正在加载我的语料库:

 reader = TaggedCorpusReader(corpus_dir, r'.*\.pos')

显然,我可以使用 Python 的re包来做到这一点,但这样的正则表达式很快就会变得难以理解、调试和更新其他开发人员。

在 NLTK 中这样做最优雅的方式是什么?是否有辅助函数可以在 POS 标记的文本中找到比通常的正则表达式更具可读性的模式?

谢谢

4

1 回答 1

2

NLTK 中有一个名为str2tuple的函数,它将标记的句子解析为元组列表,然后您可以轻松地将 POS 标记提取到单独的列表中。不需要正则表达式。

于 2013-04-27T00:50:29.387 回答