![다른 단어 근처에 있는 단어를 찾는 방법은 무엇입니까?](https://rvso.com/image/1419577/%EB%8B%A4%EB%A5%B8%20%EB%8B%A8%EC%96%B4%20%EA%B7%BC%EC%B2%98%EC%97%90%20%EC%9E%88%EB%8A%94%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EC%B0%BE%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20.png)
사용자가 발음에서 서로 가까이 있는 단어와 Letter라는 단어를 각각 찾을 수 있는 사전을 만들겠습니다.
예를 들어 사용자가 검색한 경우가까운내 사이트는 그 근처에 있는 다른 단어를 반환합니다.근처, 배, 친애하는, 뒤쪽, 여기
어떻게 하나요?
이 웹사이트처럼:운율대
답변1
나는 이것이 참을 수 있을 정도로 복잡하다고 생각한다. 이는 자연어 프로그래밍(다른 NLP, Neuro Linguistic Pap이 아님)의 한 분야입니다. "here"와 "hear"를 일치시킬 수 있어야 합니다. 따라서 요소를 분해하고 이를 음성학적 동등성(두 가지 모두에 대해 h-"ere" 및 h-"ere")으로 매핑해야 합니다. 그리고 일부 철자에는 다양한 음성학(기침, 쟁기, 통과)이 있거나 더 나쁜 동음이의어(the there, they're, their group)가 있으며 지역적으로 다를 수 있습니다(영국에서는 차고의 길거나 짧은 'a', 예를 들어 그래프와 유리). 음성학적 동등성을 만들 때 항상 단수인 것은 아닙니다.
음성학적 동등성을 확보한 후에는 다양한 경험적 방법을 사용하여 이들 간의 차이를 최소화할 수 있습니다. 시의 경우 어미의 무게를 과도하게 강조해야 할 수도 있습니다. 운율은 대부분 단어 어미에 달려 있습니다. 시에 대한 두운 실행도 원할 수 있습니다. 아마도 좋은 두운을 위해서는 다른 가중치가 필요할 것입니다.
나는 NLP에 대한 무료 온라인 대학 과정 중 하나에 참여하고 싶습니다. 현재 여러 가지가 있습니다. 언어 구문 분석을 위한 현대 기술의 훨씬 더 나은 기반. :)
답변2
동일한 길이의 문자열 간에 문자열 비교를 사용하고 일치하지 않는 문자를 하나(또는 두 개) 허용할 수 있습니다.
하지만 귀하의 웹 사이트를 살펴보면 단어를 발음 표기로 매핑한 다음 검색하여 문자열을 문자 배열처럼 처리하고 뒤에서 비교를 시작하는 것이 좋습니다.
귀하의 예를 토대로 작성하려면: Near -> \'nir\ pear -> \'per\ dear -> \'dir\ Rear -> \'rir\ 또는 \'rer\ here -> \'hir\
(나는 음성 표기법을 위해 Merriam-Webster 온라인을 복사하고 있습니다.)
유감스럽게도 매핑은 조회 테이블로 수행되어야 하며 영어에는 매우 강력한 발음 규칙이 없기 때문에 컴파일할 수 없습니다...
어쨌든 단어를 매핑한 후에는 마지막 음소를 비교할 수 있습니다. 이 경우 "ir\"(이 경우 "pear" 제외)로 끝나는 단어를 찾을 수 있습니다.
이 방법은 그다지 효율적으로 보이지 않습니다. 디스크 공간을 사용할 수 있다면 나중에 참조할 수 있도록 검색 내용을 저장합니다. 따라서 두 번째 사용에서 "near"에 운율이 맞는 모든 단어를 찾을 때 응용 프로그램은 저장된 단어를 로드합니다. 검색 - 사전은 일반적으로 너무 빨리 발전하지 않기 때문입니다.