Przed wszystkim, postaraj się zachować informację o "granicach", które pojawiają się w tekście wejściowym.
(jeśli takie informacje nie łatwo zostać utracone, Twoje pytanie sugeruje, że być może tokenizacja jest łatwo zostało zrobione)
Podczas tokenizacja (parsowania tekstu, w tym przypadku) procesu, szukać wzorów, które mogą definiować granic ekspresji (takie jak interpunkcja, szczególnie kropki, a także wiele separacji LF/CR, użyj ich.Również słowa takie jak "," często mogą być używane jako granice. Takie granice wyrażeń są zazwyczaj "negatywne", w tym sensie, że oddzielają dwa tokeny instancje, które na pewno nie są uwzględnione w tym samym wyrażeniu.Niekt dodatnimi granicami są cytaty, w szczególności podwójne cudzysłowy Ten rodzaj informacji może być przydatny do odfiltrowania niektórych n-gramów (patrz następny akapit). sekwencje wyrazów, takie jak "for example e "lub" zamiast "lub" potrzeba "może być użyte również jako granica ekspresji (ale używanie takich informacji ogranicza się do używania" priors ", o czym mówię później).
bez wykorzystywania danych zewnętrznych (inne niż tekstu wejściowego), można mieć względny sukces to uruchamiając statystyki na digrams tekstu i Trygramów (sekwencja 2 oraz 3 kolejnych słów). Następnie [najbardziej] sekwencje ze znaczną (*) liczbą wystąpień będą prawdopodobnie typem "wyrażenia/fraz", którego szukasz.
Ta nieco prymitywna metoda da kilka fałszywych pozytywów, ale w sumie może być wykonalna. Po przefiltrowaniu n-gramów, o których wiadomo, że przekraczają "granice", jak wskazano w pierwszym akapicie, może znacznie pomóc, ponieważ w językach naturalnych kończenie zdań i rozpoczyna się zdanie, mają tendencję do czerpania z ograniczonego podzbioru przestrzeni wiadomości, a zatem generują kombinacje tokena, które mogą wydają się być dobrze reprezentowane statystycznie, ale zazwyczaj nie są ze sobą powiązane.
Lepsze metody (prawdopodobnie droższe, przetwarzające i zgodne z projektem/inwestycją), wykorzystają dodatkowe "dane wyjściowe" dotyczące domeny i/lub języków narodowych tekstu wejściowego.
- POS (Part-Of-Speech) tagging jest bardzo przydatne, na kilka sposobów (dostarcza dodatkowych, bardziej obiektywne granice ekspresji, a także słowa „szum” zajęcia, na przykład wszystkich artykułów, nawet jeśli są stosowane w kontekście podmiotów są zazwyczaj mało tagu chmury takie, że OP chce produkować:
- Słowniki i leksykony mogą być całkiem użyteczne, w szczególności te, które identyfikują "byty" (inaczej instancje w języku WordNet) i ich alternatywne formy. ważne dla chmury tagów (choć nie są jedyną klasą słów w nich znalezionych), a poprzez ich identyfikację możliwe jest ich normalizowanie (wiele różnych naciski, które można wykorzystać, by powiedzieć "Senator T. Kennedy"), eliminując duplikaty, ale również zwiększając częstotliwość podstawowych obiektów.
- jeśli korpus jest skonstruowany jako zbiór dokumentów, może być przydatna do korzystania z różnych sztuczek związanych z TF (częstotliwość Term) i IDF (odwrotność częstotliwości Document)
[Przepraszam, muszę iść, bo teraz (plus chciałby uzyskać więcej szczegółowych informacji na temat konkretnych celów itp.). Postaram się podać więcej szczegółów i pointes późniejsze]
[BTW, chcę podłączyć tutaj Jonathan Feinberg i Dervin Thunk odpowiedzi z tego postu, ponieważ zapewniają doskonałe wskazówki, w zakresie metod i narzędzi do rodzaj zadania w zasięgu ręki. W szczególności NTLK i Python-at-large zapewniają doskonałe ramy dla eksperymenty]
Możesz najpierw wyczyścić dane wejściowe, usuwając typowe "szumowe" słowa z listą słów kończących. – teabot
@teabot, tak, radzenie sobie ze słowami o szumach jest ważne, ale nie powinno się tego robić, dopóki te słowa nie będą służyć innym celom. Na przykład, jeśli zamierzasz oznaczyć POS tekstem wejściowym, będą wymagane słowa szumu. Nawet bez znaczników POS, prostsze techniki mogą wykorzystywać te słowa szumów do wyprowadzania granic ekspresji itd. – mjv
@Kimvais, proszę podać więcej informacji na temat celu dużej "listy znaczników". Czy jest to tylko indeksowanie tekstu, czy jest to sposób na tworzenie chmurek tagów, czy jest to krok w kierunku kategoryzacji podstawowych dokumentów, itp.? Dzięki tym dodatkowym informacjom, współtwórcy SO będą w stanie lepiej odpowiedzieć na to stosunkowo szerokie zadanie.Może być tak, że potrzebujesz tylko Swish-e, który jest podpowiedziany przez heferav, lub może potrzebujesz więcej sugestii i pomysłów, jak dostosować różne praktyki NLP, aby zaspokoić określoną potrzebę (niekoniecznie "wymyślanie koła"). – mjv