Jak stworzyć listę powiązanych słów na podstawie początkowych słów kluczowych?

19

Niedawno widziałem fajną funkcję, która była kiedyś dostępna w Arkuszach Google: zaczynasz od napisania kilku powiązanych słów kluczowych w kolejnych komórkach, na przykład: „niebieski”, „zielony”, „żółty”, i automatycznie generuje podobne słowa kluczowe (w tym przypadku , inne kolory). Zobacz więcej przykładów w tym filmie na YouTube .

Chciałbym to odtworzyć we własnym programie. Zastanawiam się nad użyciem Freebase i działałoby to intuicyjnie:

  1. Pobierz listę podanych słów w Freebase;
  2. Znajdź ich „wspólny mianownik (-y)” i na tej podstawie zbuduj metrykę odległości;
  3. Ranguj inne pojęcia na podstawie ich „odległości” od oryginalnych słów kluczowych;
  4. Wyświetl następne najbliższe koncepcje.

Ponieważ nie znam tej dziedziny, moje pytania są następujące:

  • Czy jest na to lepszy sposób?
  • Jakie narzędzia są dostępne dla każdego kroku?
nassimhddd
źródło
Domyślam się, że jest to oparte na uczeniu się tematów w dużym korpusie.
tchakravarty
Jeśli chcesz znaleźć ich wyjaśnienie, uważam, że była podstawowa metoda o nazwie Google Sets.
jamesmf,
1
Ten problem nazywa się „rozszerzaniem zapytań”.
Emre,

Odpowiedzi:

15

Algorytm word2vec może być dobrym sposobem, aby pobrać więcej elementów do listy podobnych słów. Jest to nienadzorowany algorytm „głębokiego uczenia się”, który został wcześniej zademonstrowany przy użyciu danych szkoleniowych opartych na Wikipedii (skrypty pomocnicze znajdują się na stronie kodowej Google).

Obecnie istnieją implementacje C i Python . Ten poradnik przez Radim Řehůřek , autora Gensim modelowania temat biblioteki , jest doskonałym miejscem, aby rozpocząć.

„Pojedynczy wątek” demonstracja na tutorialu jest dobrym przykładem retreiving podobne słowa do jednego terminu (spróbuj poszukać na „czerwony” lub „żółty”). Powinna istnieć możliwość rozszerzenia tej techniki, aby znaleźć słowa o największym ogólnym podobieństwie do zestawu słów wejściowych.

joews
źródło
5

Czy rozważałeś podejście oparte na częstotliwości, wykorzystujące proste współwystępowanie słów w ciałach? Przynajmniej tego widziałem większość ludzi do tego. Myślę, że może to być krótko omówione w książce Manninga i Schütze, i wydaje mi się, że pamiętam coś takiego jako zadanie domowe w szkole podstawowej ...

Więcej informacji tutaj: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

W tym kroku:

Ranguj inne pojęcia na podstawie ich „odległości” od oryginalnych słów kluczowych;

Istnieje kilka wskaźników podobieństwa semantycznego, które można sprawdzić. Oto link do niektórych slajdów, które przygotowałem dla projektu klasowego przy użyciu kilku takich wskaźników podobieństwa w WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity. pdf

Charlie Greenbacker
źródło
3

Jest to jeden z fajnych problemów, w których zakres może się różnić od zadania domowego do projektu wielkości Google.

Rzeczywiście, możesz zacząć od współwystępowania słów (np. Prawdopodobieństwo warunkowe). Szybko odkryjesz, że otrzymujesz listę słów zatrzymanych jako powiązanych z większością słów tylko dlatego, że są one bardzo popularne. Zastosowanie podniesienia prawdopodobieństwa warunkowego zajmie się słowami stop, ale sprawi, że relacja będzie podatna na błędy w niewielkiej liczbie (większość twoich przypadków). Możesz spróbować Jacarda, ale ponieważ jest symetryczny, będzie wiele relacji, których nie znajdzie.

Następnie możesz rozważyć relacje pojawiające się tylko w niewielkiej odległości od słowa podstawowego. Możesz (i powinieneś) rozważyć relacje oparte na korpusie ogólnym (np. Wikipedia) i specyficznym dla użytkownika (np. Jego e-maile).

Wkrótce będziesz mieć wiele środków pokrewieństwa, gdy wszystkie środki są dobre i mają pewną przewagę nad innymi.

Aby połączyć takie środki, chciałbym zredukować problem do problemu klasyfikacji.

Powinieneś zbudować zestaw danych pary słów i oznaczyć je jako „jest powiązane”. Aby zbudować duży zestaw danych z etykietami, możesz:

  • Używaj źródeł znanych pokrewnych słów (np. Stare dobre kategorie Wikipedii) dla pozytywów
  • Większość słów, które nie są znane jako powiązane, nie są powiązane.

Następnie zastosuj wszystkie środki, które masz jako cechy par. Teraz jesteś w obszarze nadzorowanego problemu klasyfikacji. Zbuduj klasyfikator na zbiorze danych, oceniany zgodnie z Twoimi potrzebami i uzyskaj miarę podobieństwa, która odpowiada Twoim potrzebom.

DaL
źródło