Pracuję nad zadaniem NLP i potrzebuję obliczyć matrycę współstosowania nad dokumentami. Podstawowa formuła jest następująca:Python - oblicz macierz współwystępowania
Tutaj mam matrycę o kształcie (n, length)
, gdzie każdy wiersz reprezentuje zdanie złożone z length
słów. Tak więc są w sumie zdania o długości równej. Następnie z określonym rozmiarem kontekstu, np. window_size = 5
, chcę obliczyć matrycę współwystępowania D
, gdzie wpis w kolumnie cth
i wth
jest #(w,c)
, co oznacza, ile razy słowo kontekstowe c
pojawi się w w
' s kontekst.
Przykład można znaleźć tutaj. How to calculate the co-occurrence between two words in a window of text?
Wiem, że można go obliczyć za pomocą pętli układania, ale chcę wiedzieć, czy kończy się prosty sposób lub prosta funkcja? Mam kilka odpowiedzi, ale nie mogą pracować z oknem przesuwającym się przez zdanie. Na przykład: word-word co-occurrence matrix
Czy ktoś mógłby mi powiedzieć, czy w Pythonie istnieje jakaś funkcja zwięzła w rozwiązywaniu tego problemu? Bo myślę, że to zadanie jest dość powszechne w rzeczach NLP.
Wielkie dzięki. Widziałem funkcję 'CountVectorizer', ale zdarzenie, które oblicza, nie jest tym, czego chcę tutaj. W macierzy występowania mam na myśli tutaj, każda pozycja reprezentuje wystąpienie ** centralnego ** słowa 'w' i jego kontekstowego słowa' c'. Funkcja w 'CountVectorizer' po prostu obliczyć każdą parę słowa występującego w zdaniu. Mogę to osiągnąć tylko przy użyciu stosu pętli i zastanawiam się, czy proste API wychodzi. Dziękuję za odpowiedź :) –
@GEORGEGUO Przepraszam za błędne użycie CountVectorizera. Ale możesz bezpośrednio użyć zapisanych sentances z kodem, który podałem. Krótko mówiąc, nie jest to skomplikowane i możesz zrobić takie "API" samodzielnie. – Zealseeker
Wiem o tym. Dzięki –