From 6ed5d0cb5f7fb726486dabbb4282f0cc1be24333 Mon Sep 17 00:00:00 2001 From: "Gao, Ruiyuan" <905370712@qq.com> Date: Tue, 15 Oct 2024 06:42:11 +0800 Subject: [PATCH] bug: sort results from keyword search (#232) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * bug: sort results from keyword search * Auto-format code πŸ§ΉπŸŒŸπŸ€– --------- Co-authored-by: Formatter [BOT] --- xiaomusic/utils.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/xiaomusic/utils.py b/xiaomusic/utils.py index f1ac79a..aff1ecf 100644 --- a/xiaomusic/utils.py +++ b/xiaomusic/utils.py @@ -116,12 +116,19 @@ def keyword_detection(user_input, str_list, n): else: remains.append(item) + matched = sorted( + matched, + key=lambda s: difflib.SequenceMatcher(None, s, user_input).ratio(), + reverse=True, # ι™εΊζŽ’εΊοΌŒθΆŠη›ΈδΌΌηš„θΆŠι ε‰ + ) + # ε¦‚ζžœ n 是 -1οΌŒε¦‚ζžœ n ε€§δΊŽεŒΉι…ηš„ζ•°ι‡οΌŒθΏ”ε›žζ‰€ζœ‰εŒΉι…ηš„η»“ζžœ if n == -1 or n > len(matched): return matched, remains - # ιšζœΊι€‰ζ‹© n δΈͺεŒΉι…ηš„η»“ζžœ - return random.sample(matched, n), remains + # 选择前 n δΈͺεŒΉι…ηš„η»“ζžœ + remains = matched[n:] + remains + return matched[:n], remains def real_search(prompt, candidates, cutoff, n):