Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,153,211 members, 7,818,720 topics. Date: Sunday, 05 May 2024 at 10:49 PM

Where Can I Get A Free Software That Does This? - Programming (2) - Nairaland

Nairaland Forum / Science/Technology / Programming / Where Can I Get A Free Software That Does This? (3620 Views)

Free Software, Web And Mobile Development On Google Classroom And Zoom. / I Need Someone Who Can Teach Me How To Build Web Applications That Does This / I Need Someone To Get Me Sociosparta free Software (2) (3) (4)

(1) (2) (Reply) (Go Down)

Re: Where Can I Get A Free Software That Does This? by LordeCalifornia: 11:36pm On Oct 22, 2017
Click here to download an app that can solve Word problems in O'Level Physics Linear Motion.
Questions like:
1. a car starts from rest and accelerates uniformly at 7m/s², find its velocity in 10seconds.

2. A train has an initial velocity of 8m/s and a final velocity of 10m/s. Find its acceleration if it covers a distance of 90mm

And many other O'level Motion questions.
Re: Where Can I Get A Free Software That Does This? by QueryUnical: 1:24am On Oct 23, 2017
asalimpo:

Sorry, sir this problem is'nt trivial at all.
I wont be suprised if the minimal code size runs into some very high figures.

What you have done is create a dsl version. But you're version isnt generic enough.
What i'm talking about is a program that could take the english language, take some rules,
then when presented with a query in the language,it will use the rules it was given to infer and deduce new information and answer problems.

Benefits: It would be more intuitive to people,especially people who fancy using the keyboard or text rather than graphic icons.

e.g
imagine a shop owner in the u.s, who wants to know how his business is doing in nigeria.
He logs into the software interface from his hotel room the enters the query - in english "How is sales today".
Just that.
Next, he queries "What about yesterday".
"Ok, give me a summary of sales for the past 2 months"

if you use a strict grammer, all parts of the grammer must be encoded.
e.g if "summary" isnt in the set,the program crashes.
But using a notional system,the app is to infer that summary means or belongs to certain classes of MEANING
i.e synonyms, then using that solve the problem.
i.e it doesnt use a strict grammer set, but rules.
summary is synonymous with : reduction, - (minus), no fluff, bare essentials, etc
for is synonymous with purpose,because,etc.
give - present, pass over, hand to, transfer

Mind you wolfram alpha - which is an answers engine- doesnt even compute
simple problems like this:
"A man is 20 years older than his son. if his son is 18 y.o how old is the man?"
The easiest part of the program is encoding all words in a standard english dictionary (assuming 35 000 words)
into their notional classes. i.e attaching an exhaustive notion set to every word.
That can take a single person over a year to just do that!


It's harder than it seems.



I maintain dt ds problem. is simple.I coughed out ds particular solution in seconds.I never had prior knowledge of it.

It is not every thing I havr in mind dt i posted here.I can.alwas come up.with a more robust and generic version. I will try to find time to sit down to come up with a better version if i can find time.
Re: Where Can I Get A Free Software That Does This? by QueryUnical: 9:13am On Oct 23, 2017
LordeCalifornia:

True Sir. It's far from being simple.
Anyways, I promised to come up with something before the end of the month. Its an app(android) that can read and provide solutions to word problems. But due of the complexity of the project, I limited the recognition ability of the app to just "linear mechanics" in O'Level physics. Maybe in future updates, other aspects of physics and mathematics may be incorporated.
In essence, this app would solve "any" secondary school linear motion problem with relative ease. I made it flexible enough to ignore minor typographical errors and give the correct results nonetheless. It's just a rough work, plus I'm still a beginner, so don't expect the best of programming skills.
Attached are the screenshots. I would share a download link as soon as I upload the app online.

Modified: here is the link

Click here to download

That I said it is simple does not mean , I said it will could be done in a day.

The heart of the application is its parser, you have to sit done and write a parser first. Parsers operate base on rules. They parse according to the rules qiven to them. But someone must sit down and write the rules first, bfore writing the codes. You can base your rules on synonyms and antonyms or any other rule, but you must sit down, study the problem first and come out with relevant rules.The purpose of the parser is to recognise words based on the given rules and discard irrelavant words while also organising the garnered words according to rules of processing of the application. If you can sit down and write a good parser, you job is 70% done.

In you case, since you are writing per school subject, you can write parsers per school subject.
Re: Where Can I Get A Free Software That Does This? by QueryUnical: 9:28am On Oct 23, 2017
asalimpo:

It's a question. I rephrased a question differently to show you anoda way a user may pose it to the system.
Ideally, such a program should be able to handle a bit of rephrasing without getting lost. But if that's too complex then a very strict phrasing may be the requirement but a robust program would be more intuitive and
useful.
Precedents,determinants? I don't understand what you're saying (or the terms). I'll re-read your posts again.

Ok. let me explain what I mean by precedence and determinants.

Each problem can belong to one or more problem class which are determined by one or more clues (words). The clues will be ranked according to their affinity or closeness to the problem class it is classified under. This means that a clue, can belong to more than one problem class. When several clues that can possibly belong to several problem class are encountered, the the application would enforce the the rule of precedence meaning clue that is most relevant, or has, the greatest affinity will decide (or determine) the class the problem in question is classified into. This allow the user to reword however he deems fit , the rule of precedence,hierarchy, relevance or affinity of clues will be used in sorting things out in order to arrive at the final decision or choice of problem class.
Re: Where Can I Get A Free Software That Does This? by QueryUnical: 10:27am On Oct 23, 2017
asalimpo:

Sorry, sir this problem is'nt trivial at all.
I wont be suprised if the minimal code size runs into some very high figures.

What you have done is create a dsl version. But you're version isnt generic enough.
What i'm talking about is a program that could take the english language, take some rules,
then when presented with a query in the language,it will use the rules it was given to infer and deduce new information and answer problems.

Benefits: It would be more intuitive to people,especially people who fancy using the keyboard or text rather than graphic icons.

e.g
imagine a shop owner in the u.s, who wants to know how his business is doing in nigeria.
He logs into the software interface from his hotel room the enters the query - in english "How is sales today".
Just that.
Next, he queries "What about yesterday".
"Ok, give me a summary of sales for the past 2 months"

if you use a strict grammer, all parts of the grammer must be encoded.
e.g if "summary" isnt in the set,the program crashes.
But using a notional system,the app is to infer that summary means or belongs to certain classes of MEANING
i.e synonyms, then using that solve the problem.
i.e it doesnt use a strict grammer set, but rules.
summary is synonymous with : reduction, - (minus), no fluff, bare essentials, etc
for is synonymous with purpose,because,etc.
give - present, pass over, hand to, transfer

Mind you wolfram alpha - which is an answers engine- doesnt even compute
simple problems like this:
"A man is 20 years older than his son. if his son is 18 y.o how old is the man?"
The easiest part of the program is encoding all words in a standard english dictionary (assuming 35 000 words)
into their notional classes. i.e attaching an exhaustive notion set to every word.
That can take a single person over a year to just do that!


It's harder than it seems.



My last post was the result of a skim over your post. I have carefully read through and this is my well thought out response.


1. You are right, but the you are wrong too: You are right in that it will take a reasonable length of time to come up with a ready made application that can solve the problem you explained above. But it is quite possible to come up with one that will solve the problem incrementally, that is focus on a subset first, update you database for that and update or code for that.

2. The solution above was not meant to be generic . It was designed specifically for solving secondary school level mathematics word problem as found in NGM. It was meant as a guide to show a possible solution pattern. Viewers were meant to use its as a spring board.In short, it meant to get the thinking along the proposed solution line so that the problem become simple, and quite easily solvable, but please, simple and easily solvable in this context does not mean solved in a short time, it means the solution can be easily designed. How long it take s to come up with the design is something else, and how quickly the design is coded, is also a completely different issue else.

In short,my proposed solution was meant to make the problem graspable, and to bring it into the domain on being easily solvable( as explained above).

3.I believe the use of synonyms will make the application much more better, but if you are gong to achieve what you set out above you must your application must also understand grammar. Wat is the use of synonyms and antonyms if the meaning of the root word that the synonym relates to is not know.
The meaning of each word must be known and each meaning must be such that t can be summarized into single words that programs can relate with. A computer program can not understand meaning if it exist in sentence form.But is all meanings are condensable into single words like nouns, pronouns, adjectives, adverbs etc , that it will be possible to come out with a set of rules for processing words that belong to certain grammer groups. Synonyms and antonyms the become tools for carrying out quick codensation of words into group.

Notice that, nouns,and pronoun are equivalent: they pinpoint entities.
Adjectives are related to nouns and pronouns; they identify entities which other wise would have belonged to more general group. There is a difference a boy and a sick boy.

Adverbs are related to adjectives, they give degree to adjectives so that a there is a difference between a sick boy and a very sick boy.

This means that rule can be developed that identify nouns,pinpoint their purpose and also pinpoint the degree of that purpose.

Notice that verbs can be easily translated into mathematical or program equivalent. Summarise, like you mention above can be related to decrementation. Run,travel, swing cab be linked to linear, rotational and possible shear transformation.. And so on and so forth.

Adverbs are related to verbs, they tell us the degree of the action of a verb. Summarise will be quite different from quickly summarise.

Prepositions an be very will linked to mapping.

All these are mathematical concepts.

[These write up is not complete yet.Need to get back to work. May update later]

Any application of such that does not also understand grammar will hardly achieve what you described above.But, then I may be wrong. The best bet it to marry both ideas. Language is about grammar and meaning and not meaning only.
Re: Where Can I Get A Free Software That Does This? by appcypher: 7:45pm On Oct 23, 2017
LordeCalifornia:

True Sir. It's far from being simple.
Anyways, I promised to come up with something before the end of the month. Its an app(android) that can read and provide solutions to word problems. But due of the complexity of the project, I limited the recognition ability of the app to just "linear mechanics" in O'Level physics. Maybe in future updates, other aspects of physics and mathematics may be incorporated.
In essence, this app would solve "any" secondary school linear motion problem with relative ease. I made it flexible enough to ignore minor typographical errors and give the correct results nonetheless. It's just a rough work, plus I'm still a beginner, so don't expect the best of programming skills.
Attached are the screenshots. I would share a download link as soon as I upload the app online.

Modified: here is the link

Click here to download
Nice!
Can u give a simple breakdown how you did this.
Re: Where Can I Get A Free Software That Does This? by appcypher: 7:49pm On Oct 23, 2017
asalimpo:

It's a question. I rephrased a question differently to show you anoda way a user may pose it to the system.
Ideally, such a program should be able to handle a bit of rephrasing without getting lost. But if that's too complex then a very strict phrasing may be the requirement but a robust program would be more intuitive and
useful.
Precedents,determinants? I dont understand what you're saying (or the terms). I'll re-read your posts again.
I just started following this thread. Interesting stuff going on here. While I don't have a lot of knowledge in the domain, I can however tell you that English grammar is very ambiguous, in fact almost every natural language is.

You claim you don't want a simple subset of English, but there is nothing u can do about that, your parser or NLP won't be able to handle more tough context-oriented grammars like idioms. Definitely not with ur laptop cores. Even Google's NLP is only getting around solving some of those crazy context-specific stuffs.

It's likely that math word problems won't be using a lot of unparsable grammar anyway. In fact, maths problem are very well self-contained. They don't really refer to external relational contexts apart from units of measurement (I'm not sure about this tho). But what if it does contain unclear context?

If you stick to an English subset common to most math problems, then you could write a parser. but I still suspect ambiguities will be ur major issue.
Re: Where Can I Get A Free Software That Does This? by asalimpo(m): 7:51pm On Oct 23, 2017
QueryUnical:



My last post was the result of a skim over your post. I have carefully read through and this is my well thought out response.


1. You are right, but the you are wrong too: You are right in that it will take a reasonable length of time to come up with a ready made application that can solve the problem you explained above. But it is quite possible to come up with one that will solve the problem incrementally, that is focus on a subset first, update you database for that and update or code for that.

2. The solution above was not meant to be generic . It was designed specifically for solving secondary school level mathematics word problem as found in NGM. It was meant as a guide to show a possible solution pattern. Viewers were meant to use its as a spring board.In short, it meant to get the thinking along the proposed solution line so that the problem become simple, and quite easily solvable, but please, simple and easily solvable in this context does not mean solved in a short time, it means the solution can be easily designed. How long it take s to come up with the design is something else, and how quickly the design is coded, is also a completely different issue else.

In short,my proposed solution was meant to make the problem graspable, and to bring it into the domain on being easily solvable( as explained above).

3.I believe the use of synonyms will make the application much more better, but if you are gong to achieve what you set out above you must your application must also understand grammar. Wat is the use of synonyms and antonyms if the meaning of the root word that the synonym relates to is not know.
The meaning of each word must be known and each meaning must be such that t can be summarized into single words that programs can relate with. A computer program can not understand meaning if it exist in sentence form.But is all meanings are condensable into single words like nouns, pronouns, adjectives, adverbs etc , that it will be possible to come out with a set of rules for processing words that belong to certain grammer groups. Synonyms and antonyms the become tools for carrying out quick codensation of words into group.

Notice that, nouns,and pronoun are equivalent: they pinpoint entities.
Adjectives are related to nouns and pronouns; they identify entities which other wise would have belonged to more general group. There is a difference a boy and a sick boy.

Adverbs are related to adjectives, they give degree to adjectives so that a there is a difference between a sick boy and a very sick boy.

This means that rule can be developed that identify nouns,pinpoint their purpose and also pinpoint the degree of that purpose.

Notice that verbs can be easily translated into mathematical or program equivalent. Summarise, like you mention above can be related to decrementation. Run,travel, swing cab be linked to linear, rotational and possible shear transformation.. And so on and so forth.

Adverbs are related to verbs, they tell us the degree of the action of a verb. Summarise will be quite different from quickly summarise.

Prepositions an be very will linked to mapping.

All these are mathematical concepts.

[These write up is not complete yet.Need to get back to work. May update later]

Any application of such that does not also understand grammar will hardly achieve what you described above.But, then I may be wrong. The best bet it to marry both ideas. Language is about grammar and meaning and not meaning only.
So the critical issue is how can MEANING be created from meaningless symbols. It's a very hard task.
We humans take our ability to deduce and infer meaning from verbal and visual symbols for granted.
A computer has to be instructed.
The understanding of grammer is something i didnt mention explicitly but it's implied in the RULES i talked about. It's imperative that the application understand's grammer,infact it can't work without it.
But extracting the meaning is the issue. My use of synonyms is just a guide to deducing meaning.
The domain specific version you talked abot for algebra is easier,though it will still b taxing to write,
the version i have in mind is a generic version. That can work almost will versions of correct english.
That way it could be used as an included library in applications. It's essentially a query and computation engine with an english syntax.

The synonyms are just to guide the algorithm in its quest to infer the correct meaning.
It should/could stop and request more guidance from the user when it is stuck,then
include the information the user passes it into it's database,not needing to ask the same question again next time.
e.g if asked
"How are you today?"
this query will be broken down into 4 components: How,are,you,today.
How will be connoted with a set of synonyms of what it implies
e.g How = {Method,Enquiry}
are = {state,quantity,countable-quantity,uncountable-quantity,plural}
you = {person}
today={time,present,state}

So using this connotations of words,it begins trying to compute the response.
They'll be lot of graph searching, dfs,bfs things.
also since the connotations are themselves words,they'll also be connoted,
it can search and search.
e.g
it coud start with how. fetch its connotations/synonym set.
for each element,it creates a tree, then eliminates nodes that dont apply.
e.g
if it assumes the question is a Method? i.e how to do something,e.g like "how do i make eba"
it will compute a response showing a method- a way of doing things.
if it assumes it is an enquiry-it may search further,and find that the enquiry is a greeting.
then compute an aswer.

They are about 35 000 words in the typical dictionary.
using a simple vocabulary of say 20 000 words, if each word has a connotation/synonym set of say 10 words
on average.
computing the results for a paragraph of say 5 sentences with each sentence having 10 words will very time consuming.
e.g for 8 word sentence the search will probe every combination so that would be (10^cool*5 = 500M searches.
what of 10 or more sentence paragraphs?
and then it will build a tree in memory and begin eliminating dead links.
Re: Where Can I Get A Free Software That Does This? by asalimpo(m): 7:59pm On Oct 23, 2017
appcypher:

I just started following this thread. Interesting stuff going on here. While I don't have a lot of knowledge in the domain, I can however tell you that English grammar is very ambiguous, in fact almost every natural language is.

You claim you don't want a simple subset of English, but there is nothing u can do about that, your parser or NLP won't be able to handle more tough context-oriented grammars like idioms. Definitely not with ur laptop cores. Even Google's NLP is only getting around solving some of those crazy context-specific stuffs.

It's likely that math word problems won't be using a lot of unparsable grammar anyway. In fact, maths problem are very well self-contained. They don't really refer to external relational contexts apart from units of measurement (I'm not sure about this tho). But what if it does contain unclear context?

If you stick to an English subset common to most math problems, then you could write a parser. but I still suspect ambiguities will be ur major issue.
Yeah, i get you. Handling idioms will be hard.
a domain specific parser is too restricted. A more generic parser is insanely complex.
A generic parser though,wher the core is generic enough not to be tied to a particular domain, but instead
used as a query language/computation engine is what i'm thinking of.
The benefit is that users, will take to it like a fish to water.
The approach is have is brute-force though.
As for the idioms, they program can be a little restrictive if it works,then research into a full generic one takes place.
I'm just looking at inferring meaning from connotations and acting on that.
Re: Where Can I Get A Free Software That Does This? by LordeCalifornia: 4:00am On Oct 24, 2017
appcypher:

Nice!
Can u give a simple breakdown how you did this.
thanks!

Alright!
The truth is, developing a generic app like the OP wants(that can solve anything and even interact comfortably with the user) , is not going to be as easy as they are saying it here. Infact, it would need a team of developers, each handling different topics. And the development may span months. That was why I limited my app to just one branch of physics (the branch I love most smiley )
Back to the topic, I listed out all the equations of motion for the computer. And then I utilised the 'if and else' statements to recognise "key words/phrases" that would be present in virtually any motion question and then use the most suitable equation to solve the question.

Example, if (display.getText().toString().contains("find its acceleration" ) or contains "find the acceleration " or contains "what is the acceleration " or contains " calculate it's acceleration " or contains "find acceleration etc then use the acceleration formula.

Else, print "unable to solve "

If display contains "find velocity" "what is its velocity " etc, use velocity formula.


I pretty much did that for all the variables.

In summary, the backbones of the app are the "if and else" statements, the "key words" and lastly, the "physics formulas"

(1) (2) (Reply)

Repairs All Corrupt PST Files In A New File / Uh? Learning Programming With Phone?! / Data Analysis And Machine Learning Using R

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 84
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.