2010-03-28 27 views
9

Cuando busca en Google "100F a C", ¿cómo sabe convertir de Fahrenheit a Celsius? Del mismo modo, la conversión de diferentes monedas y el cálculo simple.¿Cómo se implementa Google Calculator?

¿Cuál es la estructura de datos utilizada, o es un patrón simple que coincide con las cadenas?

+1

¿Has probado cosas en wolfram alpha? Tiene una base de datos para muchas cosas y puede hacer casi cualquier pregunta (que devuelva el número exacto o similar). También muestra cómo analiza tu pregunta. http://www.wolframalpha.com/input/?i=night+fall+in+Piran –

+0

De acuerdo con ralu - WolframAlpha utiliza una cantidad de procesamiento del lenguaje natural, que es mucho más interesante y cubre una variedad más amplia de casos (prueba preguntándole a la población de Findland, por ejemplo). – new123456

Respuesta

1

no es exactamente casación simple patrón. Evaluar las expresiones matemáticas que puede ingresar no es trivial. Por ejemplo, here's, un algoritmo que evalúa una expresión matemática. Esa es solo la evaluación, probablemente haya un montón de código para detectar si es válido.

Para la conversión de monedas y otras unidades, se trata de una simple coincidencia de patrones.

0

es patrón simple juego

tratar
100 kmh en mph = ningún cálculo
100 kilómetros por hora en mph = 62,1371192 mph

+0

"100 km/h en mph" funciona bien: km/h es la abreviatura correcta – gbn

+2

Estoy casi 100% seguro de que para las expresiones matemáticas (por ejemplo, 100 * (6 +3)) utilizan un analizador ya que no son regular. –

+1

@DrJokepu: de acuerdo, pero existe el problema más difícil de reconocer que es una expresión adecuada para enviar a la calculadora antes de tratarla como una cadena de búsqueda. Supongo que hay una pila de expresiones regulares y heurística para esa determinación. – msw