Compare commits
1 Commits
naive-nlu
...
naive-nlu(
Author | SHA1 | Date | |
---|---|---|---|
fe7b550cdb |
@ -1 +1,2 @@
|
|||||||
jsondiff
|
jsondiff
|
||||||
|
hy
|
||||||
|
@ -11,5 +11,6 @@ setup(name='tree_nlu',
|
|||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'jsondiff',
|
'jsondiff',
|
||||||
|
'hy',
|
||||||
],
|
],
|
||||||
zip_safe=False)
|
zip_safe=False)
|
||||||
|
@ -6,105 +6,8 @@ logging.getLogger().setLevel(logging.INFO)
|
|||||||
from .knowledge_base import KnowledgeBase
|
from .knowledge_base import KnowledgeBase
|
||||||
from .modifiable_property import is_modifiable_property
|
from .modifiable_property import is_modifiable_property
|
||||||
|
|
||||||
examples = [
|
import hy
|
||||||
{
|
from .tests import base
|
||||||
"text": "icecream is cold",
|
|
||||||
"parsed": ("exists-property-with-value", 'icecream', 'cold'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "is icecream cold?",
|
|
||||||
"parsed": ("question", ("exists-property-with-value", 'icecream', 'cold'))
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "lava is dangerous",
|
|
||||||
"parsed": ("exists-property-with-value", 'lava', 'dangerous')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "is lava dangerous?",
|
|
||||||
"parsed": ("question", ("exists-property-with-value", 'lava', 'dangerous')),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "earth is a planet",
|
|
||||||
"parsed": ("pertenence-to-group", 'earth', 'planet'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "io is a moon",
|
|
||||||
"parsed": ("pertenence-to-group", 'io', 'moon'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "is earth a moon?",
|
|
||||||
"parsed": ("question", ("pertenence-to-group", 'earth', 'moon')),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "Green is a color",
|
|
||||||
"parsed": ("pertenence-to-group", 'green', 'color'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "a plane can fly",
|
|
||||||
"parsed": ("has-capacity", 'plane', 'fly')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "a wale can swim",
|
|
||||||
"parsed": ("has-capacity", 'wale', 'swim')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "if earth is a planet, it is big",
|
|
||||||
"parsed": ("implies",
|
|
||||||
("pertenence-to-group", 'earth', 'planet'),
|
|
||||||
("exists-property-with-value", 'earth', 'big')),
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
base_knowledge = {
|
|
||||||
'icecream': {
|
|
||||||
"groups": set(['noun', 'object', 'comestible', 'sweet']),
|
|
||||||
},
|
|
||||||
'lava': {
|
|
||||||
"groups": set(['noun', 'object']),
|
|
||||||
},
|
|
||||||
'earth': {
|
|
||||||
"groups": set(['noun', 'object', 'planet']),
|
|
||||||
},
|
|
||||||
'io': {
|
|
||||||
"groups": set(['noun', 'object']),
|
|
||||||
},
|
|
||||||
'green': {
|
|
||||||
"groups": set(['noun', 'color', 'concept']),
|
|
||||||
},
|
|
||||||
'plane': {
|
|
||||||
"groups": set(['noun', 'object', 'vehicle', 'fast']),
|
|
||||||
},
|
|
||||||
'car': {
|
|
||||||
"groups": set(['noun', 'object', 'vehicle', 'slow-ish']),
|
|
||||||
},
|
|
||||||
'wale': {
|
|
||||||
"groups": set(['noun', 'object', 'living-being']),
|
|
||||||
},
|
|
||||||
'cold': {
|
|
||||||
"groups": set(['property', 'temperature']),
|
|
||||||
"as_property": "temperature",
|
|
||||||
},
|
|
||||||
'dangerous': {
|
|
||||||
"groups": set(['property']),
|
|
||||||
"as_property": "safety",
|
|
||||||
},
|
|
||||||
'planet': {
|
|
||||||
"groups": set(['noun', 'group']),
|
|
||||||
},
|
|
||||||
'moon': {
|
|
||||||
"groups": set(['noun', 'group']),
|
|
||||||
},
|
|
||||||
'color': {
|
|
||||||
"groups": set(['property', 'group']),
|
|
||||||
},
|
|
||||||
'fly': {
|
|
||||||
"groups": set(['verb']),
|
|
||||||
},
|
|
||||||
'swim': {
|
|
||||||
"groups": set(['verb']),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def test_assumption(expectedResponse, knowledge, query):
|
def test_assumption(expectedResponse, knowledge, query):
|
||||||
logging.info("Query: {}".format(query['text']))
|
logging.info("Query: {}".format(query['text']))
|
||||||
@ -118,6 +21,7 @@ def test_assumption(expectedResponse, knowledge, query):
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
base.run_tests()
|
||||||
knowledge = KnowledgeBase(
|
knowledge = KnowledgeBase(
|
||||||
knowledge=base_knowledge,
|
knowledge=base_knowledge,
|
||||||
)
|
)
|
||||||
|
62
naive-nlu/tree_nlu/tests/base.hy
Normal file
62
naive-nlu/tree_nlu/tests/base.hy
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
(import [..knowledge_base [KnowledgeBase]])
|
||||||
|
|
||||||
|
(setv knowledge-base
|
||||||
|
{
|
||||||
|
"icecream" { "groups" (set ["noun" "object" "comestible" "sweet"]) }
|
||||||
|
|
||||||
|
"lava" { "groups" (set ["noun" "object"]) }
|
||||||
|
"earth" { "groups" (set ["noun" "object" "planet"]) }
|
||||||
|
"io" { "groups" (set ["noun" "object"]) }
|
||||||
|
"green" { "groups" (set ["noun" "color" "concept"]) }
|
||||||
|
"plane" { "groups" (set ["noun" "object" "vehicle" "fast"]) }
|
||||||
|
"car" { "groups" (set ["noun" "object" "vehicle" "slow-ish"]) }
|
||||||
|
"wale" { "groups" (set ["noun" "object" "living-being"]) }
|
||||||
|
"cold" { "groups" (set ["property" "temperature"]) "as_property" "temperature" }
|
||||||
|
"dangerous" { "groups" (set ["property"]) "as_property" "safety" }
|
||||||
|
"planet" { "groups" (set ["noun" "group"]) }
|
||||||
|
"moon" { "groups" (set ["noun" "group"]) }
|
||||||
|
"color" { "groups" (set ["property" "group"]) }
|
||||||
|
"fly" { "groups" (set ["verb"]) }
|
||||||
|
"swim" { "groups" (set ["verb"]) }
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
(setv examples
|
||||||
|
[
|
||||||
|
{ "text" "icecream is cold"
|
||||||
|
"parsed" '(exists-property-with-value icecream cold) }
|
||||||
|
{ "text" "is icecream cold?"
|
||||||
|
"parsed" '(question (exists-property-with-value icecream cold)) }
|
||||||
|
{ "text" "lava is dangerous"
|
||||||
|
"parsed" '(exists-property-with-value lava dangerous) }
|
||||||
|
{ "text" "is lava dangerous?"
|
||||||
|
"parsed" '(question (exists-property-with-value lava dangerous)) }
|
||||||
|
{ "text" "earth is a planet"
|
||||||
|
"parsed" '(pertenence-to-group earth planet) }
|
||||||
|
{ "text" "io is a moon"
|
||||||
|
"parsed" '(pertenence-to-group io moon) }
|
||||||
|
{ "text" "is earth a moon?"
|
||||||
|
"parsed" '(question (pertenence-to-group earth moon)) }
|
||||||
|
{ "text" "Green is a color"
|
||||||
|
"parsed" '(pertenence-to-group green color) }
|
||||||
|
{ "text" "a plane can fly"
|
||||||
|
"parsed" '(has-capacity plane fly) }
|
||||||
|
{ "text" "a wale can swim"
|
||||||
|
"parsed" '(has-capacity wale swim) }
|
||||||
|
{
|
||||||
|
"text" "if earth is a planet it is big"
|
||||||
|
"parsed" '(implies
|
||||||
|
(pertenence-to-group earth planet)
|
||||||
|
(exists-property-with-value earth big)) }
|
||||||
|
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
(defn run_tests []
|
||||||
|
[
|
||||||
|
(setv knowledge (KnowledgeBase
|
||||||
|
knowledge=base_knowledge,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user