Pytanie Jak wykryć, że dwa zdania są podobne?


Chcę obliczyć, jak podobne są do siebie dwa arbitralne zdania. Na przykład:

  1. Matematyk znalazł rozwiązanie tego problemu.
  2. Problem został rozwiązany przez młodego matematyka.

Mogę użyć taggera, procesora i parsera, ale nie wiem, jak wykryć, że te zdania są podobne.


21
2018-04-21 16:04


pochodzenie


Czy zastanawiałeś się nad pytaniem o takie rzeczy w Linguistics.SE? Uważam, że pytania NLP mają tendencję do lepszego leczenia tam. - tchrist
@tchrist, ale jest to pytanie oparte na programowaniu / algorytmie! - Ravinder Payal


Odpowiedzi:


Te dwa zdania nie są po prostu podobne, są prawie parafrazytzn. dwa alternatywne sposoby wyrażania tego samego znaczenia. Jest to również bardzo prosty przypadek parafrazy, w którym obie wypowiedzi używają tych samych słów, z wyjątkiem jednego będącego w aktywnej formie, podczas gdy drugie jest bierne. (Te dwa zdania nie są dokładnie parafrazą, ponieważ w drugim zdaniu matematyk jest "młody", ta dodatkowa informacja sprawia, że ​​semantyczna relacja między dwoma zdaniami jest niesymetryczna. W takich przypadkach można by powiedzieć, że druga wypowiedź "pociąga za sobą" pierwszy, lub innymi słowy, że pierwszy można wywnioskować z drugiego).

Z tego przykładu nie można zrozumieć, czy rzeczywiście interesuje cię wykrywanie parafrazy, tekstowe lub ogólne podobieństwo zdań, co jest jeszcze szerszym i bardziej kłopotliwym problemem. Na przykład, czy "ludzie jedzą jedzenie" bardziej przypominają "ludzie jedzą chleb" lub "ludzie jedzą jedzenie"?

Zarówno wykrywanie parafrazy, jak i podobieństwo tekstu są złożonymi, otwartymi problemami badawczymi w przetwarzaniu języka naturalnego, z dużą i aktywną społecznością badaczy pracujących nad nimi. Nie jest jasne, jaki jest zakres twojego zainteresowania tym tematem, ale pomyśl, że chociaż wielu błyskotliwych naukowców wydało i poświęca całą swoją karierę, próbując je złamać, wciąż jesteśmy daleko od znalezienia rozsądnych rozwiązań, które po prostu działają w ogóle.

Jeśli nie jesteś zainteresowany bardzo powierzchownym rozwiązaniem, które działałoby tylko w konkretnych przypadkach i które nie przechwyciłoby alternatywy składniowej (jak w tym przypadku), sugerowałbym głębsze przyjrzenie się problemowi podobieństwa tekstu. Dobrym punktem wyjścia byłaby książka "Podstawy statystycznego przetwarzania języka naturalnego", który zapewnia bardzo dobrze zorganizowaną prezentację większości statystycznych tematów przetwarzania języka naturalnego. Kiedy już wyjaśnisz swoje wymagania (np. Pod jakimi warunkami powinna działać twoja metoda, na jakich poziomach precyzji / przypominania się zabiegasz, jakie zjawiska możesz bezpiecznie zignorować i które z nich musisz uwzględnić?) Możesz zacznij analizować konkretne podejścia, nurkując w ostatnich pracach badawczych. Tutaj dobrym miejscem do rozpoczęcia będzie archiwa internetowe Stowarzyszenia Lingwistyki Komputerowej (ACL), który jest wydawcą większości wyników badań w tej dziedzinie.

Aby dać ci coś praktycznego do pracy, bardzo surowym punktem odniesienia dla podobieństwa zdań byłoby podobieństwo cosinusów pomiędzy dwoma wektorami binarnymi reprezentującymi zdania jako worki słów. Worek słowa jest bardzo uproszczoną reprezentacją tekstu, powszechnie używaną do wyszukiwania informacji, w której całkowicie lekceważysz składnię i reprezentujesz tylko zdanie jako wektor, którego rozmiar jest wielkości słownictwa (tj. Liczba słów w języku ) i którego element "i" ma wartość "1", jeśli słowo w pozycji "i" w słowniku pojawia się w zdaniu, a "0" w przeciwnym razie.


27
2018-04-21 16:42



Dzięki, przyjacielu. - SahelSoft
ale podobizna cosinusa pokaże te zdania same I drink milk but I dont drink alcohalic drinks i I dont drink milk but I drink alcohlic drinks ! - Ravinder Payal
@RavinderPayal, to jest to, co należy rozwiązać w ramach rozumienia języka naturalnego. - Amit Kumar
@amit_kumar tak, a ten konkretny problem można rozwiązać przez odwzorowanie czasowników z rzeczownikami i tokenizacja - Ravinder Payal
Nie zgadzam się. to tylko tagowanie NLP i POS, które zajmuje się tylko składnią. NLU dotyczy semantyki i pragmatyki. Silniki NLU są dziełem sztuki i nadal nie mamy rozwiązania, które można uogólnić dla wszystkich domen. - Amit Kumar


W niektórych przypadkach możliwe jest automatyczne przekształcanie zdań w struktury reprezentacji dyskursu które reprezentują ich znaczenie. Jeśli dwa zdania dają taką samą strukturę reprezentacji dyskursu, to prawdopodobnie mają one podobne znaczenie.


1
2017-12-25 04:36





Nie jestem do końca pewien, czy o to właśnie chodzi, ale możesz obliczyć podobieństwo sekwencji symboli (w tym przypadku słów) używając Levenshtein Edytuj odległość alghoritm.


0
2018-04-27 00:40



Odległość Levenshteina w tym kontekście jest mniejsza. - Amit Kumar