javascript - 无论如何在Java Script中模拟“你的意思是”吗?
问题描述
所以我正在创建一个带有 API 的机器人,并且该列表非常区分大小写,并且只允许完全匹配。例如,我有“ENCHANTED_GLISTERING_MELON”这个词。它的全大写有下划线和复杂的拼写,如果不完全匹配,网站不接受。它不是那么用户友好。有什么办法可以让用户在输入内容时自动大写,用下划线替换空格,最重要的是检查拼写错误,然后考虑最接近的单词?我有一本网站接受的字典。
解决方案
禁止某些带有拼写错误的单词并非易事。
为避免重新发明轮子,我建议您使用RASA等开源引擎之一来启用神经语言处理与您的聊天。
但是,如果您在 JavaScript 中解析字符串时遇到问题,那么使用起来就不是那么容易了。
对于单词相似性,您可以检查 Levenshtein 距离算法:
https://www.npmjs.com/package/autocorrect
https://www.npmjs.com/package/string-similarity
对于一个简单的解决方案,您可以只替换您不允许的单词:
此外,如果它只是您聊天中坏词的过滤器,您可以使用一些现有的库,例如bad-words:
https://www.npmjs.com/package/bad-words
您可以针对您的特殊奇怪情况将所有内容大写:
'enchanted glistering melon'.trim().replace(/ /g,'_').toLocaleUpperCase()
推荐阅读
- python - 在 Django Admin 中更改标签的 CSS
- javascript - 在 iframe 中添加画布 (fabric.js) 时出现问题
- c# - C# Oracle Connection without Client // 缺少 dll
- r - 如何执行在 R 中存储为字符的数学运算?
- linux - Linux:如何使用相对于当前路径的路径递归列出所有文件,并且不包括当前路径
- javascript - 尝试将数据从客户端发送到服务器时 POST http://localhost:3000/data 400(错误请求)
- react-native - 如何将 redux-form 与 redux-persist 一起使用?
- python - 使用 python 从图像列表中裁剪多个部分
- quicktype - quicktype json schema to typescript just-type in custom function
- kiwi-tcms - 遇到未捕获的 ReferenceError:未定义 renderFromCache