2013-04-25 6 views
18

두 문구/문장 간의 의미 상 유사성을 측정하고 싶습니다. 직접적으로 그리고 신뢰성있게 사용할 수있는 프레임 워크가 있습니까?두 문구 사이의 의미 상 유사성 측정

나는 이미 this question을 체크 아웃했지만 그 꽤 오래된 것으로 실제 도움이되는 대답을 찾을 수 없습니다. one link이 있었지만이 값은 신뢰할 수 없다는 것을 알았습니다.

예 :
나는 문구가 : 분쇄 느낌을
나는 몇 가지 선택이있다 : 힘이 안쪽으로, 분쇄 등 재편, 감정적으로 파괴
내가 처음에 가장 높은 유사성 용어/문구를 찾으려면 .
대답은 다음과 같습니다. 감정적으로 파괴되었습니다.

큰 그림은 : ​​FrameNet의 어떤 프레임이 문장에서의 사용법에 따라 주어진 동사와 일치하는지 확인하고 싶습니다.

업데이트 : this library은 두 단어 사이의 유사성을 측정하는 데 매우 유용합니다. 또한 ConceptNet 유사성 메커니즘이 매우 좋습니다.

this library 문장

사람이 공유하시기 바랍니다 어떤 통찰력이있는 경우

사이의 의미 적 유사성을 측정.

+0

시맨틱 측정 라이브러리 : [http://www.semantic-measures-library.org] (http : //www.semantic-measures-library.org /) – Seb

답변

8

이것은 매우 복잡한 문제입니다.

내가 더 잘 복잡한 NLP 프로세스로 들어가기 전에 생각할 수있는 주요 기술은 각 쌍의 문구에 코사인 (또는 다른 메트릭) 유사성을 적용하는 것입니다. 분명히이 해결책은 비 일치 문제로 인해 현재 매우 비효율적 일 것입니다. 문장은 다른 단어로 같은 개념을 참조 할 수 있습니다.

이 문제를 해결하려면 각 개념의 초기 표현을보다 개념적인 의미로 변환해야합니다. 하나의 옵션은 각 단어를 동의어로 확장하는 것입니다 (예 : WordNet 사용, 다른 옵션은 각 용어의 표현을 확장 할 수있는 분산 시맨틱 DS (http://liawww.epfl.ch/Publications/Archive/Besanconetal2001.pdf)와 같은 메트릭을 적용하는 것입니다.

예 : 문서의 표현 : { "car", "race"}는 동의어로 { "car", "automobile", "race"}로 변환됩니다 .DS를 사용하면 { "자동차", "휠", "길", "파일럿", ...}는

은 분명히 이러한 변화는 바이너리되지 않습니다. 각각의 용어는 어떤 관련 가중치를해야합니다.

나는이 시간 희망 엘프.

+0

답장을 보내 주셔서 감사합니다. 그러나 여기에서 가장 중요한 문제는 예제에서 언급 한 것처럼 개인 용어가 아닌 결합 된 용어로 유사성을 평가하는 무언가가 필요하다는 것입니다. – tejas

+0

용어 - 용어 유사성을 기반으로 구문 표현을 수정합니다. 예 : 주어진 문장이 두 개있는 경우 : S1 : { "car", "race"} S2 : { "motorbike}"speed "} 표준 코사인 유사성을 사용하면 공통성이 없으므로 유사성이 0.0이됩니다. S S1 : { "car", "race", "vehicle", "automobile", "fast"} S2 : 다음과 같은 문구가 DS를 기반으로하는 "관련 용어"를 사용하여 확장 할 수 있습니다. { "오토바이", "속도", "자전거", "차량", "고속"} "빠른"및 "차량"을 기반으로 한 유사성이 있습니다. – miguelmalvarez

0

아마도 cortical.io API가 문제를 해결할 수 있습니다. 여기서의 접근법은 모든 단어가 의미 론적 지문으로 변환되어 16K 의미 론적 특징으로 단어의 의미를 특징 짓는 것입니다. 문장, 문장 또는 더 긴 텍스트는 단어 지문을 OR 연산하여 지문으로 변환됩니다. 이 (숫자) 이진 벡터 표현으로 변환 한 후 의미 론적 거리는 유클리드 거리 또는 코사인 유사성과 같은 거리 측정을 사용하여 쉽게 계산할 수 있습니다. 필요한 모든 변환 및 비교 함수가 API에 의해 제공됩니다.