BreakSentences Method
Breaks a piece of text into sentences and returns an array containing the lengths in each sentence.
| C# |
|---|
int[] Microsoft.Translator.BreakSentences(appId, text, language);
|
| Parameter | Description |
|---|---|
|
appId |
Required. If the Authorization header is used, leave the appid field empty else specify a string containing "Bearer" + " " + access token. |
|
text |
Required. A string representing the text to split into sentences. The size of the text must not exceed 10000 characters. |
|
language |
Required. A string representing the language code of input text. |
The following table describes required and optional request headers.
| Request Header | Description |
|---|---|
|
Authorization |
Required. Specify the the value of access_token in format "Bearer" + " " + Access Token Value |
An array of integers representing the lengths of the sentences. The length of the array is the number of sentences, and the values are the length of each sentence.
Note
|
|---|
|
Bing App ID is deprecated and is no longer supported. Please obtain an access token to use the Microsoft Translator API. For details, go here. |
Example
C#PHP
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.Web;
using System.ServiceModel.Channels;
using System.ServiceModel;
namespace MicrosoftTranslatorSdk.SoapSamples
{
class Program
{
static void Main(string[] args)
{
AdmAccessToken admToken;
string headerValue;
//Get Client Id and Client Secret from https://datamarket.azure.com/developer/applications/
//Refer obtaining AccessToken (http://msdn.microsoft.com/en-us/library/hh454950.aspx)
AdmAuthentication admAuth = new AdmAuthentication("clientId", "client secret");
try
{
admToken = admAuth.GetAccessToken();
DateTime tokenReceived = DateTime.Now;
// Create a header with the access_token property of the returned token
headerValue = "Bearer " + admToken.access_token;
BreakSentencesMethod(headerValue);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
}
private static void BreakSentencesMethod(string authToken)
{
// Add TranslatorService as a service reference, Address:http://api.microsofttranslator.com/V2/Soap.svc
TranslatorService.LanguageServiceClient client = new TranslatorService.LanguageServiceClient();
//Set Authorization header before sending the request
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Method = "POST";
httpRequestProperty.Headers.Add("Authorization", authToken);
// Creates a block within which an OperationContext object is in scope.
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
try
{
string text = "Use the Microsoft Translator webpage widget to deliver your site in the visitor’s language. The visitor never leaves your site, and the widget seamlessly translates each page as they navigate.";
string from = "en";
//Keep appId parameter blank as we are sending access token in authorization header.
int[] sentenceLengths = client.BreakSentences("", text, from);
Console.WriteLine(text);
Console.WriteLine("BreakSentences broke up the above sentence into " + sentenceLengths.Length + " sentences.");
for (int i = 0; i < sentenceLengths.Length; i++)
{
if (i == 0)
{
Console.WriteLine(string.Format("Sentence {0} : {1}", i + 1, text.Substring(0, sentenceLengths[i] - 1)));
}
else
{
Console.WriteLine(string.Format("Sentence {0} : {1}", i + 1, text.Substring(sentenceLengths[i - 1], sentenceLengths[i] - 1)));
}
}
}
catch (Exception ex)
{
Console.WriteLine("Something unexpected has occurred. Try again later. Detailed Error:{0}", ex.Message);
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
}
}
}
Goto Top
<?php
class AccessTokenAuthentication {
/*
* Get the access token.
*
* @param string $grantType Grant type.
* @param string $scopeUrl Application Scope URL.
* @param string $clientID Application client ID.
* @param string $clientSecret Application client ID.
* @param string $authUrl Oauth Url.
*
* @return string.
*/
function getTokens($grantType, $scopeUrl, $clientID, $clientSecret, $authUrl){
try {
//Initialize the Curl Session.
$ch = curl_init();
//Create the request Array.
$paramArr = array (
'grant_type' => $grantType,
'scope' => $scopeUrl,
'client_id' => $clientID,
'client_secret' => $clientSecret
);
//Create an Http Query.//
$paramArr = http_build_query($paramArr);
//Set the Curl URL.
curl_setopt($ch, CURLOPT_URL, $authUrl);
//Set HTTP POST Request.
curl_setopt($ch, CURLOPT_POST, TRUE);
//Set data to POST in HTTP "POST" Operation.
curl_setopt($ch, CURLOPT_POSTFIELDS, $paramArr);
//CURLOPT_RETURNTRANSFER- TRUE to return the transfer as a string of the return value of curl_exec().
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
//CURLOPT_SSL_VERIFYPEER- Set FALSE to stop cURL from verifying the peer's certificate.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//Execute the cURL session.
$strResponse = curl_exec($ch);
//Get the Error Code returned by Curl.
$curlErrno = curl_errno($ch);
if($curlErrno){
$curlError = curl_error($ch);
throw new Exception($curlError);
}
//Close the Curl Session.
curl_close($ch);
//Decode the returned JSON string.
$objResponse = json_decode($strResponse);
if ($objResponse->error){
throw new Exception($objResponse->error_description);
}
return $objResponse->access_token;
} catch (Exception $e) {
echo "Exception-".$e->getMessage();
}
}
}
/*
* Class:AccessTokenAuthentication
*
* Create SOAP Object.
*/
class SOAPMicrosoftTranslator {
/*
* Soap Object.
*
* @var ObjectArray.
*/
public $objSoap;
/*
* Create the SAOP object.
*
* @param string $accessToken Access Token string.
* @param string $wsdlUrl WSDL string.
*
* @return string.
*/
public function __construct($accessToken, $wsdlUrl){
try {
//Authorization header string.
$authHeader = "Authorization: Bearer ". $accessToken;
$contextArr = array(
'http' => array(
'header' => $authHeader
)
);
//Create a streams context.
$objContext = stream_context_create($contextArr);
$optionsArr = array (
'soap_version' => 'SOAP_1_2',
'encoding' => 'UTF-8',
'exceptions' => true,
'trace' => true,
'cache_wsdl' => 'WSDL_CACHE_NONE',
'stream_context' => $objContext,
'user_agent' => 'PHP-SOAP/'.PHP_VERSION."\r\n".$authHeader
);
//Call Soap Client.
$this->objSoap = new SoapClient($wsdlUrl, $optionsArr);
} catch(Exception $e){
echo "<h2>Exception Error!</h2>";
echo $e->getMessage();
}
}
}
try {
//Soap WSDL Url
$wsdlUrl = "http://api.microsofttranslator.com/V2/Soap.svc";
//Client ID of the application.
$clientID = "clientid";
//Client Secret key of the application.
$clientSecret = "clientsecret";
//OAuth Url.
$authUrl = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13/";
//Application Scope Url
$scopeUrl = "http://api.microsofttranslator.com";
//Application grant type
$grantType = "client_credentials";
//Create the Authentication object
$authObj = new AccessTokenAuthentication();
//Get the Access token
$accessToken = $authObj->getTokens($grantType, $scopeUrl, $clientID, $clientSecret, $authUrl);
//Create soap translator Object
$soapTranslator = new SOAPMicrosoftTranslator($accessToken, $wsdlUrl);
//Set the params.//
$inputStr = "Please break up this string into sentences.I would like this string to be broken into its respective sentences.Is this possible?";
$language = 'en';
//Request argument list.
$requestArg = array (
'text' => $inputStr,
'language' => $language
);
$responseObj = $soapTranslator->objSoap->BreakSentences($requestArg);
$response = $responseObj->BreakSentencesResult;
$startLen = 0;
$i=1;
echo "<b>Input String </b> - $inputStr"."<br/>";
foreach ($response->int as $strLen) {
$endLen = $strLen;
echo "<b> Sentence $i </b> - ".substr($inputStr,$startLen, $endLen)."<br/>";
$startLen += $endLen;
$i++;
}
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "<br/>";
}
Note