summaryrefslogtreecommitdiff
path: root/data/geoquery/smt-semparse/decode_sentence.py
blob: 19147340f71cb86293dbb9f3782285d24cb0f682 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
import os
import tempfile, shutil
from src.extractor import Extractor
from src.smt_semparse_config import SMTSemparseConfig
from src.moses import Moses
from src.functionalizer import Functionalizer

#input: English sentence
if __name__ == '__main__':
  sentence = ''
  if len(sys.argv) == 3:
    experiment_dir = sys.argv[1]
    sentence = sys.argv[2]
  else:
    assert False
	
  # load config
  config = SMTSemparseConfig('/workspace/grounded/smt-semparse-cp/settings.yaml', '/workspace/grounded/smt-semparse-cp/dependencies.yaml')

  #stem
  sentence = Extractor(config).preprocess_nl(sentence)

  # we need a temp dir!
  temp_dir = tempfile.mkdtemp()

  #decode
  moses = Moses(config)
  moses.decode_sentence(experiment_dir, sentence, temp_dir)

  #convert to bracket structure
  print Functionalizer(config).run_sentence(experiment_dir, temp_dir)

  #delete tmp files
  shutil.rmtree(temp_dir)