Rozbicie tekstu na poszczególne wartości

0

Cześć!
Z góry przepraszam jeśli temat niejasno mówi o co chodzi, nie mogłem nic lepszego wymyślić.

Szukam rozwiązania które pozwoli mi rozbić zdanie na poszczególne wartości, tak dla przykładu:
Zgaś światło juto o 14:30.

Rozbije mi na:
zadanie : zgaś światło
data: jutro 14:30

Wiem że istnieje coś takiego tylko za nic nie mogę sobie przypomnieć jak to się nazywa. Dodam że tworzenie sieci neuronowej od podstaw nie wchodzi w grę (trochę za mały projekt).

Z góry dziękuję Wam za pomoc :)

3

Wiem że istnieje coś takiego - no, gdzieś na serwerach Apple w kodzie źródłowym Siri pewnie istnieje ;) Ale obawiam się że nic lepszego od jakiegoś naiwnego matchingu się tu nie zrobi. Trzeba by dopasowywać czasowniki i identyfikatory. I nie sieć neuronowa nadaje się tu jak pięść do oka. Nie mówiąc już o tym, że jeśli to ma być PL to już na wstępie masz problem lematyzacji/stemmingu a co dopiero taka zaawansowana analiza.

0

@Shalom Czemu mówisz że sieci neuronowe się tu nie sprawdzą? W takim razie masz jakiś pomysł jak to rozwiązać? Przychodzi mi do głowy tylko jeden model w którym na "sztywno" definiuję konstrukcję zdań i zależnie od któregoś słowa definiującego aktywność jak przetwarzane ma być całe zdanie.

0

No i generalnie tak to musisz zrobić właśnie, poprzez anlizę składniową. Sieć neuronowa nijak sie do tego nie sprawdzi bo niby w jaki sposób?

0

Shalom Nauczyć ją pojedynczych składowych zdań (lub bardziej ogólnie zasad j. polskiego) A następnie aby dostając na wejściu zdanie rozdzielała je (na podstawie wcześniej wyuczonych zasad) na ważne dla mnie składowe. Wtedy mogła by dostać 2 zdania np. Przypomnij o telefonie do Jana Kowalskiego. Przypomnij o 18:30. A zwraca:
zadanie: przypomnij
treść: telefon do Jan Kowalski
data: 18:30
No ale jak pisałem projekt jest za mały żeby się w coś takiego bawić więc zostają te zaawansowane regexy :D

3

Jejku, następny co o sieciach neuronowych to słyszał chyba tylko w jakimś filmie sci-fi..
Jeśli w ogóle to juz prędzej być takich "zasad" nauczył drzewo decyzyjne albo system regułowy, ale zauważ że tutaj trzeba nauczyć rozkładu zdania, a to jest już w ogóle nietrywialne i wielu ludzi sobie z tym nie radzi, a co dopiero komputer. Zauważ ze w rozkładzie zdania na składowe potrzeba zaawansowanej analizy semantycznej, bo jakoś trzeba stwierdzić co jest podmiotem a co orzeczeniem. To juz samo w sobie wcale takie oczywiste nie jest.

Przeczytaj sobie np. http://www.ipipan.waw.pl/~wolinski/publ/znakowanie.pdf i zobacz że już samo określanie części mowy (a jeszcze nie części zdania!) jest trudne! Ba, dla języka polskiego już w ogóle sama lematyzacja jest trudna bo jak masz zdanie jak jakiś śmieć może śmieć! to zauważ że dwa wystąpienia słowa śmieć w rzeczywistości są wystąpieniami dwóch różnych słów, gdzie jedno to rzeczownik a drugie to czasownik. Albo był tam pik - gdzie pik może oznaczać rzeczownik od pikać albo pik jako kolor w kartach.

Serio, przetwarzanie języka naturalnego to nie jest prosta sprawa, a dla języka polskiego to już jest w ogóle masakra ;] Istnieje troche narzędzi do tego, słowników fleksyjnych, analizatorów morfologicznych, ale to wszystko są lepsze lub gorsze heurystyki.

0

Shalom W sumie masz rację. W głowie pojawiały mi się tylko najprostsze przykłady, a dla nich było by dość łatwo :p Jeszcze raz dzięki za pomoc :)

0

Homonimy w polskim to nie jest główny problem, wszakże w angielskim jest ich jeszcze więcej. W polskim problemem podstawowym jest brak narzuconego szyku zdania.

3

Klasyczny przykład na trudność rozkładu zdania w j. polskim:

Traktor uderzył ciągnik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1