Octavian-ai / english2cypher

A model to transform english into Cypher queries, based off the CLEVR-graph dataset
The Unlicense
76 stars 20 forks source link

Other data : #4

Open WernerWildenboer opened 6 years ago

WernerWildenboer commented 6 years ago

I am trying to get this to work on my own personal data ,any advice would be greatly appreciated. I am busy editing the generate_graph to suite my own needs ? Would this be a good place to start ? ( I have all my neo4j data in .csv format )

davidhughhenrymack commented 6 years ago

Sure, what are you trying to achieve with your own data?

One possible place to start is to generate your own src and tgt text files and train the translator on those

On July 18, 2018 at 10:42:46 AM, WernerWildenboer (notifications@github.com) wrote:

I am trying to get this to work on my own personal data ,any advice would be greatly appreciated. I am busy editing the generate_graph to suite my own needs ? Would this be a good place to start ? ( I have all my neo4j data in .csv format )

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Octavian-ai/english2cypher/issues/4, or mute the thread https://github.com/notifications/unsubscribe-auth/AOUFIqomSNWeUcKw3EhzetFjlAJe87ZPks5uHwMWgaJpZM4VURhI .

WernerWildenboer commented 6 years ago

Question : QuestionForm( [Customer_ID], "What is {} version?", (lambda s: Pick(s, "version")), "id"),

Cypher : MATCH (a:Customer)-[b:VERSION]-(c) WHERE a.id = '[Customer_ID]' RETURN c.Name My own question , that sets up a cypher query based on my neo4j data (or .scv data) ^^

I just find this absolutely amazing , English to cypher ! (just want to thank you guys for setting this up , and the quick response [and patience with a noob])

P.S. Googleing src and tgt text files

davidhughhenrymack commented 6 years ago

Stoked to see you get it running for your own work!

Since you’ve made your own question forms, the rough path to getting it predicting is:

clvr-graph$ python -m gqa.generate

english2cypher$ python -m e2c.build —gqa-path ../clvr-graph/data/gqa-some-id-from-last-command.yaml

english2cypher$ python -m e2c.train

That’ll build src.txt and tgt.txt for you.

You’ll want to provide the gqa.generate module with a way to load / generate your graph data. If you’re using some pre-existing graphs you could make your own generate_graph function that randomly returns on in the expected format.

Alternatively, you could skip clvr-graph and just build (by any means you wish!) you own src-tgt pairs of translation strings. You could if you wanted take the functional->cypher code from clvr-graph and generate the pairs directly from your own QuestionForms. Or you could otherwise write the pairs.

On July 18, 2018 at 12:58:54 PM, WernerWildenboer (notifications@github.com) wrote:

Question : QuestionForm( [Customer_ID], "What is {} version?", (lambda s: Pick(s, "version")), "id"),

Cypher : MATCH (a:Customer)-[b:VERSION]-(c) WHERE a.id = '[Customer_ID]' RETURN c.Name My own question , that sets up a cypher query based on my neo4j data (or .scv data) ^^

I just find this absolutely amazing , English to cypher ! (just want to thank you guys for setting this up , and the quick response [and patience with a noob])

P.S. Googleing src and tgt text files

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Octavian-ai/english2cypher/issues/4#issuecomment-405905921, or mute the thread https://github.com/notifications/unsubscribe-auth/AOUFIusayE2J5o32fcwt6V1Luqc3Z4WEks5uHyL9gaJpZM4VURhI .

WernerWildenboer commented 6 years ago

python -m gqa.generate --count 200 INFO:main:Generating 200 (G,Q,A) tuples into ./data/gqa-667457b4-07a4-47b2-b879-f42c0cfca37c.yaml Is there a way to use this to generate my own (G,Q,A) bases on my own data ( my apologies if this question is redundant , or impossible )

davidhughhenrymack commented 6 years ago

You can!

Switch out g = GraphGenerator(args).generate().graph_spec

For your own GraphSpec instance g from data you loaded.

It’s a simple (well defined) structure in types.py, it has a list of nodes, list of edges and list of lines (you could delete out references to lines). Each is basically just a dict

You could also remove all the graph stuff entirely, and just generate English and Cypher text, as that’s all you need to translate. The Graph is so the system can generate an Answer, but you don’t need those for the translation!

On July 19, 2018 at 9:20:08 AM, WernerWildenboer (notifications@github.com) wrote:

python -m gqa.generate --count 200 INFO:main:Generating 200 (G,Q,A) tuples into ./data/gqa-667457b4-07a4-47b2-b879-f42c0cfca37c.yaml Is there a way to use this to generate my own (G,Q,A) bases on my own data ( my apologies if this question is redundant , or impossible )

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Octavian-ai/english2cypher/issues/4#issuecomment-406195191, or mute the thread https://github.com/notifications/unsubscribe-auth/AOUFIoRQEFfFMUNLa18UnLOpTGzYV7jrks5uIEE3gaJpZM4VURhI .

WernerWildenboer commented 6 years ago

Hey David thanks for all the help I have it up and running :) Then my apologies for using this medium to communicate with you , could not find a email on your about page ^^ ( https://www.octavian.ai/about )

Last question : would it be possible for me to create my own type of questions to use apoc time ? for like " experienced between [Date] and [Date]? "

I am busy looking at "QuestionForm(..." is there some sort of tutorial on this haha ?

Trying to understand : "(lambda a,b: Equal(Count(ShortestPath(a, b)),2))" count and ShortestPath

Aaa , I see inside functions

davidhughhenrymack commented 6 years ago

Congrats on getting it running!

This medium works fine. I’ll think on how to display email without getting spam.

You could create some new functional building blocks. Check out Functional.py and how Station, Boolean, Size work. Or, hack in stuff however you want :)

On July 19, 2018 at 3:21:15 PM, WernerWildenboer (notifications@github.com) wrote:

Hey David thanks for all the help I have it up and running :) Then my apologies for using this medium to communicate with you , could not find a email on your about page ^^ ( https://www.octavian.ai/about )

Last question : would it be possible for me to create my own type of questions to use apoc time ? for like " experienced between [Date] and [Date]? "

I am busy looking at "QuestionForm(..." is there some sort of tutorial on this haha ?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Octavian-ai/english2cypher/issues/4#issuecomment-406293293, or mute the thread https://github.com/notifications/unsubscribe-auth/AOUFIkpMvQUc3QCIdkOTxU53yvjBm8mrks5uIJXbgaJpZM4VURhI .