You are here

Nodejs 文本语种识别

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2025-01-06 06:27

我们帮助客户搭建了一个信息采集系统,采集器用的nodejs,服务器端用的是我们熟悉的Drupal。我们采集的信息由于是各种语种都有的,我们系统有将其统一成英文的需求,所以我们就调用了百度的翻译API,统一翻译成为英文。

 

用了一段时间发现,百度翻译的接口有点小贵,考虑到大部分的文章都是英文,只需要把不是英文的翻译成英文即可。此时我们需要识别这些文本的语种,做一个判断。

 

我查了一下,NodeJS下面,文本的语种识别,主要有3个库可用tinyld、languagedetect、franc,下面是地址,还有最近更新时间,下载量的对比。

https://www.npmjs.com/package/tinyld    2 years ago   2.2

 

 

https://www.npmjs.com/package/languagedetect   5 years ago  3.4

 

 

https://www.npmjs.com/package/franc    a year ago  3.5

 

 

https://www.npmjs.com/package/franc-min  a year ago  4.1

 

通过对比可以看到franc的下载量一周合计7.8万,一周下载量最高,更新也比较及时,所以我们选择 franc。这里使用它的迷你版本。

 

安装比较简单:

npm install franc-min

 

示例调用代码:

franc('Alle menslike wesens word vry')

 

实际代码:

import {franc, francAll} from 'franc-min';

 

  async getTranslated(content) {

       //使用franc检查语言 

       let textLang = franc(content);

      

       //如果已经是英文的话,直接返回

       if(textLang == "eng"){

              return content;

       }

   这样,就省去了好多文本的翻译,节省了不少资金。


论坛: