Odpowiadając bezpośrednio na twoje pytanie, zaczynasz od sprawdzenia, czy dany token jest numeryczny, alfanumeryczny czy alfabetyczny (możesz użyć tutaj regex), a następnie sklasyfikujesz go jako taki. Ogólnie rzecz biorąc, podejście, którego szukasz, nazywa się hierarchią generalizacji tokenów lub hierarchicznym wyborem funkcji (Google it). Podstawową ideą jest to, że możesz traktować każdy token jako osobny element, ale to nie jest najlepsze podejście, ponieważ nie możesz ich wszystkich zakryć [*]. Zamiast tego używasz typowych funkcji wśród tokenów (na przykład 2000
i 1981
to odrębne tokeny, ale mają one wspólną cechę: 4 cyfry i ewentualnie lata).Następnie masz klasę dla liczb czterocyfrowych, inną dla alfanumerycznych i tak dalej. Ten proces generalizacji pomaga uprościć podejście do klasyfikacji.
Często, jeśli zaczynasz od ciągu żetonów, musisz je przetworzyć (np. Usunąć interpunkcję lub specjalne symbole, usunąć słowa, które nie są istotne, wyniki itd.). Być może jednak możesz użyć niektórych symboli (np. Interpunkcja między miastami i krajami - np. Melbourne, Australia
), więc przypisz ten zestaw przydatnych znaków interpunkcyjnych do innego symbolu (#
) i użyj go jako kontekstu (aby następnym razem znaleźć nieznany słowo obok przecinka obok znanego kraju, możesz użyć tej wiedzy, aby założyć, że nieznane słowo jest miastem
Tak czy inaczej, to ogólna idea klasyfikacji za pomocą ontologii (na podstawie taksonomii terminów). można też przeczytać o part-of-speech tagging.
Nawiasem mówiąc, jeśli tylko chce mieć 3 kategorie (numeryczne, alfanumeryczne, alfabetyczna), realną opcją byłoby użyć edit distance (co jest bardziej prawdopodobne, że UA4E30 należeć s do kategorii alfanumerycznej lub numerycznej, biorąc pod uwagę, że nie odpowiada tradycyjnemu formatowi wcześniejszych ciągów liczbowych?). Przyjmujesz więc koszt każdej operacji (wstawiania, usuwania, subtytucji), która przekształca nieznany token w znany.
Wreszcie, chociaż powiedziałeś, że używasz Protege (którego nie używałem) do zbudowania twojej ontologii, możesz spojrzeć na WordNet.
[*] Istnieją podejścia probabilistyczne, które pomagają określić prawdopodobieństwo nieznanego tokena, więc prawdopodobieństwo wystąpienia takiego zdarzenia nie wynosi zero. Zwykle odbywa się to w kontekście Ukrytych modeli Markowa. W rzeczywistości może to być przydatne do poprawy sugestii podanej przez etov.
Ciąg może być zarówno nazwą miasta, jak i nazwą kraju (dobrze, koncepcyjnie w oparciu o podane fakty). Ontologia nie musi mieć jednego dziedziczenia. –