it-swarm-ko.tech

두 구의 의미 적 유사성을 알려주는 알고리즘이 있습니까?

입력 : 문구 1, 문구 2

출력 : 시맨틱 유사성 값 (0과 1 사이) 또는이 두 구가 같은 것에 대해 이야기 할 확률

62
btw0

이 백서를 확인하고 싶을 수도 있습니다.

의미 적 그물과 말뭉치 통계에 근거한 문장 유사성 (PDF)

설명 된 알고리즘을 구현했습니다. 우리의 맥락은 매우 일반적이었고 (실제로 두 개의 영어 문장), 우리는 취한 접근법이 너무 느리고 결과가 유망하지만 충분하지 않다는 것을 알았습니다.

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

문안 인사,

매트.

42
Matt Mower

Princeton University의 WordNet 프로젝트에 체크인 할 수 있습니다. 이에 대한 한 가지 가능한 접근 방법은 먼저 중지 단어 목록을 통해 각 구를 실행하는 것입니다 ( "a", "to", "the"등과 같은 "공통"단어 제거). 각 구, WordNet을 기반으로 한 거리 측정을 사용하여 다른 구의 각 단어 사이의 의미 "유사성"을 계산할 수 있습니다. 거리 측정은 Word1에서 Word2로 이동하기 위해 WordNet에서 통과해야하는 호의 수와 같습니다.

죄송합니다. 이것은 꽤 높은 수준입니다. 나는 이것을 시도한 적이 없다. 빠른 생각입니다.

7
Chuck Wooters

방금이 사람이라면 SEMILAR- http://www.semanticsimilarity.org/ 을 살펴 보는 것이 좋습니다. 그들은 단어와 문장의 유사성을 계산하기 위해 많은 현대적인 연구 방법을 구현합니다. Java로 작성되었습니다.

SEMILAR API는 Wordnet, LSA (Latent Semantic Analysis), LDA (Latent Dirichlet Allocation), BLEU, Meteor, PMI (Pointwise Mutual Information), 종속성 기반 방법, 2 차 대입 기반 최적화 방법 등을 기반으로 한 다양한 유사성 방법을 제공합니다. 유사성 방법은 Word to Word, 문장에서 문장 또는 더 큰 텍스트와 같은 세분화 방식으로 작동합니다.

5
kyrenia

나는 이것을 위해 의미 론적 인덱싱을 조사 할 것이다. 벡터 공간 검색 색인과 비슷한 것을 만들 수 있지만 의미 적으로 관련된 용어는 서로 더 가깝습니다. 즉, 각도가 더 작습니다. 더 배우면 여기에 게시하겠습니다.

5
jonfm

6 살짜리 질문을 파서 미안하지만 오늘이 게시물을 보았을 때 다른 누군가가 비슷한 것을 찾고 있다면 대답을 할 것입니다.

cortical.io는 두 표현식의 시맨틱 유사성을 계산하는 프로세스를 개발했으며 웹 사이트에서 데모 를 갖습니다. 기능에 대한 액세스를 제공하는 무료 API 를 제공하므로 알고리즘을 직접 구현하지 않고도 자신의 응용 프로그램에서 사용할 수 있습니다.

3
Hybrid System

간단한 해결책 중 하나는 문자 n- 그램 벡터의 내적을 사용하는 것입니다. 이 기능은 순서 변경 (강력한 편집 거리 메트릭이 아님)보다 강력하며 형태소 분석과 관련된 많은 문제를 포착합니다. 또한 완전한 의미 론적 이해의 AI 완전 문제를 방지합니다.

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

이 접근 방식은 J. Mitchell and M. Lapata,“시맨틱의 분포 모델 구성”, Cognitive Science, 34 권, 8 호, pp. 1388–1429, 2010 년 11 월, DOI에 설명되어 있습니다. 10.1111/j.1551-6709.2010.01106.x

3
Jonathan Betz

SimService 를 시도해보십시오. 이는 최상위 n 개의 유사한 단어와 구문 유사성을 계산하는 서비스를 제공합니다.

2
Lushan Han

문장 내에서 각 단어가 나타날 확률을 고려한 통계 기법을 살펴 보겠습니다. 이렇게하면 'and', 'or', 'the'와 같은 널리 사용되는 단어에 대한 중요성이 줄어들고 덜 빈번하게 나타나는 단어에 대한 중요성이 높아 지므로 더 나은 차별 요소가됩니다. 예를 들어 문장이 두 개인 경우 :

1) smith-waterman 알고리즘은 두 문자열 사이의 유사성을 측정합니다. 2) 우리는 smith-waterman 알고리즘을 검토 한 결과 프로젝트에 충분한 것으로 나타났습니다.

두 문장이 "smith-waterman"이라는 단어와 "알고리즘"( 'and', 'or'등과 같이 일반적이지 않은 단어)을 공유한다는 사실은 두 문장이 실제로는 같은 주제에 대해 이야기하십시오.

요약하면 다음을 살펴볼 것을 제안합니다. 1) 문자열 유사성 측정; 2) 통계 방법

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

2
Gia

이를 위해서는 알고리즘이 실제로 무엇을 말하는지 알아야합니다. 단어를 비교하고 동의어를 찾는 등 기본적인 형태로 수행 할 수 있지만 정확한 결과를 얻으려면 어떤 형태의 지능이 필요합니다.

1
Rik

http://mkusner.github.io/publications/WMD.pdf 를 살펴보십시오.이 백서에서는 시맨틱 유사성을 밝혀내는 워드 무버 거리라는 알고리즘에 대해 설명합니다. 그것은 Word2vec에 의해 지시 된 유사성 점수에 의존합니다. 이것을 GoogleNews-vectors-negative300과 통합하면 바람직한 결과를 얻을 수 있습니다.

0
Anonymous