我试图弄清楚如何按照NLTK书的第7章使用NLTK的级联组块.不幸的是,我在执行非平凡的分块测量时遇到了一些问题.
让我们从这句话开始:
"adventure movies between 2000 and 2015 featuring performances by daniel craig"
当我使用以下语法时,我能够找到所有相关的NP:
grammar = "NP: {<DT>?<JJ>*<NN.*>+}"
但是,我不确定如何使用NLTK构建嵌套结构.本书给出了以下格式,但显然有一些缺失(例如,如何实际指定多个规则?):
grammar = r"""
NP: {<DT|JJ|NN.*>+} # Chunk sequences of DT, JJ, NN
PP: {<IN><NP>} # Chunk prepositions followed by NP
VP: {<VB.*><NP|PP|CLAUSE>+$} # Chunk verbs and their arguments
CLAUSE: {<NP><VP>} # Chunk NP, VP
"""
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想做类似以下的事情:
grammar = r"""
MEDIA: {<DT>?<JJ>*<NN.*>+}
RELATION: {<V.*>}{<DT>?<JJ>*<NN.*>+}
ENTITY: {<NN.*>}
"""
Run Code Online (Sandbox Code Playgroud)
假设我想为我的任务使用级联的chunker,我需要使用什么语法?另外,在使用chunker时,我是否可以指定特定的单词(例如"定向"或"行动")?
假设我有一个变量,directory_list我将其定义并设置在名为ruby_block的变量中get_directory_list.我可以directory_list稍后在我的食谱中使用,或者编译/收敛过程会阻止这种情况吗?
例:
ruby_block "get_file_list" do
block do
transferred_files = Dir['/some/dir/*']
end
end
transferred_files.each do |file|
file "#{file}" do
group "woohoo"
user "woohoo"
end
end
Run Code Online (Sandbox Code Playgroud)