我正在 NLTK 中加载 POS 标记语料库,并且我想找到涉及 POS 标记的某些模式。这些模式可能非常复杂,包括许多不同的 POS 标签组合。 输入字符串示例:
We/PRP spent/VBD some/DT time/NN reading/NN about/IN the/DT historical/JJ importance/NN of/IN tea/NN in/IN Korea/NNP and/CC China/NNP and/CC then/RB tasted/VBD the/DT most/JJS expensive/JJ green/JJ tea/NN I/PRP have/VBP ever/RB seen/VBN ./.
在这种情况下,POS 模式类似于:(IN) (THE)? (NNP)(CC)? (NNP)
...
我正在加载我的语料库:
reader = TaggedCorpusReader(corpus_dir, r'.*\.pos')
显然,我可以使用 Python 的 re
包来完成此操作,但这样的正则表达式很快就会变得难以让其他开发人员理解、调试和更新。
在 NLTK 中执行此操作最优雅的方法是什么?是否有辅助函数可以在 POS 标记文本中查找比通常的正则表达式更具可读性的模式?
谢谢
最佳答案
NLTK中有一个函数叫做str2tuple它将带标签的句子解析为元组列表,然后您可以轻松地将 POS 标签提取到单独的列表中。不需要正则表达式。
关于python - POS 标记的 NLTK 语料库中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15970033/