2013-04-25 11 views
18

Chcę zmierzyć podobieństwo semantyczne między dwoma frazami/zdaniami. Czy istnieje struktura, z której mogę korzystać bezpośrednio i niezawodnie?Pomiar semantycznego podobieństwa między dwoma zwrotami

Mam już wyrejestrowany this question, ale jest dość stary i nie mogłem znaleźć tam odpowiedzi. Było one link, ale uznałem to za niewiarygodne.

np
Mam frazę: czuł pokruszony
Mam kilka możliwości: siła do wewnątrz, sproszkowany, zniszczony emocjonalnie, przekształcanie itp
Chcę znaleźć termin/frazę najwyższego podobieństwa do pierwszego .
Odpowiedź brzmi: niszczona emocjonalnie.

Większy obraz: chcę określić, która klatka z dopasowań FrameNet do danego czasownika jest zgodna z jego użyciem w zdaniu.

Aktualizacja: Znalazłem this library bardzo przydatne do pomiaru podobieństwa między dwoma słowami. Również mechanizm podobieństwa ConceptNet jest bardzo dobry.

i this library do pomiaru semantyczne podobieństwo między zdaniami

Jeśli ktoś ma jakieś spostrzeżenia proszę podzielić.

+0

Zobacz bibliotekę Semantic Measures: [http://www.semantic-measures-library.org] (http: //www.semantic-measures-library.org /) – Seb

Odpowiedz

8

To bardzo skomplikowany problem.

Główną techniką, którą mogę wymyślić (przed przejściem do bardziej skomplikowanych procesów NLP) byłoby zastosowanie podobieństwa cosinus (lub innego rodzaju) do każdej pary fraz. Oczywiście to rozwiązanie byłoby obecnie bardzo nieefektywne z powodu niezgodnego problemu: zdania mogą odnosić się do tej samej koncepcji z różnymi słowami.

Aby rozwiązać ten problem, należy przekształcić początkową reprezentację każdej frazy o bardziej "koncepcyjnym" znaczeniu. Jedną opcją byłoby rozszerzenie każdego słowa o jego synonimy (tj. Użycie WordNet, inną opcją jest zastosowanie metryk, takich jak semantyka dystrybucyjna DS (http://liawww.epfl.ch/Publications/Archive/Besanconetal2001.pdf), która rozszerza reprezentację każdego terminu z bardziej prawdopodobnymi słowami, które pojawią się z nim.

Przykład: Reprezentacja dokumentu: {"samochód", "wyścig"} zostanie przekształcona na {"samochód", "samochód", "wyścig"} z synonimami, podczas gdy z DS będzie to coś w stylu: { „samochód”, „koło”, „droga”, „pilot”, ...}

Oczywiście ta przemiana nie będzie binarny. Każdy termin będzie miał kilka powiązanych ciężarów.

mam nadzieję, że h elps.

+0

Dziękuję za odpowiedź, ale moim głównym problemem jest to, że potrzebuję czegoś, co ocenia podobieństwo jako połączone słowo, a nie pojedyncze słowa, o których pisałem w przykładzie. – tejas

+0

Modyfikujesz reprezentację fraz w oparciu o podobieństwa termin-term. Przykładowo, jeżeli dwa zdania: S1: { "samochód", "rasa"} S2: { "motocykl}, "Speed"} ze standardowym cosinus podobieństwa można dostać 0,0 podobieństwa (jak żadne terminy są często). Możesz jednak rozszerzyć tę reprezentację za pomocą "powiązanych terminów" na podstawie DS, a następnie zwroty stają się: S1: {"samochód", "wyścig", "pojazd", "samochód", "szybko"} S2: {"motorbike}," speed "," bike "," vehicle "," fast "} Teraz masz pewne podobieństwo, oparte na" szybkim "i" pojeździe ". – miguelmalvarez

0

Być może interfejs API cortical.io może pomóc w rozwiązaniu problemu. Podejście polega na tym, że każde słowo jest przekształcane na semantyczny odcisk palca, który charakteryzuje jego znaczenie z cechami semantycznymi 16K. Zwroty, zdania lub dłuższe teksty są konwertowane na odciski palców poprzez odwzorowywanie odcisków palców słów razem. Po tej zamianie na (numeryczną) reprezentację wektora binarnego odległość semantyczną można łatwo obliczyć za pomocą miar odległości, takich jak odległość euklidesowa lub podobieństwo cosinusów. Wszystkie niezbędne funkcje konwersji i porównania są dostarczane przez interfejs API.