Yur*_*tov 3 javascript node.js google-cloud-functions
我使用从GitHub到我的项目的函数。
该功能在新用户注册时发送欢迎电子邮件,在删除用户帐户时发送再见电子邮件。该功能正在加载到Firebase Cloud Function。
我正在尝试补充代码,以便由用户名称来确定他需要使用哪种语言来发送消息。
例:
如果使用希伯来语输入了用户名,则该功能会将希伯来语消息发送给用户。
如果使用俄语输入用户名,则该功能会向用户发送俄语信息。
如果使用英语输入了用户名,则该功能会向用户发送一条英语消息。
注意:
这不与浏览器连接,因为用户将从android应用程序注册。在Firebase上进行用户身份验证后,他将从Firebase Cloud Function收到消息。
在node.js中,以下代码不起作用!
if (/^[a-zA-Z]+$/.test(text)) //if the English language
{
...
}
else //if the not English language
{
...
}
Run Code Online (Sandbox Code Playgroud)
我将很高兴为您提供任何帮助!
也许还有另一种解决方案来对消息进行本地化?
谢谢!!!
您可以使用languagedetect node.js库来检测字符串的语言。
但是,由于您的要求是根据用户的语言发送消息,因此最好为他提供选择其首选语言或使用javascript来检测浏览器语言版本的选项。 navigator.language
Facebook 的 FastText 是解决这个问题的最佳解决方案,它不需要一些大型的、缓慢的机器学习模型。
@smodin/fast-text-language-detection是如何在 NodeJS 应用程序中使用它的https://www.npmjs.com/package/@smodin/fast-text-language-detection(免责声明:出于必要,我是创建者)
语境:
我运行一个大型多语言网站,我发现franc和LanguageDetect(当前最流行的 NodeJS 库)不够准确,尽管实施了一个月。
根据进一步的研究和这篇博客(https://towardsdatascience.com/benchmarking-language-detection-for-nlp-8250ea8b67c),我确定 facebook 的 FastText 是最好的解决方案,因为:
与使用短 unicode 块来预测语言的典型方法相比,它具有更高的准确性,而这些方法通常在文本很少且专有名词丰富的任务上失败
它没有 unicode 预测中大量的奇怪警告
缺点是它有 150MB,所以在前端这不是一个合理的解决方案。它在较长的文本上效果最好,但在较短的文本上表现明显优于franc和LanguageDetect
编辑:准确性测试。我刚刚添加了测试 55 万个句子的结果,这些句子来自 99 种语言,长度为 30-250 个字符。对于大多数主要语言,即使字符长度减少到 10-40 个字符,准确率也约为 99%。在这里查看更多内容。我还在这里添加了参考franc精度。languagedetect
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |