2011-09-25 11 views
6

Chciałbym mieć słowo (np. "Apple") i przetworzyć tekst (lub może więcej) .Dodaj pokrewne terminy, na przykład: przetwarzanie dokumentu Apple i okaże się, że iPod, iPhone, Mac są warunki podobne do „Apple”.Algorytm znajdowania pokrewnych słów w tekście

jakiś pomysł, jak rozwiązać ten problem?

+0

zajrzyj na http://semantic-link.com/ –

Odpowiedz

9

Jako punkt wyjścia: twoje pytanie dotyczy text mining.

Istnieją dwa sposoby: podejście statystyczne i jedno przetwarzanie języka naturalnego (nlp).

nie wiem zbyt wiele o NLP, ale można powiedzieć coś o podejściu statystycznym:

  1. Musisz jakąś reprezentację przestrzeni wektorowej dokumentów, patrz http://en.wikipedia.org/wiki/Vector_space_model http://en.wikipedia.org/wiki/Document-term_matrix http://en.wikipedia.org/wiki/Tf%E2%80%93idf

  2. Aby nauczyć się semantyki, to znaczy: różne słowa oznaczają to samo, lub jedno słowo może mieć różne znaczenia, potrzebny jest duży korpus tekstowy do nauki. Jak już powiedziałem, jest to podejście statystyczne, więc potrzebujesz wielu próbek. http://www.daviddlewis.com/resources/testcollections/

    Może masz dużo dokumentów z kontekstu, którego zamierzasz użyć. To najlepsza sytuacja.

  3. Musisz pobrać ukryte czynniki z tego korpusu.Najczęściej są:

    te sposoby obejmują wiele matematyka. Albo go wykopiesz, albo musisz znaleźć dobre biblioteki.

mogę polecić następujące książki:

+0

Dla manekinów takich jak ja, po prostu budujemy dużą matrycę współwystępowania. To mówi nam, że słowa występują razem i są całkiem przyzwoite. Bez względu na to, czy są to synonimy i tego typu rzeczy ... to jest sztuczna inteligencja i tak naprawdę nie istnieje, chociaż Hoifung Poon z UW wykonał kilka czystych badań na ten temat (nienadzorowana analiza semantyczna). – nflacco

2

jak wszystkie AI, jest to bardzo trudny problem. należy spojrzeć na natural language processing aby dowiedzieć się o niektórych zagadnieniach:

Jednym bardzo, bardzo uproszczonym podejściem może być zbudowanie 2d-tabeli słów, przy czym dla każdej pary słów średnia odległość (w rds), które pojawiają się w tekście. Oczywiście musisz ograniczyć maksymalny rozpatrywany dystans i ewentualnie liczbę słów. Następnie, po przetworzeniu dużej ilości tekstu, zobaczysz wskaźnik, jak często niektóre słowa pojawiają się w tym samym kontekście.

2

Co mogę zrobić, to uzyskać wszystkie słowa w tekście i utworzyć listę częstotliwości (jak często pojawiają się poszczególne słowa). Może również dodać do tego heurystyczny czynnik określający odległość słowa "Apple". Następnie przeczytaj wiele dokumentów i wykreśl słowa, które nie są powszechne we wszystkich dokumentach. Następnie ustal priorytety na podstawie częstotliwości i odległości od słowa kluczowego. Oczywiście dostaniesz dużo śmieci i prawdopodobnie przegapisz odpowiednie słowa, ale dostosowując heurystykę powinieneś uzyskać przynajmniej kilka przyzwoitych dopasowań.

+0

Myślenie o nim więcej, powinieneś również nakarmić go tekstami, które nie są związane z "Apple" i wykluczyć słowa, które pojawiają się w tych tekstach. Spowoduje to pozbycie się popularnych słów, takich jak "the", "of", itp. – Radu

1

Technika, której szukasz, nazywa się Latent Semantic Analysis (LSA). Jest również czasami nazywane Latent Semantic Indexing. Technika opiera się na założeniu, że powiązane pojęcia występują razem w tekście. Wykorzystuje statystyki do budowania relacji między słowami. Biorąc pod uwagę wystarczająco dużą liczbę dokumentów, zdecydowanie rozwiąże to problem ze znalezieniem pokrewnych słów.

Powiązane problemy