我有一个SiriServerCore安装程序,可以让我的媒体中心的功能基本上自动化。这个媒体中心有电影,电视节目和音乐。基本上,语音文本将收到类似“通过询问亚历山大播放最后一集”。在包含我所有音乐文件位置的Python列表中,有一个名为“请求亚历山大 - 2 - 最终插曲(Let's Change Channel).mp3”的文件。我如何才能让文本语音与列表中的项目“最佳匹配”?任何帮助表示赞赏!Python - 最佳匹配搜索
3
A
回答
2
假设您的语音输入将被改造成可以简单地遍历歌曲列表,看歌名的前两个或三个单词,每个标题比较输入字符串的字符串,如果部分或大部分词歌曲标题出现在代表你的声音串,你可以做一个关于正确song.This的决定会是这样的:
>>> 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
但是,这更多的是一种直觉的而不是一个完美的解决方案。我认为歌曲标题的第一个单词通常是最重要的。同时,最好从歌曲标题和歌曲标题开始到语音输入,而不是反过来,因为语音输入可能包含不必要的元素,语音输入的前三个单词可能类似于“请播放一首歌曲的标题“。歌名的第一个词通常是信息性的。
1
根据this question,您可能想要使用此library for fuzzy string comparisons。它检查两个字符串之间的相似性;你可以使用它来找到最佳匹配。
+0
我怀疑这个lib会产生好的结果。 “通过询问亚历山大和亚历山大 - 最后一集来播放最后一集”具有巨大的列文斯坦距离,但是,实际上这是一场完美的比赛。 – J0HN
相关问题
- 1. MySQL搜索算法最佳匹配
- 2. Lucene.Net 3.0.3搜索与词干或搜索最佳匹配
- 3. 如何配置Solr搜索以获得最佳匹配?
- 4. 在Java中实现最佳匹配搜索
- 5. 加快搜索最佳二进制匹配数
- 6. PHP模糊搜索2列并返回最佳匹配
- 7. 全文搜索,过滤结果为最佳匹配
- 8. C#如何搜索最佳匹配重载方法
- 9. 如何搜索字符串EF4.1的最佳匹配?
- 10. Solr搜索与排名和最佳匹配
- 11. python中的最佳匹配算法
- 12. 全文搜索的最近匹配
- 13. 搜索多列返回最匹配
- 14. 匹配利益(最近邻)搜索
- 15. Python - 列表搜索重复不匹配?
- 16. LINQ搜索/匹配
- 17. Python在搜索中最后一次匹配后插入文本
- 18. 搜索最佳点搜索算法
- 19. Mongodb找到最佳匹配
- 20. MatchIt:最佳匹配失败
- 21. R:最佳匹配比较
- 22. 二进制搜索与最后一次匹配的最接近的匹配
- 23. 最佳搜索到文件
- 24. 最佳搜索HashSet的
- 25. 最佳搜索查询
- 26. 查询搜索URL匹配
- 27. matlab搜索匹配元素
- 28. MySQL的搜索匹配时
- 29. 搜索和匹配算法
- 30. 声音匹配/搜索
这是更多的一般算法问题,而不是python。除了使用某种全文搜索引擎(在互联网上的大量文本搜索引擎)之外,您可能想要在头文件中创建字幕/标题中所有单词的索引。 – J0HN