문제

입력:문구 1, 문구 2

산출:의미적 유사성 값(0과 1 사이) 또는 이 두 문구가 동일한 내용을 말하고 있을 확률

도움이 되었습니까?

해결책


이 문서를 확인해 보세요.

의미망 및 코퍼스 통계를 기반으로 한 문장 유사성(PDF)

설명된 알고리즘을 구현했습니다.우리의 상황은 매우 일반적이었고(효과적으로 두 개의 영어 문장) 취한 접근 방식이 너무 느리고 결과가 유망하지만 충분하지 않다는 것을 발견했습니다(또는 상당한 추가 노력 없이는 그렇게 될 가능성이 있음).

많은 맥락을 제공하지 않으므로 반드시 권장할 수는 없지만 이 문서를 읽는 것은 문제를 해결하는 방법을 이해하는 데 도움이 될 수 있습니다.

문안 인사,

매트.

다른 팁

이에 대한 짧고 긴 답변이 있습니다.

짧은 대답:

사용 WordNet::유사성 Perl 패키지.Perl이 선택한 언어가 아닌 경우 다음을 확인하십시오. WordNet 프로젝트 페이지 프린스턴에서 검색하거나 Google에서 래퍼 라이브러리를 검색하세요.

긴 대답:

단어 유사성을 결정하는 것은 복잡한 문제이며 이 분야에 대한 연구는 여전히 매우 뜨겁습니다.유사성을 계산하려면 다음의 적절한 표현이 필요합니다. 의미 한마디로.그런데 '의자'의 의미를 어떻게 표현할까요?사실 뭐 ~이다 '의자'의 정확한 뜻은?이것에 대해 오랫동안 열심히 생각하면 마음이 뒤틀리고 약간 미쳐버릴 것이며 마침내 진실을 찾기 위해 철학이나 컴퓨터 언어학 분야의 연구 경력을 쌓게 될 것입니다™.철학자와 언어학자 모두 문자 그대로 수천 년 동안 답을 찾으려고 노력했지만 끝이 보이지 않습니다.

따라서 이 문제를 좀 더 깊이 탐구하는 데 관심이 있다면 20.7장을 읽어 보시기 바랍니다. 음성 및 언어 처리 Jurafsky와 Martin이 저술한 것 중 일부는 다음을 통해 구할 수 있습니다. Google 도서.이는 단어 동시 발생 통계를 사용하여 단어 유사성에 대한 척도를 정의하는 최신 배포 방법에 대한 매우 좋은 개요를 제공합니다.그러나 이를 구현하는 라이브러리를 찾을 가능성은 없습니다.

당신은 워드넷 프린스턴 대학의 프로젝트.이에 대한 한 가지 가능한 접근 방식은 먼저 중지 단어 목록을 통해 각 구문을 실행하는 것입니다("a", "to", "the" 등과 같은 "일반적인" 단어를 제거하기 위해). 그런 다음 각 문구에 대해 WordNet을 기반으로 한 거리 측정을 사용하여 다른 문구에 있는 각 단어 간의 의미적 "유사성"을 계산할 수 있습니다.거리 측정값은 다음과 같을 수 있습니다.word1에서 word2로 이동하기 위해 WordNet에서 통과해야 하는 호의 수입니다.

죄송합니다. 꽤 높은 수준입니다.나는 분명히 이것을 시도한 적이 없습니다.그냥 빨리 생각해보세요.

이에 대한 잠재 의미 색인화를 조사하겠습니다.나는 벡터 공간 검색 색인과 유사하지만 의미적으로 관련된 용어가 서로 더 가까운 것을 만들 수 있다고 믿습니다.그들 사이의 각도가 더 작습니다.더 자세히 알게 되면 여기에 게시하겠습니다.

이 문제에 관심이 있는 사람이라면 SEMILAR를 살펴보는 것이 좋습니다. http://www.semanticssimilarity.org/ .그들은 단어와 문장 유사성을 계산하기 위해 많은 현대 연구 방법을 구현합니다.Java로 작성되었습니다.

SEMILAR API에는 Wordnet 기반의 다양한 유사성 방법, LSA(Latent Semantic Analysis), LDA(Latent Dirichlet Allocation), BLEU, Meteor, PMI(Pointwise Mutual Information), 종속성 기반 방법, Quadratic Assignment 기반의 최적화 방법 등이 포함되어 있습니다.그리고 유사성 방법은 단어 대 단어, 문장 대 문장 또는 더 큰 텍스트 등 다양한 세부사항에서 작동합니다.

6년 된 질문을 파헤쳐서 죄송합니다. 하지만 오늘 이 게시물을 발견했으므로 다른 사람이 비슷한 것을 찾고 있을 경우를 대비해 답변을 드리겠습니다.

cortical.io는 두 표현의 의미적 유사성을 계산하는 프로세스를 개발했으며 그들의 웹 사이트에 데모를 올려.그들은 기능에 대한 액세스를 제공하는 무료 API, 이므로 알고리즘을 직접 구현하지 않고도 자신의 애플리케이션에서 사용할 수 있습니다.

한 가지 간단한 해결책은 문자 n-그램 벡터의 내적을 사용하는 것입니다.이는 순서 변경(많은 편집 거리 측정항목은 그렇지 않음)에 비해 강력하며 형태소 분석과 관련된 많은 문제를 포착합니다.또한 완전한 의미론적 이해라는 AI 완전 문제를 방지합니다.

n-그램 벡터를 계산하려면 n 값(예: 3)을 선택하고 구문의 모든 3단어 시퀀스를 벡터로 해시하면 됩니다.벡터를 단위 길이로 정규화한 다음 서로 다른 벡터의 내적을 취하여 유사성을 감지합니다.

이 접근 방식은 다음 항목에 설명되어 있습니다.제이.미첼과 M.Lapata, "의미론 분포 모델의 구성", 인지 과학, vol.34, 아니.8, pp.1388년~1429년 11월2010., DOI 10.1111/j.1551-6709.2010.01106.x

문장 안에 각 단어가 나타날 확률을 고려하는 통계 기법을 살펴보겠습니다.이렇게 하면 'and', 'or', 'the'와 같은 인기 있는 단어에 덜 중요도를 부여하고 덜 자주 나타나는 단어에 더 많은 중요도를 부여할 수 있으므로 더 나은 식별 요소가 됩니다.예를 들어, 두 개의 문장이 있는 경우:

1) smith-waterman 알고리즘은 두 문자열 간의 유사성 측정을 제공합니다.2) 우리는 스미스-워터맨 알고리즘을 검토한 결과 그것이 우리 프로젝트에 충분하다는 것을 알았습니다.

두 문장이 "smith-waterman"이라는 단어와 "algorithms"라는 단어('and', 'or' 등과 같이 일반적이지 않음)를 공유한다는 사실을 통해 두 문장이 실제로 같은 주제에 대해 이야기하고 있습니다.

요약하면 다음을 살펴보는 것이 좋습니다.1) 문자열 유사성 측정;2) 통계적 방법;

도움이 되었기를 바랍니다.

노력하다 심서비스, 상위 n개의 유사 단어 및 구문 유사도를 계산하는 서비스를 제공합니다.

이를 위해서는 알고리즘이 실제로 말하는 내용을 알고 있어야 합니다.단어를 비교하고 동의어 등을 찾는 등 기본적인 형태로 수행할 수 있지만 모든 종류의 정확한 결과에는 어떤 형태의 지능이 필요합니다.

보세요 http://mkusner.github.io/publications/WMD.pdf 이 논문에서는 의미론적 유사성을 찾아내려는 Word Mover distance라는 알고리즘을 설명합니다.그것은 word2vec에 의해 지시된 유사성 점수에 의존합니다.이를 GoogleNews-Vectors-negative300과 통합하면 바람직한 결과를 얻을 수 있습니다.

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