Próbuję użyć parsera Earley w NLTK do analizowania zdań takich jak:Korzystanie liczby całkowite/daty jako terminale w NLTK parsera
Jeśli data jest przed 21.12.2010 następnie seryjny = 10
Aby to zrobić, próbuję napisać CFG, ale problemem jest to, że potrzebowałbym mieć ogólny format dat i liczb całkowitych jako terminali, zamiast konkretnych wartości. Czy istnieją jakieś sposoby na określenie prawej strony reguły produkcji jako wyrażenia regularnego, które umożliwiłoby tego rodzaju przetwarzanie?
Coś jak:
S -> '[0-9]+'
który będzie obsługiwać wszystkie liczby całkowite.
Twój format daty zależy od ustawień regionalnych. I przede wszystkim jest niejednoznaczny (zderzają się z matematycznym wyrazem 12 div 21 div 2010, który prawdopodobnie nie jest tym, który chcesz – VGE
Masz rację, ale będzie to łatwe w obsłudze, ponieważ dane wejściowe nigdy nie będą zawierać żadnych wyrażeń matematycznych, takich jak to, o czym wspomniałeś. format daty zostanie naprawiony, powiedzmy, MM/DD/RRRR .. Znalazłem sposób obsługi liczb całkowitych, ale wciąż szukam odpowiedniego rozwiązania dla dat. – FahimH