QNLP  v1.0
word_types.py
Go to the documentation of this file.
1 
2 __author__ = "ICHEC"
3 __copyright__ = 'Copyright 2020, QNLP'
4 __credits__ = ['{credit_list}']
5 __license__ = '{license}'
6 __version__ = '{mayor}.{minor}.{rel}'
7 __maintainer__ = '{maintainer}'
8 __email__ = 'lee.oriordan@ichec.ie'
9 __status__ = 'alpha'
10 
11 
12 """
13 Base class for pregroup types
14 """
15 class PregroupType():
16  def __init__(self, label):
17  self.label = label
18  def __str__(self):
19  return self.label
20 
21 
22 
23 """
24 Simple class for pregroup types with adjoint
25 """
27  def __init__(self, label, isAdj, adjOrder=0):
28  super().__init__(label)
29  self.isAdj = isAdj
30  if isAdj:
31  assert (adjOrder!=0)
32  self.adjOrder = adjOrder
33 
34  def __str__(self):
35  adj_order_str = ""
36  if self.isAdj:
37  adj_order_str = "^"
38 
39  for ii in range(abs(self.adjOrder)):
40  adj_order_str += 'l' if self.adjOrder < 0 else 'r'
41 
42  return super().__str__() + ": ADJ=" + str(self.isAdj) + " ORD=" + adj_order_str
43 
44 
45 
46 """
47 Meaning data type
48 """
50  def __init__(self, isAdj, adjOrder=0):
51  super().__init__('s', isAdj, adjOrder)
52 
53 
54 
55 """
56 Noun data type with matched nltk type defined in matchables()
57 """
59  def __init__(self, isAdj, adjOrder=0):
60  super().__init__('n', isAdj, adjOrder)
61 
62 
63 
64 """
65 Verb data type (n^r \otimes s \otimes n^l) with matched nltk type defined in matchables()
66 """
68  def __init__(self, isAdj, adjOrder=0, left_adj : Noun = None,
69  right_adj : Noun = None,
70  meaning : Meaning = None):
71  super().__init__('v', isAdj, adjOrder)
72  self.left_adj = left_adj
73  self.right_adj = right_adj
74  self.meaning = meaning
75 
76 
77 
78 """
79 Simple sentence data type
80 """
81 class Sentence():
82  def __init__(self, structure):
83  self.structure = structure
84  def __str__(self):
85  return 's:' + ','.join([s.label for s in self.structure])
86 
87 
def __init__(self, isAdj, adjOrder=0)
Definition: word_types.py:50
def __init__(self, label, isAdj, adjOrder=0)
Definition: word_types.py:27
def __init__(self, isAdj, adjOrder=0)
Definition: word_types.py:59
def __init__(self, structure)
Definition: word_types.py:82
def __init__(self, isAdj, adjOrder=0, Noun left_adj=None, Noun right_adj=None, Meaning meaning=None)
Definition: word_types.py:68