문제

여기에 문제가 있습니다. 몇 단어에서 몇 단어에서 몇 문장에 이르기까지 수천 개의 작은 텍스트 스 니펫이 있습니다. 가장 큰 스 니펫은 디스크의 약 2k입니다. 각각과 비교하고 사용자 관련 정보를 표시 할 수 있도록 관련성 요소를 계산할 수 있기를 원합니다.

이것을하는 좋은 방법은 무엇입니까? 이 작업을 수행하는 것으로 알려진 알고리즘이 있습니까?

모든 것을 미리 계산할 수 있으므로 실시간으로 실행할 필요가 없습니다. 런타임보다 좋은 결과를 얻는 것이 더 우려됩니다.

방금 가서 내 자신의 것을 쓰기 전에 스택 오버플로 커뮤니티에 물어볼 것이라고 생각했습니다. 이전에 좋은 해결책을 찾은 사람들이 있어야합니다.

도움이 되었습니까?

해결책

이 기사 의미 적 관련성 그리고 시맨틱 유사성 도움이 될 수 있습니다. 그리고 이것은 그렇게 질문합니다 잠재적 의미 분석.

당신은 또한 조사 할 수 있습니다 Soundex 음성으로 "소리 같은"단어의 경우.

다른 팁

나는 그것을 사용한 적이 없지만 당신은 조사하고 싶을 것입니다 Levenshtein 거리

Jeff는 POD 캐스트에서 이와 같은 것에 대해 이야기하여 오른쪽에 나열된 관련 질문을 찾았습니다. (팟 캐스트 32에서)

하나의 큰 팁은 모든 것을 제거하는 것이 었습니다 일반적인 단어, "" ""및 ""this "등을 비교할 수있는 더 의미있는 단어가 남게됩니다.

그리고 여기에 비슷한 질문이 있습니다 두 문구의 의미 론적 유사성을 알려주는 알고리즘이 있습니까?

이것은 합리적인 큰 텍스트를 위해서는 매우 가능하지만 작은 텍스트에는 더 어렵습니다.

한 번 이렇게했는데 꽤 잘 작동했습니다.

  • 모든 "일반"단어를 필터링합니다 (A, A, A, The, In 등 ...) (단어의 약 10-30%를 필터링)
  • 나머지 단어의 빈도를 계산하고 가장 빈번한 단어의 상단 X를 저장하십시오. 이들은 주제입니다.
  • 추가 단계로 2/3/4 후속 단어 그룹을 만들어 다른 텍스트의 그룹과 비교할 수 있습니다. 나는 그것을 Plagerism의 척도로 사용했습니다.

Manning 및 Raghavan 코스 메모를 참조하십시오 민첩 그리고 유사한 항목을 검색하고 a C#(?) 버전. 나는이 기술이 Ullman과 Motwani의 연구에서 나온 것이라고 생각합니다.

이것 관련이있을 수 있습니다.

편집 : 여기에 관련이 있습니다 그래서 질문

음성 알고리즘

기사, Soundex 너머 - MS SQL Server에서 퍼지 검색 기능, 설치 및 사용 방법을 보여줍니다 심해 SQL 서버로의 라이브러리. 이 라이브러리를 사용하면 문자열간에 상대적인 유사성을 찾을 수 있으며 수많은 알고리즘이 포함되어 있습니다.

나는 주로 사용하게되었습니다 Jaro Winkler 이름에 맞습니다. 다음은 SO에서 일치하는 이름에 대해 물었던 자세한 내용입니다. 사람 이름을 기준으로 일치하는 레코드

그 기반의 몇 가지 알고리즘 Levenshtein 거리 SIMMetric 라이브러리에서도 제공되며 응용 프로그램에 유용 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top