Hi,
On 06/21/2017 03:29 AM, Shujing Ke wrote:
Hi, Ben and Nil,
Thanks for all your responses. I may be a bit slow this week - it is too
warm here and my baby is sick, he barely eat and drink anything since
yesterday morning.
*1. About the output format and TV of patterns*
The pattern miner will output the raw patterns found from the input data
(without more process). Because different modules in Opencog and
applications may require different output formats. It shouldn't be only
one output format. Currently we can put our discussion based on raw
pattern format. After we make sure the concents of patterns are right,
we can discuss about the output formats for differnt modules. If I have
time then, I can implement it, if I don't then I think each module's
developer should also be easy to turn the raw patterns into the format
they want. It is better to be on another layer out of the pattern miner,
which is more convient for each module to modify the pattern format they
need in future. Otherewise, any module wants to change some format, they
have to modify the pattern miner core.
OK. Although I think we still need to come up soon with a way to pass
the results, including frequencies, interestingness, etc, as atoms in
the atomspace, as opposed to writing the results in a file.
*5. A suggestion to make up a very simple tiny test data file *
I suggest Nil to make up a simple test data file just to test if the
output patterns are what you want and if the frequency count is correct.
For example, I made up a simple data before - the ugly-man-drink-soda
file, which contains 10 men, 10 women, among then 5 women and 5 men are
ugly, and also 5 women and 5 men drink soda - it is expected to find the
pattern that "ugly man drink soda". Because for such a tiny file, we can
actually check every output pattern and its count to see if there is any
bug. If it pass, then we can apply it on a big corpus. Otherwise, there
are too many outputs for a big corpus, it is hard to examine the result.
Agreed. That'll make a good second unit test.
Nil
Thanks,
Shujing
On Tue, Jun 20, 2017 at 4:48 AM, Ben Goertzel <[email protected]
<mailto:[email protected]>> wrote:
On Tue, Jun 20, 2017 at 2:29 AM, Nil Geisweiller
<[email protected] <mailto:[email protected]>> wrote:
> What do you mean exactly by "useful(A==>D)"?
What I was thinking was: If the implication [666], e.g.
ImplicationLink [handle=666]
EvaluationLink
PredicateNode "eat"
ListLink
ConceptNode "Ben"
ConceptNode "cockroach"
InheritanceLink
ConceptNode "Ben"
ConceptNode "weird"
was used or created by the BC, and was found to be useful for whatever
inference the BC was doing when it used or created [666], then the
utility of this link should be annotated via
EvaluationLink
PredicateNode "useful"
ListLink
[666]
[111]
where [111] is the handle of the target of the BC inference the BC was
doing when it created [666].
So maybe my example should look more like
A ==> B, B==>C |- A==>C
A==>C, C ==> D |- A ==>D
HebbianLink (D,B)
useful(A==>D, T)
where T is a variable that matches the target of prior BC inferences...
ben
--
Ben Goertzel, PhD
http://goertzel.org
"I am God! I am nothing, I'm play, I am freedom, I am life. I am the
boundary, I am the peak." -- Alexander Scriabin
--
You received this message because you are subscribed to the Google Groups
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit
https://groups.google.com/d/msgid/opencog/aa39cf17-9e1b-994a-74ee-b106ae885d29%40gmail.com.
For more options, visit https://groups.google.com/d/optout.