Здравствуйте. Пишу курсовую. На вход подаётся строка вида:
Финансовые рынки и нейронные сети [Текст] : [учеб. пособие по специальностям Прикладная математика, Прикладная информатика (по обл.) и другим специальностям] / В. И. Ширяев. - М. : URSS, 2007. - 221, [1] с. ; 22 см. - ISBN 978-5-382-00330-6 : 137.59 р.
Задача - выделить полезную информацию (автор, название,издание, страница).
Формат может сильно изменяться от ссылки к ссылке. (Есть ГОСТ но далеко не все его соблюдают).
Пока что лучшее, что придумал - использовать 3-граммы для построения вероятностной модели расположения семантических блоков типа
P(TRUE | "<start><book_title>:<additional_title>/<autors>_<publishers>_<pages>;<library_info>_<ISBN>:<cost><end>") = P(TRUE | "<start><book_title>:")*P(TRUE | "<book_title>:<additional_title>")*...*P(TRUE | ":<cost><end>")
А затем определять принадлежность текста к конкретному блоку при помощи тех же 3-грамм, предварительно разбив на токены.
Wwlww[W]:[w.wwwWw,Ww(ww.)lww]/L.L.W_L.:A,n_n,[n]l.nw_An-n-n-n-n:n.nl.
P(<book_title> | "Wwlww[w]") = P(<book_title> | "<start>Ww")*P(<book_title> | "Www")*...
Но тут неопределённость с тем, как в точности определять границы семантических блоков.
По правде, я сильно сомневаюсь в том, что мыслю в правильном направлении. Подскажите, пожалуйста, кто знаком с темой, какие существуют эффективные подходы к решению. Заранее благодарен.