📌  相关文章
📜  自然语言处理 |使用语料库阅读器进行分块

📅  最后修改于: 2022-05-13 01:55:28.392000             🧑  作者: Mango

自然语言处理 |使用语料库阅读器进行分块

什么是块?
这些是由词组成的,词的种类是使用词性标签定义的。人们甚至可以定义不能成为chuck 一部分的模式或单词,这些单词被称为chinks。 ChunkRule 类指定要在块中包含和排除的单词或模式。
这个怎么运作 :

  • ChunkedCorpusReader类的工作方式与 TaggedCorpusReader 类似,用于获取标记的令牌,此外它还提供了三种获取块的新方法。
  • nltk.tree.Tree的一个实例代表每个块。
  • 名词短语树看起来像 Tree('NP', [...]),而句子级别的树看起来像 Tree('S', [...])。
  • 在 n chunked_sents() 中获得句子树列表,每个名词短语作为句子的子树
  • 在 chunked_words() 中获得了名词短语树列表以及不在块中的单词的标记标记。

列出主要方法的图表:

代码#1:为单词创建一个 ChunkedCorpusReader

Python3
# Using ChunkedCorpusReader
from nltk.corpus.reader import ChunkedCorpusReader
 
# initializing
x = ChunkedCorpusReader('.', r'.*\.chunk')
 
words = x.chunked_words()
print ("Words : \n", words)


Python3
Chunked Sentence = x.chunked_sents()
print ("Chunked Sentence : \n", tagged_sent)


Python3
para = x.chunked_paras()()
print ("para : \n", para)


输出 :

Words : 
[Tree('NP', [('Earlier', 'JJR'), ('staff-reduction', 'NN'), 
('moves', 'NNS')]), ('have', 'VBP'), ...]

代码#2:对于句子

Python3

Chunked Sentence = x.chunked_sents()
print ("Chunked Sentence : \n", tagged_sent)

输出 :

Chunked Sentence : 
[Tree('S', [Tree('NP', [('Earlier', 'JJR'), ('staff-reduction', 'NN'), 
('moves', 'NNS')]), ('have', 'VBP'), ('trimmed', 'VBN'), ('about', 'IN'), 
Tree('NP', [('300', 'CD'), ('jobs', 'NNS')]), (', ', ', '),
Tree('NP', [('the', 'DT'), ('spokesman', 'NN')]), ('said', 'VBD'), ('.', '.')])]

代码#3:对于段落

Python3

para = x.chunked_paras()()
print ("para : \n", para)

输出 :

[[Tree('S', [Tree('NP', [('Earlier', 'JJR'), ('staff-reduction',
'NN'), ('moves', 'NNS')]), ('have', 'VBP'), ('trimmed', 'VBN'),
('about', 'IN'), 
Tree('NP', [('300', 'CD'), ('jobs', 'NNS')]), (', ', ', '), 
Tree('NP', [('the', 'DT'), ('spokesman', 'NN')]), ('said', 'VBD'), ('.', '.')])]]