There are even x
Nigma.ru added to your piggy Bank a new feature for users. Now right across the search bar, you can solve various math problems, for example, x2-3x+2=0, sin2 x + cos2 x, 2 h * 30 m/min = x, of the system of equations of type 2x-y=4, 3y+x=9, x2+y=1, x*y=0, etc. (detailed list here). The service is designed for students of class 6-10.
For more information you can learn by reading dokumentaciju news on our website.
To create this feature we asked real students — were asked to enter a search string in a mathematical expression the most convenient way. Of course, few of them know the syntax of programming languages — nobody could write something that looks like normal syntax. Therefore, the most important task for us was the recognition of a free syntax — because this is the task of any search engine is to give the user the ability to answer his question without studying the documentation for the system.
How does our algorithm?
First, we recognize mathematical queries among all the queries. In this task we are faced with many problems. Because queries can be very different, therefore its solution requires a number of sophisticated heuristics. It also requires the parsing of expressions in a natural language, as user input can be not only in formulas, but in natural language, that is, in non-formalized form. With a set misticheskih rules (a list of which was compiled based on the analysis enter a search string of real students) we transform textual queries into the formal description of the problem with strict syntactician. Because of the ambiguity of the conversion from lax syntax simply have to consider several variants of the task record, and then need to weed out the least likely options analysis, as their number can grow exponentially relative to the complexity of the entered expression, and, consequently, the solution of this problem will take too much time, and the user will be too hard to seek a solution among the hundreds of choices. The decision task is conducted in symbolic form when possible, allowing you to use the system for obtaining strict solution of the problem, which is useful in school tasks in different proofs and is much more important for training purposes, than the numerical solution. The numerical solution is also proposed as one of the options, or as the primary option if the task involves a response in this form, such as converting units or currencies.
During the work we faced the problem that for many queries, it is extremely difficult to determine their matematicheski, especially when it requests that contain a variety of equipment model (in which very often contains numbers and mathematical signs) and the various phrases in which a lot of mathematical terms. Unfortunately, in the General case the problem of separation of such queries are algorithmically difficult, especially when you consider the fact that among mathematical requests can be requests with errors. However, quite a lengthy analysis of user requests and input of students allowed to reduce the first kind error in determining matematicheski request, the level of type II errors remained close to zero (in this case, the error first kind is less important).
To solve the problem of parsing expression system was developed, consisting of a finite state machine analyzer and a set of regular expressions for normalizing user input, which allow to generate a set of formalized interpretations of user input, as well as a set of methods for assessing the proximity of the user input to mean the formal entry. This takes into account the very different factors — even the spaces between characters is important — not only as a separator between lexical tokens, but also as a separator between blocks, if the gaps is not exposed anywhere in the formula.
The system is in a state of alpha testing, i.e. we are aware of several limitations and bugs of the system on a fix which we operate. I am pleased to hear your comments and opinions regarding this system. I also want to note that this system is just one of our projects to increase the number of intelligence Nygma.ru and we will gladly take our team of programmers that want to develop new intelligent search technology.
Article based on information from habrahabr.ru
For more information you can learn by reading dokumentaciju news on our website.
To create this feature we asked real students — were asked to enter a search string in a mathematical expression the most convenient way. Of course, few of them know the syntax of programming languages — nobody could write something that looks like normal syntax. Therefore, the most important task for us was the recognition of a free syntax — because this is the task of any search engine is to give the user the ability to answer his question without studying the documentation for the system.
How does our algorithm?
First, we recognize mathematical queries among all the queries. In this task we are faced with many problems. Because queries can be very different, therefore its solution requires a number of sophisticated heuristics. It also requires the parsing of expressions in a natural language, as user input can be not only in formulas, but in natural language, that is, in non-formalized form. With a set misticheskih rules (a list of which was compiled based on the analysis enter a search string of real students) we transform textual queries into the formal description of the problem with strict syntactician. Because of the ambiguity of the conversion from lax syntax simply have to consider several variants of the task record, and then need to weed out the least likely options analysis, as their number can grow exponentially relative to the complexity of the entered expression, and, consequently, the solution of this problem will take too much time, and the user will be too hard to seek a solution among the hundreds of choices. The decision task is conducted in symbolic form when possible, allowing you to use the system for obtaining strict solution of the problem, which is useful in school tasks in different proofs and is much more important for training purposes, than the numerical solution. The numerical solution is also proposed as one of the options, or as the primary option if the task involves a response in this form, such as converting units or currencies.
During the work we faced the problem that for many queries, it is extremely difficult to determine their matematicheski, especially when it requests that contain a variety of equipment model (in which very often contains numbers and mathematical signs) and the various phrases in which a lot of mathematical terms. Unfortunately, in the General case the problem of separation of such queries are algorithmically difficult, especially when you consider the fact that among mathematical requests can be requests with errors. However, quite a lengthy analysis of user requests and input of students allowed to reduce the first kind error in determining matematicheski request, the level of type II errors remained close to zero (in this case, the error first kind is less important).
To solve the problem of parsing expression system was developed, consisting of a finite state machine analyzer and a set of regular expressions for normalizing user input, which allow to generate a set of formalized interpretations of user input, as well as a set of methods for assessing the proximity of the user input to mean the formal entry. This takes into account the very different factors — even the spaces between characters is important — not only as a separator between lexical tokens, but also as a separator between blocks, if the gaps is not exposed anywhere in the formula.
The system is in a state of alpha testing, i.e. we are aware of several limitations and bugs of the system on a fix which we operate. I am pleased to hear your comments and opinions regarding this system. I also want to note that this system is just one of our projects to increase the number of intelligence Nygma.ru and we will gladly take our team of programmers that want to develop new intelligent search technology.