[英]How can I translate text containing HTML using IBM Bluemix language translation service?
例如,我有內容:
<p><strong>Je vais être</strong> va demain.</p>
如果我將此內容作為純文本傳遞給https://gateway.watsonplatform.net/language-translation/api/v2/translate ,例如:
Je vais être va demain.
然后我會准確地回復我想要的東西:
I'll be going tomorrow.
但是,我仍然需要HTML中的內容,而不是純文本。 如果我使用url編碼傳遞文本或使用實體轉義,則返回的文本會受到嚴重影響。
使用URL編碼:
<p><strong>Je will être</strong> will demain. </p>
隨着html實體轉義:
<p><strong>I'll be</strong> will tomorrow.</p>
我還注意到在內容中放置任何類型的分隔符都會影響翻譯。 例如,使用克拉:
Je vais être^ va demain.
將返回翻譯:
I'll be ^ will tomorrow.
因此,解決方案必須在請求的翻譯中沒有分隔符。
看一下語言翻譯API( https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/language-translation/api/v2/#translate ),我看到你可以列出多個文本請求中的輸入。 我只是按順序剝離HTML標記,並在較小的文本塊上請求轉換。 您可以使用簡單的堆棧執行此操作 - 將HTML標記推送到堆棧或將要翻譯的文本。 然后,一旦您收到翻譯響應,就將其全部從堆棧中彈出。
您可以將HTML發送到AlchemyLanguage文本提取並提取稍后發送到LanguageTranslation的文本。
在curl
你會做:
curl -X POST \
-d "apikey=$API_KEY" \
-d "outputMode=json" \
--data-urlencode html@tech_crunch.html \
-d "url=http://techcrunch.com/2016/01/29/ibm-watson-weather-company-sale/" \
"https://gateway-a.watsonplatform.net/calls/html/HTMLGetRawText"
輸出是:
{
"status": "OK",
"usage": "By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html",
"url": "http://techcrunch.com/2016/01/29/ibm-watson-weather-company-sale/",
"text": "IBM Closes Weather Co. Purchase, Names David Kenny New Head Of Watson Platform | TechCrunch"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.