前端js如何根据文字识别语种?

您所在的位置:网站首页 瑞典语言是什么语种的简称呢 前端js如何根据文字识别语种?

前端js如何根据文字识别语种?

2024-07-15 21:00| 来源: 网络整理| 查看: 265

背景

最近在写一个翻译插件,遇到这样一个问题:遇到多国语言的情况会翻译失败。原来第三方翻译api不能批量自动识别文本的语种,(比如百度翻译api,即使设置成auto模式,遇到混合语种的文本就不行了)。有没有办法对翻译的文本语种进行分类呢?经过搜索和实践,有了以下几种办法。

方法一:franc库 (推荐)

关于javascript实现语言识别的文章,在百度和谷歌上很少,在gitHub上搜索“language detection”,找到这个star数3.5k的franc。测试一番后,最能满足我项目需要。

franc自称支持的语种比任何库都多,它分为三个版本:franc-min, franc, franc-all,分别支持82, 187, 406种语言,你可以根据需要引用。 详情说明请阅读官方gitHub地址

// 安装 npm install franc //或 yarn add franc // 引入 var franc = require('franc') // 调用 franc('This build supports the following languages') // => 'eng' // 配置参数{} minLength: 最短字符,默认10,如设置不合理可能返回'und' only: 指定语种范围, 如:['eng','kor'] ignore: 排除的语种, 如:['jpn'] // 参数使用示例 franc('Very good', {minLength: 3}) // => 'eng'

优点:纯javascript本地实现、语种丰富、免费。缺点:打包体积(franc-min实际测试105kb)、识别样本过短可能识别有误(建议文本大于10个字符)。

方法二:第三方api

第三方我没使用过,帮大家搜了一下国内几个大厂的语种识别api:

1.阿里:

特点:单次限长5000字符,QPS=50;每月100万字符免费,超过后70元/百万字符地址:https://help.aliyun.com/document_detail/164512.html

2.华为:

特点:单次限长2000字符; 支持15国语言地址:https://support.huaweicloud.com/api-nlp/nlp_03_0055.html

3.腾讯:

特点:单次限长2000字符,QPS=5; 支持15国语言地址:https://cloud.tencent.com/document/product/551/15620

4.百度:

特点:QPS=3; 暂时免费;支持7国语言地址:http://api.fanyi.baidu.com/product/141

方法三:正则

用几行简单的正则表达式来识别国家语种,是最美好的愿望,通常想到的是用字符集的范围来判断。比如平时用来判断汉字的正则为:/^[\u4E00-\u9FA5A]+$/,可惜这种方法经常不准确。特别是东亚国家的文字,字符集有交叉部分。又比如Hello和Bonjour,一个是英语,一个是法语,用正则区分是比较困难的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3