当用户需要跨语言交流或翻译内容时,应用需要能够自动检测文本的语言,然后进行翻译。HMSCore机器学习服务的语言检测服务提供在线语言检测和离线语言检测。既支持单语言文本检测,也支持混合语言文本检测,涵盖南非荷兰语、阿拉伯语等数百种语言。通过接入语言检测服务,APP可以轻松实现翻译语言检测、网页语言检测、混合语言场景下的语言检测等,帮助APP提升用户体验。语言检测过程输入文本,机器学习服务语言自动检测文本的语言,然后返回对应的语言代码和对应的置信度,或者返回置信度最高的语言代码给开发者的应用程序。最后,将翻译后的文本呈现在开发应用页面上。效果演示1.开发准备开发前需要配置HMSCoreSDK仓库的Maven仓库地址{maven{url'https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/'}}集成在线语言检测服务SDK,示例代码如下dependencies{implementation'com.huawei.hms:ml-computer-language-detection:3.4.0.301'}2.编辑项目集成2.1设置应用的认证信息即可通过api_key或AccessTokenAuthentication信息设置。通过setAccessToken方法设置AccessToken,在应用启动时初始化一次,无需多次设置。MLApplication.getInstance().setAccessToken("你的访问令牌");通过setApiKey方法设置api_key,应用启动时初始化一次,无需多次设置。MLApplication.getInstance().setApiKey("yourApiKey");2.2创建语言检测器//方法一:使用默认参数配置创建语言检测器。MLRemoteLangDetectormlRemoteLangDetector=MLLangDetectorFactory.getInstance().getRemoteLangDetector();//方法二:创建自定义参数配置的语言检测器。MLRemoteLangDetectorSettingsetting=newMLRemoteLangDetectorSetting.Factory()//设置语言检测的最小置信度阈值。.setTrustedThreshold(0.01f).create();MLRemoteLangDetectormlRemoteLangDetector=MLLangDetectorFactory.getInstance().getRemoteLangDetector(设置);2.3语言检测异步方法示例代码//方法一:返回多种语言检测结果,包括语言代码和置信度,sourceText表示待检测的文本,长度必须小于5000个字符。任务<列表>probabilityDetectTask=mlRemoteLangDetector.probabilityDetect(sourceText);probabilityDetectTask.addOnSuccessListener(newOnSuccessListener>(){@OverridepublicvoidonSuccess(List成功的结果逻辑){//.}}).addOnFailureListener(newOnFailureListener(){@OverridepublicvoidonFailure(Exceptione){//失败处理逻辑。//识别失败。尝试{MLExceptionmlException=(MLException)e;//获取错误码,开发者可以对错误码进行处理,根据错误码提供差异化??的页面提示。interrorCode=mlException.getErrCode();//获取错误信息,开发者可以结合错误码快速定位问题。StringerrorMessage=mlException.getMessage();}catch(Exceptionerror){//转换错误处理。}}});//方法二:返回置信度最高的语言代码,sourceText表示待检测的文本,长度必须小于5000个字符。TaskfirstBestDetectTask=mlRemoteLangDetector.firstBestDetect(sourceText);firstBestDetectTask.addOnSuccessListener(newOnSuccessListener(){@OverridepublicvoidonSuccess(Strings){//成功处理逻辑。}}).addOnFailureListener(newOnFailureListener(){@OverridepublicvoidonFailure(Exceptione){//失败处理逻辑//识别失败try{MLExceptionmlException=(MLException)e;//获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化页面提示。interrorCode=mlException.getErrCode();//获取错误信息,开发者可以结合错误码快速定位问题。StringerrorMessage=mlException.getMessage();}catch(Exceptionerror){//转换错误处理。}}});同步方法示例代码//方法一:返回多语言检测结果,包括语言代码和置信度。sourceText表示待检测的文本,长度必须小于5000个字符。try{Listresult=mlRemoteLangDetector.syncProbabilityDetect(sourceText);}catch(MLExceptionmlException){//失败处理逻辑。//获取错误码,开发者可以对错误码进行处理,根据错误码提供差异化??的页面提示。interrorCode=mlException.getErrCode();//获取错误信息,开发者可以结合错误码快速定位问题。StringerrorMessage=mlException.getMessage();}//方法二:返回置信度最高的语言代码,sourceText为待检测的文本,长度必须小于5000个字符。try{Stringlanguage=mlRemoteLangDetector.syncFirstBestDetect(sourceText);}catch(MLExceptionmlException){//失败处理逻辑。//获取错误码,开发者可以对错误码进行处理,根据错误码提供差异化??的页面提示。interrorCode=mlException.getErrCode();//获取错误信息,开发者可以结合错误码快速定位问题。StringerrorMessage=mlException.getMessage();}2.4检测完成后释放资源。if(mlRemoteLangDetector!=null){mlRemoteLangDetector.stop();}语言检测功能包括设备端和云端两个功能,以上示例仅为云端功能。更多详情>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~