Try to create query engine for parse tree
This commit is contained in:
parent
9ad8bcc667
commit
d1d7e9c9e6
@ -21,6 +21,7 @@ def _main():
|
|||||||
syntax_server = 'http://syntaxnet.athene.tech'
|
syntax_server = 'http://syntaxnet.athene.tech'
|
||||||
parse_tree = Syntax().run(text, syntax_server)
|
parse_tree = Syntax().run(text, syntax_server)
|
||||||
print(f'Parse tree:\n{parse_tree}')
|
print(f'Parse tree:\n{parse_tree}')
|
||||||
|
print(f'Nouns:\n{parse_tree.get_nouns()}')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from typing import List, Dict, Optional
|
from typing import List, Dict, Optional
|
||||||
|
|
||||||
from anytree import RenderTree
|
from anytree import RenderTree, Resolver
|
||||||
|
|
||||||
from src.parse_tree.parse_tree_node import ParseTreeNode
|
from src.parse_tree.parse_tree_node import ParseTreeNode
|
||||||
|
|
||||||
@ -45,5 +45,10 @@ class ParseTree:
|
|||||||
break
|
break
|
||||||
return root
|
return root
|
||||||
|
|
||||||
|
def get_nouns(self) -> str:
|
||||||
|
r = Resolver('upos')
|
||||||
|
nodes: List[ParseTreeNode] = r.glob(self._tree, '*/NOUN/ADJ/*')
|
||||||
|
return ' '.join([node.lemma for node in reversed(nodes)])
|
||||||
|
|
||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return '\n'.join([f'{pre}{node}' for pre, fill, node in RenderTree(self._tree)])
|
return '\n'.join([f'{pre}{node}' for pre, fill, node in RenderTree(self._tree)])
|
||||||
|
@ -4,6 +4,7 @@ from anytree import NodeMixin
|
|||||||
class ParseTreeNode(NodeMixin):
|
class ParseTreeNode(NodeMixin):
|
||||||
|
|
||||||
def __init__(self, index: int, lemma: str, upos: str, parent_index: int, relation: str, parent=None, children=None):
|
def __init__(self, index: int, lemma: str, upos: str, parent_index: int, relation: str, parent=None, children=None):
|
||||||
|
super(ParseTreeNode, self).__init__()
|
||||||
self.index = index
|
self.index = index
|
||||||
self.lemma = lemma
|
self.lemma = lemma
|
||||||
self.upos = upos
|
self.upos = upos
|
||||||
|
Loading…
Reference in New Issue
Block a user