簡體   English   中英

如何使用IBM Bluemix語言翻譯服務翻譯包含HTML的文本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM