필자는 미디어 센터의 기능을 자동화하도록 프로그래밍 한 SiriServerCore 설정이 있습니다. 이 미디어 센터에는 영화, TV 프로그램 및 음악이 있습니다. 본질적으로 음성 텍스트는 "Play The Final Episode by Alexandria"과 같이 나타납니다. 내 모든 음악 파일 위치가 포함 된 파이썬 목록에는 "알렉산드리아 - 2 - 마지막 에피소드 (채널을 변경합시다.) .mp3"이라는 파일이 있습니다. 목록의 항목에 텍스트 말하기가 "가장 일치"하면 어떨까요? 어떤 도움을 주셔서 감사합니다!Python - Best Matching Search
답변
음성 입력이 문자열로 변환된다고 가정하면 노래 목록을 반복하고 노래 제목의 처음 두 개 또는 세 단어를보고 각 제목을 입력 문자열과 비교하고 노래 제목은 같은 것 권리 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
을하지만이보다는 완벽한 솔루션 직감에 가깝습니다. 나는 노래 제목의 첫 단어가 일반적으로 가장 중요하다고 생각한다. 동시에 음성 입력에 불필요한 요소가 포함될 수 있기 때문에 노래 제목과 일치하는 노래 제목을 음성 입력으로 시작하는 것이 좋습니다. 음성 입력의 처음 세 단어는 "노래를 재생하십시오"와 같을 수 있습니다 제목의 ". 노래 제목의 첫 단어는 대개 유익합니다.
this question에 따르면 library for fuzzy string comparisons을 사용할 수 있습니다. 두 문자열 간의 유사성을 검사합니다. 당신은 그것을 사용하여 가장 잘 맞는 것을 찾을 수 있습니다.
나는이 lib가 좋은 결과를 낼지 의심 스럽다. '알렉산드리아를 묻는 마지막 에피소드 '와'알렉산드리아 - 2 - 마지막 에피소드'는 거대한 레벤 시틴 거리를 가지고 있지만 실제로는 완벽하게 일치합니다. – J0HN
- 1. Python Regex Zipcode Matching
- 2. python grep reverse matching
- 3. Python : Best Dictionary implementation
- 4. python : Regex matching file extension
- 5. Python Regex search + Offset
- 6. Weighted Search and Sort Python
- 7. python - regex search and findall
- 8. Regex matching @ "*"
- 9. NSPredicate matching
- 10. data.frame matching
- 11. Sphinx Search Engine은 공식적으로 Python API를 지원합니까?
- 12. Java matching loops
- 13. python regex matching, findall 또는 search가 값을 반환하지 않음
- 14. Jquery Regex Matching
- 15. scanf optional matching
- 16. jquery matching classes
- 17. Android ContentProvider Uri Matching
- 18. 필터 'filter'- strict matching
- 19. Emacs matching tags highlighting
- 20. Oracle SQL Regexp_replace matching
- 21. `apply-templates` matching 이해하기
- 22. perl matching regex
- 23. 정규식 gawk matching
- 24. Duplicate UltiSnips Matching 방지
- 25. Lucene과 Nickname matching
- 26. ElasticSearch matching paths
- 27. Pythonic way invert matching
- 28. OpenCV Template Matching
- 29. Ocaml Pattern Matching
- 30. json not matching model
파이썬보다 일반 알고리즘 질문에 가깝습니다. 머리 꼭대기에, 당신은 당신의 콜렉션에있는 캡션/제목에있는 모든 단어의 인덱스를 작성하는 것이 좋습니다. 일종의 전체 텍스트 검색 엔진 (인터넷에서 그것들 톤)을 사용하는 것보다. – J0HN