저는 Windows 플랫폼에서 Python 3으로 코딩하고 있습니다.Python 3을 사용하여 목록에서 정확한 단어 순서를 찾는 방법은 무엇입니까?
사용자가 입력 한 문장을 전달하는 함수를 만들고 있는데이 함수는 내 함수가 .split()
이고 원래 문장에 있던 각 단어의 목록으로 만듭니다.
내 함수는 또한 내 함수가 사용자의 문장에 나타나는 정확한 단어 순서에 대해 일치하는 것으로 보일 사전 정의 된 단어 패턴 목록을 전달합니다.
이제 분명하므로 정확히 .intersection()
을 사용하여 정확한 단어가 일치하는 곳을 찾을 수 있습니다. 정확한 단어 순서을 찾고 있습니다. 예를 들어
"I love hairy cats"
및 키 단어의 미리 정의 된 목록이 같은 것입니다 : 그들은 미리 정의 된 등장이 두 단어의 지정된 순서를 일치로
["I love", "hairy cats", "I love cats", "love hair"]
내 기능은
"I love"
및
"hairy cats"
표시해야 기울기. 이 완벽하게 지금까지 내 키워드 목록은 하나의 단어가 포함 된 경우에만 작동
def parse_text(message, keywords):
newList = []
Message = message.split()
Keywords = keywords # Keywords need to be a list type
setMessage = set(word for word in Message)
setKeywords = set(word for word in Keywords)
newList = setMessage.intersection(setKeywords)
return newList
:
여기에 지금까지 내 코드입니다. 내 문제는 시퀀스를 나타 내기 위해 여러 단어로 목록을 만들려고 할 때입니다.내 사용자의 원래 메시지 인 경우 :
message = "Hello world, yes and no"
keywords = ["help", "Hello", "yes", "so"] # this works, intersec "Hello" and "yes"
keywords = ["help me", "Hello mom", "yes and no", "so"] # this does not work, just returns empty "set()"
나는 그들이 내 키워드 목록을 나타나는 단어의 특정 순서 내 사용자의 원래 문장을 확인하기 위해 내 기능 조정을 할 수있는 방법에 어떤 아이디어가?
이 할당위한 것이 아닙니다을, 내가 만들려고 노력하고 작은 프로그램입니다. 기본적으로 사용자의 문장은 실제로 웹 사이트에 대한 API 호출의 JSON()에 있습니다.그러나 나는 관련없는 세부 사항으로 나의 질문을 뒤집어 쓰고 싶지 않았다. – vaylain
목록을 문자열로 나타내고 문자열 내의 문자열을 확인하는 것이 훨씬 쉬워 보입니다. – CaffeineAddiction
@JulienBernu "사랑스러운 털이"와 일치했기 때문에 "사랑스러운 머리카락"도 반환 할 수 있기 때문에 당신은 할 수 없습니다. 그러나 OP는 모든 단어를 일치시키고 싶어합니다. – arekolek