Skip to content
Functional Meaning Representation and Semantic Parsing Framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
.gitignore
LICENSE
README.md
api.go
api_easy.go
api_test.go
cfgrammar.go
cfgrammar_comments.go support c/c++ style comments in grammar files Sep 7, 2018
cfgrammar_fmr.go
cfgrammar_regex.go
cfgrammar_special.go
cfgrammar_terminal.go
cfgrammar_test.go
earley.go
earley_ast.go
earley_eval.go
earley_fmr.go
earley_stringer.go
earley_terminal_match.go
earley_test.go
frame_api.go
frame_api_test.go
funcs.go
funcs_test.go
grammar_index.go
grammar_index_test.go
grammar_refine.go
grammar_tokens.go
list_test.go
local_grammar.go
local_grammar_test.go
math_funcs.go
math_funcs_test.go
regexp_tagger.go
sf.grammar
termtype_jsonenums.go
termtype_string.go
types.go
types_util.go

README.md

FMR: Functional Meaning Representation & Semantic Parsing Framework

GoDocGo Report Card

Projects that uses FMR

mathsolver

What is semantic parsing?

Semantic parsing is the process of mapping a natural language sentence into an intermediate logical form which is a formal representation of its meaning.

The formal representation should be a detailed representation of the complete meaning of the natural language sentence in a fully formal language that:

  • Has a rich ontology of types, properties, and relations.
  • Supports automated reasoning or execution.

Representation languages

Early semantic parsers used highly domain-specific meaning representation languages, with later systems using more extensible languages like Prolog, lambda calculus, lambda dependancy-based compositional semantics (λ-DCS), SQL, Python, Java, and the Alexa Meaning Representation Language. Some work has used more exotic meaning representations, like query graphs or vector representations.

FMR, a formal meaning representation language

Tasks

  • Grammar checkers
  • Dialogue management
  • Question answering
  • Information extraction
  • Machine translation

What can FMR do, a glance overview

// semantic parsing
"五与5.8的和的平方的1.5次方与two的和减去261.712" =>
nf.math.sub(
  nf.math.sum(
    nf.math.pow(
      nf.math.pow(
        nf.math.sum(
          5,
          nf.math.to_number("5.8")
        ),
        2
      ),
      nf.math.to_number("1.5")
    ),
    2
  ),
  nf.math.to_number("261.712")
); // denotation: 1000

// slot filling
"从上海到天津的机票" => nf.flight("上海", "天津");
"到重庆,明天,从北京" => nf.flight("北京", "重庆");
"到上海去" => nf.flight(null, "上海");

References

You can’t perform that action at this time.