2010-03-28 16 views
9

Podczas wyszukiwania w Google "od 100F do C", jak wie, aby przekonwertować z Fahrenheita na stopnie Celsjusza? Podobnie konwersja z różnych walut i proste obliczenia.W jaki sposób jest wdrażany kalkulator Google?

Jaka jest używana struktura danych, czy też jest to prosty wzorzec pasujący do ciągów?

+1

Czy próbowałeś rzeczy na wolfram alfa? Posiada bazę danych dla wielu rzeczy i możesz zadać prawie każde pytanie (które zwraca dokładną liczbę lub podobne). Pokazuje również, jak analizuje twoje pytanie. http://www.wolframalpha.com/input/?i=night+fall+in+Piran –

+0

Uzgodnione z ralu - WolframAlpha używa ilości przetwarzania języka naturalnego, który jest o wiele bardziej interesujący i obejmuje szerszy zakres przypadków (spróbuj na przykład pytając o populację Findland). – new123456

Odpowiedz

1

To nie dokładnie proste dopasowanie wzór. Ocena wyrażeń matematycznych, które można wprowadzić, nie jest banalna. Na przykład: here's algorytm oceniający wyrażenie matematyczne. To tylko ewaluacja, prawdopodobnie jest dużo kodu do wykrycia, nawet jeśli jest on ważny.

Do konwersji walut i innych jednostek, to proste porównywanie wzorców.

0

to prosty wzór dopasowywania

spróbować
100 kmh w mph = brak obliczeń
100 kph w mph = 62,1371192 mph

+0

"100 km/h w mph" działa jednak: km/h to poprawny skrót – gbn

+2

Jestem prawie w 100% pewien, że dla wyrażeń matematycznych (np. 100 * (6 +3)) używają parsera, ponieważ nie są one regularny. –

+1

@DrJokepu: uzgodniono, ale jest trudniejszy problem z rozpoznaniem, że jest to odpowiednie wyrażenie do wysłania do kalkulatora przed traktowaniem go jako ciąg wyszukiwania. Zgaduję, że istnieje stos regexps i heurystyki dla tego określenia. – msw

Powiązane problemy