为什么 ConllChunkCorpusReader 中的 'chunk_types' 参数不起作用?
Why isn't working 'chunk_types' parameter in ConllChunkCorpusReader?
在NLTK的ConllChunkCorpusReaderclass中,有一个参数chunk_types
。
我预计它会 return 来自给定文本的相对块,但我不知道这个 chunk_types
到底是干什么用的。
text = '''
Mr. NNP B-NP
Meador NNP I-NP
had VBD B-VP
been VBN I-VP
executive JJ B-NP
vice NN I-NP
president NN I-NP
of IN B-PP
Balcor NNP B-NP
. . O'''
将 ConllChunkCorpusReader
加载为 reader 后,我得到如下结果。
>>> reader.chunked_sents(chunk_types='NP')
[Tree('S', [Tree('NP', [('Mr.', 'NNP'), ('Meador', 'NNP')]), ('had', 'VBD'),
('been', 'VBN'), Tree('NP', [('executive', 'JJ'), ('vice', 'NN'), ('president', 'NN')]),
('of', 'IN'), Tree('NP', [('Balcor', 'NNP')]), ('.', '.')])]
但我正在寻找只有 NP 块的输出,如下所示。
>>> reader.chunked_sents(chunk_types='NP')
[Tree('NP', [('Mr.', 'NNP'), ('Meador', 'NNP')]),
Tree('NP', [('executive', 'JJ'), ('vice', 'NN'), ('president', 'NN')]),
Tree('NP', [('Balcor', 'NNP')]), ('.', '.')])]
分块树是一棵最多三层的树:树的根(节点 S
),其子节点是 个词项或块;每个块又是一棵深度为 1 的树,其子项为词汇项。
如果你仔细看,你会发现你的输入有一个 VP 块已经消失了:树的顶部直接连接到词汇项 ('had', 'VBD')
和 ('been', 'VBN')
。这就是 chunk_types
所做的。
您可以通过打印或调用其 draw()
方法来可视化 reader 返回的树:
>>> trees = reader.chunked_sents(chunk_types='NP')
>>> print(t[0])
(S
(NP Mr./NNP Meador/NNP)
had/VBD
been/VBN
(NP executive/JJ vice/NN president/NN)
of/IN
(NP Balcor/NNP)
./.)
在NLTK的ConllChunkCorpusReaderclass中,有一个参数chunk_types
。
我预计它会 return 来自给定文本的相对块,但我不知道这个 chunk_types
到底是干什么用的。
text = '''
Mr. NNP B-NP
Meador NNP I-NP
had VBD B-VP
been VBN I-VP
executive JJ B-NP
vice NN I-NP
president NN I-NP
of IN B-PP
Balcor NNP B-NP
. . O'''
将 ConllChunkCorpusReader
加载为 reader 后,我得到如下结果。
>>> reader.chunked_sents(chunk_types='NP')
[Tree('S', [Tree('NP', [('Mr.', 'NNP'), ('Meador', 'NNP')]), ('had', 'VBD'),
('been', 'VBN'), Tree('NP', [('executive', 'JJ'), ('vice', 'NN'), ('president', 'NN')]),
('of', 'IN'), Tree('NP', [('Balcor', 'NNP')]), ('.', '.')])]
但我正在寻找只有 NP 块的输出,如下所示。
>>> reader.chunked_sents(chunk_types='NP')
[Tree('NP', [('Mr.', 'NNP'), ('Meador', 'NNP')]),
Tree('NP', [('executive', 'JJ'), ('vice', 'NN'), ('president', 'NN')]),
Tree('NP', [('Balcor', 'NNP')]), ('.', '.')])]
分块树是一棵最多三层的树:树的根(节点 S
),其子节点是 个词项或块;每个块又是一棵深度为 1 的树,其子项为词汇项。
如果你仔细看,你会发现你的输入有一个 VP 块已经消失了:树的顶部直接连接到词汇项 ('had', 'VBD')
和 ('been', 'VBN')
。这就是 chunk_types
所做的。
您可以通过打印或调用其 draw()
方法来可视化 reader 返回的树:
>>> trees = reader.chunked_sents(chunk_types='NP')
>>> print(t[0])
(S
(NP Mr./NNP Meador/NNP)
had/VBD
been/VBN
(NP executive/JJ vice/NN president/NN)
of/IN
(NP Balcor/NNP)
./.)