Just a quick note:
" temperature average" is a proper English and synonymous to "average
temperature" and the "average of temperature". In other words, the word
'average' can be a noun, adjective or verb based on the context:
https://www.merriam-webster.com/dictionary/average

Thanks,
--
Nikita Ivanov



On Mon, May 18, 2020 at 12:55 PM Sergey Kamov <[email protected]> wrote:

> Hi Gleb
> What do you think about developing new probe side function enricher -
> 'nlpcraft:function'?
>
> Base idea of function enricher is search of maximum count of various
> functions, with references to another elements.
> For example:
> Some model has user element 'x:temp'  with synonym 'temperature'
> So, for sentence 'show me average temperature', token 'average' should
> be detected as element 'nlpcraft:function' with type 'avg' and relation
> to 'x:temp' element.
>
> 1. In general functions can be
>   - without argument
>   - with one argument
>   - with many arguments
> (We can start from first two variants - as first step.)
>
> 2. Functions with arguments should have references to some another elements
> It can be user element or some predefined elements like 'nlp:geo' etc.
> Look at supported elements in the documentation.
> (I suggest to define table, which describes, which functions can be
> related with which elements)
>
> 3. How to detect
> Example:
>   - average temperature - ok (element 'x:temp' is after word 'average')
>   - temperature average - skipped(such functions cannot be after their
> references)
>   - average - skipped (it doesn't have sense without any references)
>   - average <some free words> temperature - skipped (references should
> be after word without such gaps)
>   - average the temperature - ok (gaps which contain only stopwords are
> possible)
>
>
> 4. This enricher should create token with
>   - name 'nlpcraft:function',
>   - mandatory String property 'type' (function name),
>   - optional java.util.List<Integer> property 'indexes', which
>      - omitted for function without arguments
>      - has one length list of indexes for function with one argument
>    ("indexes" field name is hardcoded for internal enrichers and used in
> some related components)
>    Maybe some additional optional parameters can be passed.
>
> 5. Supported functions kinds can be
>   - main math
>   - sql
>   - etc
>   (We can start from math and sql functions, and extend supported kinds
> on next  steps)
>
> 6. Look at Limit, Relation and Sort enrichers as examples,
>   - they have such references to another elements via 'indexes' fields.
>   - also note please that this enricher also should be called in loop
> (like mentioned above) because can have references to nested elements.
>   - look also please, how stop-words processed in these enrichers.
>   (if functions with multiple word-names exist, stopwords are suitable
> inside these names, like 'X the Y' is ok as 'X Y' , where 'X Y' is
> multiple words valid function name)
>
> 7. Functions names and all their synonyms  (I guess mostly it can be
> shortcuts) can be hardcoded.
> Look at
> org.apache.nlpcraft.server.nlp.enrichers.coordinate.NCCoordinatesEnricher
> as example for numeric measures.
>
> What do you think?
> I suppose it can be good start for development.
>   - there are a lot of examples
>   - such task can help to dip in the project structure.
>
> Please ask questions.
> As result I think, we can create ticker with detailed described task.
>
>
> What is your opinion on this task?
>
>
> Sergey Kamov
>
>
> 18.05.2020 22:37, Nikita Ivanov пишет:
> > Gleb Privet,
> > Per our off-line discussion, I think functional enricher would be really
> > great problem to tackle. I think Sergey K. will provide more details as
> he
> > developed previous versions.
> >
> > Thank you and thank you for your contribution to the project so far!
> > --
> > Nikita Ivanov
> >
> >
> >
> > On Sun, May 17, 2020 at 12:35 PM Ifropc <[email protected]>
> > wrote:
> >
> >> Hello everybody!
> >>
> >> First of all, thank you for your feedback on my pull request!
> >> During working on my first issue, I was getting to know some high-level
> >> abstractions of Scala implementation. But I would like to dig a little
> bit
> >> deeper and get more in-depth knowledge of NLPCraft.
> >> Could you recommend some Jira issue which is good for starters?
> >>
> >> Thanks,
> >> Gleb.
>

Reply via email to