Skip to content

Commit dfe2066

Browse files
author
Sean Trott
committed
speech
1 parent d593779 commit dfe2066

6 files changed

Lines changed: 31 additions & 8 deletions

File tree

analyzer.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@ export ECG_FED=FED2
33
export JYTHONPATH=build/compling.core.jar:src/main/nluas/language
44
jython -J-Xmx2g -m analyzer ../ecg_grammars/research.prefs #&
55

6+
#jython -J-Xmx2g -i src/main/nluas/language/analyzer.py ../ecg_grammars/research.prefs #&
7+
68
#jython -i src/main/nluas/language/analyzer.py ../ecg_grammars/research.prefs #&
79
#python3 src/main/nluas/language/user_agent.py AgentUI

ntuples.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/bin/bash
22

33
#python3 src/main/nluas/language/ntuple_visualizer.py
4-
python3 src/main/nluas/language/ntuple_visualizer.py
4+
python3 src/main/nluas/language/ntuple_visualizer.py
5+
#python3 src/main/nluas/language/partial_parse.py

src/main/nluas/app/core_solver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def route_action(self, parameters, predicate):
181181
except AttributeError as e:
182182
#traceback.print_exc()
183183
message = "I cannot solve the '{}_{}' action".format(predicate,action)
184-
pprint.pprint(parameters)
184+
#pprint.pprint(parameters)
185185
self.history.insert(0, (parameters, False))
186186
self.identification_failure(message)
187187

src/main/nluas/language/core_specializer.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ def __init__(self, analyzer):
6767
def set_spans(self, spans):
6868
""" Sets the current constructional spans to input spans. These are used for referent resolution. (TODO)."""
6969
self.spans = spans
70+
self.np_spans = []
71+
for k in self.spans:
72+
if self.analyzer.issubtype("CONSTRUCTION", k[0], "NP"):
73+
self.np_spans.append(k)
7074

7175
def specialize_fragment(self, fs):
7276
""" Specializes a sentence fragment, e.g. 'the red one' or a non-discourse-utterance. """
@@ -249,7 +253,6 @@ def get_process_modifiers(self, eventProcess):
249253
returned[prop] = value
250254
elif pointer == "AdjunctModification":
251255
modifier = mod.modifier
252-
print(modifier.type())
253256
if modifier.type() == "Accompaniment":
254257
returned["co-participant"] = self.get_objectDescriptor(modifier.co_participant)
255258
elif modifier.type() == "Instrument":

src/main/nluas/language/specializer_utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ def merge_descriptors(self, old, new):
208208
""" Simple reference resolution gadget, meant to unify object pronouns with potential
209209
antecedents. """
210210
def resolve_referents(self, item, antecedents = None, actionary=None, pred=None):
211+
#self.find_closest_antecedent([7,8])
211212
if antecedents is None:
212213
antecedents = self._stacked
213214
popper = list(antecedents)
@@ -225,6 +226,17 @@ def clean_referent(self, ref):
225226
ref['objectDescriptor'].pop('property', None)
226227
return ref
227228

229+
def find_closest_antecedent(self, target):
230+
""" Takes in target span/word, ranks previous spans. """
231+
ranks = []
232+
for k in self.np_spans:
233+
#if self.analyzer.issubtype("CONSTRUCTION", k[0], "Pronoun"):
234+
span = k[2]
235+
if span[0] < target[0] and span[1] < target[1]:
236+
ranks.insert(0, k)
237+
#print(ranks)
238+
239+
228240
def ordering(self, fs, ref):
229241
for index, value in fs.rootconstituent.__features__.items():
230242
if hasattr(value, "m") and value.m and value.m.type() == "RD":

src/main/nluas/language/user_agent.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,16 @@ def initialize_specializer(self):
8888
quit()
8989

9090
def match_spans(self, spans, sentence):
91-
sentence = sentence.replace(".", " . ").replace(",", " , ").replace("!", " ! ").split(" ")
92-
final = OrderedDict()
91+
sentence = sentence.replace(".", " . ").replace(",", " , ").replace("?", " ? ").replace("!", " ! ").split()
92+
#final = OrderedDict()
93+
#word_spans = OrderedDict()
94+
final = []
9395
for span in spans:
9496
lr = span['span']
95-
final[span['type']] = (sentence[lr[0]:lr[1]], lr, span['id'])
97+
final.append([span['type'], sentence[lr[0]:lr[1]], lr, span['id']])
9698
return final
9799

100+
98101
def process_input(self, msg):
99102
try:
100103
full_parse = self.analyzer.full_parse(msg)
@@ -111,7 +114,7 @@ def process_input(self, msg):
111114
#json_ntuple = self.decoder.convert_to_JSON(ntuple)
112115
return ntuple
113116
except Exception as e:
114-
self.output_stream(self.name, e)
117+
#self.output_stream(self.name, e)
115118
#traceback.print_exc()
116119
index += 1
117120
except Exception as e:
@@ -125,7 +128,9 @@ def speech_callback(self, ntuple):
125128
""" Processes text from a SpeechAgent. """
126129
#print(ntuple)
127130
#ntuple = json.loads(ntuple)
128-
new_ntuple = self.process_input(ntuple['text'])
131+
text = ntuple['text'].lower()
132+
print("Got {}".format(text))
133+
new_ntuple = self.process_input(text)
129134
if new_ntuple and new_ntuple != "null" and "predicate_type" in new_ntuple:
130135
self.transport.send(self.solve_destination, new_ntuple)
131136

0 commit comments

Comments
 (0)