Witam. Piszę program do nauki języka angielskiego i nie mam pojęcia jak napisać algorytm, który rozpozna czy słowo ma bezokolicznik, czy nie. Z góry dzięki za pomoc.
Przepraszam za błąd. *Czy słowo JEST bezokolicznikiem.
To chyba już bardziej na forum lingwistycznym niż programistycznym. Chyba że masz gotowy algorytm, ale nie umiesz go implementować.
Nie doszukiwałbym się tutaj specjalnej korelacji - musiałbyś oprzeć program o gotową listę słów.
Zależy jeszcze oczywiście co rozumiesz poprzez czy dane słowo ma bezokolicznik
.
Każdy czasownik ma formę bezokolicznika. Niektóre słowa mają wiele znaczeń np. "read" jest czasownikiem w formie bezokolicznika, ale też w innych kontekstach (zdaniach) może być rzeczownikiem lub czasem przeszłym czasownika. Ogólnie NLP nie jest łatwe.
Jeśli projekt jest grubszy to sugeruję wykupić API jakiegoś słownika i querować. Np. tego:
http://www.macmillandictionary.com/tools/aboutapi.html
@datdata Niee nie jest grubszy :D dopiero uczę się C#
@tdudzik Nie wiem, czy jestem na tyle zaawansowanym koderem C# i .NET aby umieć coś takiego zrobić, ale spróbuję. Wyślesz link do jakiegoś dobrego poradnika z integracji z bazami danych w C# i streamowania?
Dziękuję za pomoc! ;)
rozwiązaniem problemu może być wykorzystanie tagowania części mowy, w naszym przypadku chodzi o wykrycie podstawowej formy czasownika (ang. verb base)
process tagowania po angielsku to post(part of speech tagging) https://en.wikipedia.org/wiki/Part-of-speech_tagging
w pythonie jest biblioteka nltk http://www.nltk.org/book/ch05.html
odnośnie c# po szybkim googlowaniu frazy "pos tagging c#" znalazłem https://sergey-tihon.github.io/Stanford.NLP.NET/StanfordPOSTagger.html