NodeJSに「Didyoumean」機能を実装するにはどうすればよいですか?インターネットを検索して、Webサーバーを使用するチュートリアルを見つけましたが、これをDiscordボットに使用するため、Webサーバーなどを使用するチュートリアルは実際には使用できません。
例えば:
User enters command: restrat
Actual command: restart
Bot Message: Command not found, did you mean "restart"?
これはNodeJSを使用して可能ですか?もしそうなら、私はこれをどのように実装できるか知っていますか?
どんな助けでも大歓迎です!ありがとう。
NodeJSでもブラウザでも、ユーザーが入力したテキストに最も近いコマンドを見つけるには、いくつかのコードが必要です。
このコードは、レーベンシュタイン距離の計算を使用して、最も近い一致を返します。
const jsLevenshtein = require("js-levenshtein");
function closestCommand (userText, commands) {
let minDistance = Infinity;
return commands.reduce((closest, cmd) => {
const cmdDistance = jsLevenshtein(userText, cmd);
if (cmdDistance < minDistance) {
minDistance = cmdDistance;
return cmd;
}
return closest;
}, '');
}
const myCommands = ['quit', 'login', 'logout', 'restart', 'refresh'];
const userCommand = 'restrat';
console.log(`closest command is '${closestCommand(userCommand, myCommands)}'`);
// closest command is 'restart'
これをNodeJSアプリに追加するのは簡単なはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加