本文整理汇总了Python中nltk.tree.Tree类的典型用法代码示例。如果您正苦于以下问题:Python Tree类的具体用法?Python Tree怎么用?Python Tree使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Tree类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: BP_tree_to_nltk_tree
def BP_tree_to_nltk_tree(tree):
root = Tree(str(tree.keys), children = [])
if isinstance(tree, BPnode) or isinstance(tree, Node):
for child in tree.children:
root.append(BP_tree_to_nltk_tree(child))
return root
开发者ID:ndm25,项目名称:eecs405,代码行数:7,代码来源:gui.py
示例2: wsjtree2pos
def wsjtree2pos(wsj_corpus_path):
print >> sys.stderr, "Reading in corpus..."
sentences = []
for d in os.listdir(wsj_corpus_path):
if os.path.isdir(wsj_corpus_path + "/" + d) and d != "CVS" and int(d) < 8:
for f in os.listdir(wsj_corpus_path + "/" + d):
if f.endswith(".mrg"):
fname = wsj_corpus_path + "/" + d + "/" + f
# print fname
tree_f = open(fname, "r")
tree_string = ""
for line in tree_f:
if line.strip():
if line.startswith("( (") or line.startswith("(("):
if tree_string:
tr = Tree(tree_string)
sentences.append(tr.pos())
tree_string = line.strip()
else:
tree_string = line.strip()
else:
tree_string += line.strip()
if tree_string:
tr = Tree(tree_string)
sentences.append(tr.pos())
return sentences
开发者ID:Juicechuan,项目名称:POSTagger,代码行数:27,代码来源:POSTagger.py
示例3: __init__
def __init__(self, node, children, parent_node=None,
rel=None, attrs=None, head=None):
self.parent_node = parent_node
self.rel = rel
self.attrs = attrs
self.head = head
Tree.__init__(self, node, children)
开发者ID:miyamofigo,项目名称:Japanese-corpus-and-utility,代码行数:7,代码来源:util.py
示例4: parse_tree
def parse_tree(self, text, binary=False, preprocessed=False):
nlp_output = self.nlp.annotate(text, properties={
'annotators': 'tokenize,ssplit,pos,parse',
'outputFormat': 'json',
'parse.binaryTrees': 'true'
})
if type(nlp_output) == str:
nlp_output = json.loads(nlp_output, strict=False)
if len(nlp_output['sentences']) > 1:
#merge trees from sentences
tree_string = "(Top "
for s in nlp_output['sentences']:
p_tree = Tree.fromstring(s['parse'])
tree_string += str(p_tree[0])
tree_string += ")"
merged_tree = Tree.fromstring(tree_string)
else:
#no merging required
merged_tree = Tree.fromstring(nlp_output['sentences'][0]['parse'])
#remove root
merged_tree = merged_tree[0]
if binary:
nltk.treetransforms.chomsky_normal_form(merged_tree)
if preprocessed:
merged_tree = preprocess_parse_tree(merged_tree)
return merged_tree
开发者ID:jonasrothfuss,项目名称:equity_news_thesis,代码行数:30,代码来源:parser.py
示例5: attach_tree
def attach_tree(head,dep,attachment,chain,indexes,flag,coindex=None):
#head,dep: trees; flag: 'right'/'left'
""" attach dep's projection chain to head's projection chain """
if isinstance(coindex,int): # handle coindex tag
label = attachment['label2']
offset = attachment['offset2']
dep = Tree(dep.label(),['*-'+str(coindex)])
else:
label = attachment['label']
offset = attachment['offset']
l_index = [l[0] for l in chain[0]].index(label)
count = sum([l[1] for l in chain[0]][:l_index+1])-offset
if flag=='right':
a_index = indexes[count-1]+1
elif flag=='left':
a_index = indexes[count-1]
indexes[count-1] += 1
else:
return "Invalid flag!"
if head.label()=='PRN':
s = 'head[0]'
else:
s = 'head'
for i in range(count-1):
s += '['+str(indexes[i])+']'
eval(s+'.insert('+str(a_index)+',dep)') # insert() vs pop()
if 'f_tag' in attachment:
if attachment['f_tag'] not in {'PRD','PRDs'}:
eval(s+'.set_label('+s+'.label()+"-"+attachment["f_tag"])')
else:
s += '['+str(indexes[count-1])+']'
eval(s+'.set_label('+s+'.label()+"-"+attachment["f_tag"])')
return head,indexes
开发者ID:luutuntin,项目名称:SynTagRus_DS2PS,代码行数:35,代码来源:syntagrus_ds2ps.py
示例6: munge
def munge(t):
if type(t) == Tree:
toks = t.leaves()
t = Tree(t.label(), [munge(child) for child in t])
setattr(t, "tokens", toks)
return t
else:
return Tree(t, [])
开发者ID:arnsholt,项目名称:syn-agreement,代码行数:8,代码来源:syn-agreement.py
示例7: parser_output_to_parse_deriv_trees
def parser_output_to_parse_deriv_trees(output):
lines = output.strip().split("\n")
deriv_tree_lines = lines[::2]
parse_tree_lines = lines[1::2]
parse_trees = [Tree.fromstring(line.replace('\x06', 'epsilon_')) for line in parse_tree_lines if line != '']
deriv_trees = [Tree.fromstring(line) for line in deriv_tree_lines if line != '']
return parse_trees, deriv_trees
开发者ID:jonpiffle,项目名称:ltag_parser,代码行数:8,代码来源:old_parser_scorer.py
示例8: removeNounMods
def removeNounMods(tree):
tree_str = tsurgeon.remove_internal_mods(tree)
if tree_str != '':
tree = Tree.fromstring(tree_str)
tree_str = tsurgeon.remove_participle_mods(tree)
if tree_str != '':
tree = Tree.fromstring(tree_str)
return tree
开发者ID:DerrickZhu1,项目名称:11611teamproject-YenYuan-,代码行数:8,代码来源:simplify.py
示例9: parse
def parse(self, tagged_sent):
"""Parse a tagged sentence.
tagged_sent -- the tagged sentence (a list of pairs (word, tag)).
"""
t = Tree(self.start, [Tree(tag, [word]) for word, tag in tagged_sent])
t.chomsky_normal_form(factor='left', horzMarkov=0)
return t
开发者ID:acapello,项目名称:PLN-2015,代码行数:8,代码来源:baselines.py
示例10: _get_tense
def _get_tense(cls, parse, token_indices, use_gold=False):
if len(token_indices) == 1:
return 'one_token'
parse_tree = Tree(parse['parsetree'])
start_index = min(token_indices)
end_index = max(token_indices) + 1
tree_position = parse_tree.treeposition_spanning_leaves(start_index, end_index)
arg_subtree = parse_tree[tree_position]
return cls._recurse_search_tag(arg_subtree, ['VP'], [])
开发者ID:OlafLee,项目名称:brown_coref_implicit,代码行数:9,代码来源:temporal_feature_functions.py
示例11: test_lbranch_parse
def test_lbranch_parse(self):
model = LBranch([], 'S') # empty training set
trees = [model.parse(s) for s in self.tagged_sents]
trees2 = [
Tree.fromstring("""(S (S|<> (S|<> (S|<> (D El) (N gato)) (V come)) (N pescado)) (P .))"""),
Tree.fromstring("""(S (S|<> (S|<> (S|<> (D La) (N gata)) (V come)) (N salmón)) (P .))"""),
]
self.assertEqual(trees, trees2)
开发者ID:acapello,项目名称:PLN-2015,代码行数:10,代码来源:test_baselines.py
示例12: test_flat_parse
def test_flat_parse(self):
model = Flat([], 'S') # empty training set
trees = [model.parse(s) for s in self.tagged_sents]
trees2 = [
Tree.fromstring("(S (D El) (N gato) (V come) (N pescado) (P .))"),
Tree.fromstring("(S (D La) (N gata) (V come) (N salmón) (P .))"),
]
self.assertEqual(trees, trees2)
开发者ID:acapello,项目名称:PLN-2015,代码行数:10,代码来源:test_baselines.py
示例13: tags2tree
def tags2tree(sentence, root_label='S', strict=False):
tree = Tree(root_label, [])
for (word, postag, chunktag) in sentence:
if chunktag is None:
if strict:
raise ValueError("Bad tag sequence")
else:
# Treat as O
tree.append((word, postag))
elif chunktag.startswith('B'):
tree.append(Tree(chunktag[2:], [(word, postag)]))
elif chunktag.startswith('I'):
if (len(tree) == 0 or not isinstance(tree[-1], Tree) or
tree[-1].label() != chunktag[2:]):
if strict:
raise ValueError("Bad tag sequence")
else:
# Treat as B-*
tree.append(Tree(chunktag[2:], [(word, postag)]))
else:
tree[-1].append((word, postag))
elif chunktag == 'O':
tree.append((word, postag))
else:
raise ValueError("Bad tag %r" % chunktag)
return tree
开发者ID:Mo-Talha,项目名称:Nomad,代码行数:26,代码来源:chunk_tagger.py
示例14: conlltags2tree
def conlltags2tree(sentence, chunk_types=('NP','PP','VP'),
root_label='S', strict=False):
"""
Convert the CoNLL IOB format to a tree.
"""
tree = Tree(root_label, [])
for (word, postag, chunktag) in sentence:
if chunktag is None:
if strict:
raise ValueError("Bad conll tag sequence")
else:
# Treat as O
tree.append((word,postag))
elif chunktag.startswith('B-'):
tree.append(Tree(chunktag[2:], [(word,postag)]))
elif chunktag.startswith('I-'):
if (len(tree)==0 or not isinstance(tree[-1], Tree) or
tree[-1].label() != chunktag[2:]):
if strict:
raise ValueError("Bad conll tag sequence")
else:
# Treat as B-*
tree.append(Tree(chunktag[2:], [(word,postag)]))
else:
tree[-1].append((word,postag))
elif chunktag == 'O':
tree.append((word,postag))
else:
raise ValueError("Bad conll tag {0!r}".format(chunktag))
return tree
开发者ID:DrDub,项目名称:nltk,代码行数:30,代码来源:util.py
示例15: __str2BguTree
def __str2BguTree(self,text):
lines = text.split('\n')
tree = Tree('s',[])
for line in lines:
if line=='':
continue
mlist = line.split("\t")
word = mlist[0]
raw = mlist[1]
tree.append((word,bguTag(raw)))
return tree
开发者ID:jedimonster,项目名称:nlp,代码行数:11,代码来源:BguCorpusReader.py
示例16: __build_tree
def __build_tree(self, node_num):
word_tuple = self.words[node_num]
tree_node = Tree(word_tuple[1], [])
node_dependencies = self.dependencies.get(node_num)
if node_dependencies is not None:
for dependency in node_dependencies:
dependency_node = self.__build_tree(dependency[0])
tree_node.append(dependency_node)
return tree_node
开发者ID:pln-fing-udelar,项目名称:inco-pln-nltk-extensions,代码行数:11,代码来源:maltparser_tree_builder.py
示例17: extractParticiple
def extractParticiple(tree):
part_mod = tsurgeon.hasParticipleMod(tree)
if part_mod != '':
subject = tsurgeon.findSubject(tree)
subject_words = Tree.fromstring(subject).leaves()
part_tree = Tree.fromstring(part_mod)
part_words = part_tree.leaves()
# Ignoring inflection
result_words = subject_words + ['is'] + part_words[1:]
sentence = ' '.join(result_words).strip() + '.'
return sentence
pass
开发者ID:DerrickZhu1,项目名称:11611teamproject-YenYuan-,代码行数:12,代码来源:simplify.py
示例18: postag_tree
def postag_tree(tree):
# Part-of-speech tagging.
words = tree.leaves()
tag_iter = (pos for (word, pos) in pos_tag(words))
newtree = Tree('S', [])
for child in tree:
if isinstance(child, Tree):
newtree.append(Tree(child.label(), []))
for subchild in child:
newtree[-1].append( (subchild, next(tag_iter)) )
else:
newtree.append( (child, next(tag_iter)) )
return newtree
开发者ID:chatbotimporved,项目名称:chatbot,代码行数:13,代码来源:informationextraction.py
示例19: _strip_functional_tags
def _strip_functional_tags(self, tree: Tree) -> None:
"""
Removes all functional tags from constituency labels in an NLTK tree.
We also strip off anything after a =, - or | character, because these
are functional tags which we don't want to use.
This modification is done in-place.
"""
clean_label = tree.label().split("=")[0].split("-")[0].split("|")[0]
tree.set_label(clean_label)
for child in tree:
if not isinstance(child[0], str):
self._strip_functional_tags(child)
开发者ID:ziaridoy20,项目名称:allennlp,代码行数:13,代码来源:penn_tree_bank.py
示例20: visualize_sentence_tree
def visualize_sentence_tree(sentence_tree):
processed_tree = process_sentence_tree(sentence_tree)
processed_tree = [
Tree( item[0],
[
Tree(x[1], [x[0]])
for x in item[1]
]
)
for item in processed_tree
]
tree = Tree('S', processed_tree )
tree.draw()
开发者ID:000Nelson000,项目名称:text-analytics-with-python,代码行数:14,代码来源:shallow_parsing.py
注:本文中的nltk.tree.Tree类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论