Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Google Translate - szybkość działania, tłumaczenie pojedyńczych słów
pojas
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


Witam. Staram się napisać skrypt, który będzie tłumaczyć pojedyncze słówka z danego zdania. Robiąc to w pętli będę zamulać swój i serwer Google. Trwa to zbyt długo. Kombinowałem wszystkie słówka złączyć w jeden tekst, łapie wtedy nawet kontekst, ale mam problemy z ich podzieleniem. Zwyczajne przedzielenie słówek przecinkiem się nie sprawdza. Inne znaki też różnie działają. Np. "house, named, Bleble,"->"domu, nazwanego Bleble,", a "house | named | Bleble | kick | " -> "dom | nazwie | Bleble | kick |". Możecie mnie jakoś nakierować na rozwiązanie?

  1. //http://code.google.com/intl/pl/apis/language/translate/v1/using_rest_translate.html#json_snippets_php
  2.  
  3. $start = microtime(1);
  4. $words = array(
  5. 'hello', 'world', 'i', 'need', 'to', 'figure', 'out', 'how', 'to',
  6. 'translate', 'faster', 'using', 'google', 'translate');
  7.  
  8. $ch = curl_init();
  9. for($i = 0, $k = 0; $k < 14; $i++, $k++)
  10. {
  11. if($i == count($words)) $i = 0;
  12. $url = "https://ajax.googleapis.com/ajax/services/language/translate".
  13. "?v=1.0&q=$words[$i]&langpair=en%7Cpl";
  14.  
  15. curl_setopt($ch, CURLOPT_URL, $url);
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  17. $body = curl_exec($ch);
  18. $json = json_decode($body);
  19.  
  20. echo($words[$i].' - '.$json->responseData->translatedText)."<br>\n";
  21. }
  22. curl_close($ch);
  23. echo('czas: '.($x = (microtime(1) - $start)). ', na słowo '.($x/$k));


Powyżej pewnej liczby strasznie zamula. Do kilkunastu słówek na każde zabiera np. ~ 0.05s. Czasem nawet 10 dłużej na każdym słowie + w niektórych nie tłumaczy. Ograniczenie Google?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pojas
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


Cytat
Kto tłumaczy słówka?
Ten kto chce się uczyć pojedynczych słówek.

Cytat
Podaj mu całe zdanie, jeśli chcesz pojedyńcze słowa to wypisz je po enterach to ładnie ci zwróci.
Nie bardzo sobie z tym radzę. Wydaje mi się, że translator w okienku na stronie działa trochę inaczej na stroni i przez API. Możliwe też, że źle konstruuje zapytanie.

  1. //http://code.google.com/intl/pl/apis/language/translate/v1/using_rest_translate.html#json_snippets_php
  2.  
  3. $ch = curl_init();
  4.  
  5. $words = "house\nnamed\nBleble\nkick\nhealthcare\n";
  6. $url = "https://ajax.googleapis.com/ajax/services/language/translate".
  7. "?v=1.0&q=".rawurlencode($words)."&langpair=en%7Cpl";
  8.  
  9. curl_setopt($ch, CURLOPT_URL, $url);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  11. $body = curl_exec($ch);
  12. $json = json_decode($body);
  13. var_dump($words);
  14. var_dump($json->responseData->translatedText);
  15. curl_close($ch);
  16. /* taki mam efekt, którego nie da się ogarnąć
  17. string(35) "house
  18. named
  19. Bleble
  20. kick
  21. healthcare
  22. "
  23. string(42) "dom opieki zdrowotnej o nazwie Bleble kick"
  24. */
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 16:43