Python-最佳匹配搜索

Python-最佳匹配搜索,python,search,match,Python,Search,Match,我有一个SiriServerCore设置,我正在编程,基本上自动化了media center的功能。这个媒体中心有电影、电视节目和音乐。从本质上讲,语音到文本的转换将收到类似于“通过询问亚历山大港播放最后一集”的内容。在一个包含我所有音乐文件位置的python列表中,有一个名为“询问Alexandria-2-最后一集(让我们换个频道).mp3”的文件。我该如何让文字演讲与列表中的项目“最佳匹配”?感谢您的帮助 基于,您可能希望使用此选项。它检查两个字符串之间的相似性;您可以使用它来找到最佳匹配项

我有一个SiriServerCore设置,我正在编程,基本上自动化了media center的功能。这个媒体中心有电影、电视节目和音乐。从本质上讲,语音到文本的转换将收到类似于“通过询问亚历山大港播放最后一集”的内容。在一个包含我所有音乐文件位置的python列表中,有一个名为“询问Alexandria-2-最后一集(让我们换个频道).mp3”的文件。我该如何让文字演讲与列表中的项目“最佳匹配”?感谢您的帮助

基于,您可能希望使用此选项。它检查两个字符串之间的相似性;您可以使用它来找到最佳匹配项。

假设您的语音输入将转换为字符串,您只需在歌曲列表上迭代,查看歌曲标题的前两个或三个单词,将每个标题与输入字符串进行比较,如果歌曲标题中的一些或大部分单词出现在代表您声音的字符串中,您可以决定是否播放正确的歌曲。这类似于:

>>> a = "Play The Final Episode by Asking Alexandria" # voice input
>>> songList = ["Asking Alexandria - 2 - The Final Episode (Let's Change Channel).mp3",      "Angie", "Yesterday.mp3"]
>>> for songTitle in SongsList:
        songTitleWords = songTitle.split(" ")
        if " ".join(songTitleWords[:2]) in voiceInput: 
            # play the song

但这更像是一种预感,而不是一个完美的解决方案。我认为歌曲标题的第一句话通常是最重要的。同时,最好从歌曲标题开始,将歌曲标题与语音输入匹配,而不是相反,因为语音输入可能包含不必要的元素,语音输入的前三个单词可能类似于“请为我播放标题歌曲”。歌曲标题的第一个词通常是信息性的。

这更多的是一个通用算法问题,而不是python问题。最重要的是,你可能想为你收藏的标题/标题中的所有单词建立一个索引,而不是使用某种全文搜索引擎(互联网上有很多)。我怀疑这个库会产生好的结果
通过询问Alexandria来播放最后一集
和询问Alexandria-2-最后一集有着巨大的Levenshtein距离,但事实上,这是一对完美的组合。