Регулярные выражения. Задание
(2 балла) напишите программу, которая выводит на экран столбиком все находки выбранного регулярного выражения из файла words.txt. Регулярное выражение задаётся в переменной в первых строках программы. Опробуйте эту программу на тексте этой страницы с регулярными выражениями для: русских слов, английских слов, дат.
(3 балла) поправьте функцию token_type так, чтобы она дополнительно выделяла новые типы токенов: дата, ссылка, email, число процентов. Запустите токенизатор (программу, которая выдаёт токены и их типы – она у вас уже несколько раз написана) с этой функцией на тексте из 100~200 словоупотреблений и посчитайте для каждого правила с регулярными выражениями количество TP, FP, FN в получившейся выборке.
(2 балла) напишите программу, которая открывает файл words.txt, читает его, все гиперссылки берёт в квадратные скобки и выделяет пробелами по краям, и записывает результат в output.txt. Если на вход ей дан текст: "содержащий, например, www.ya.ru, то" на выходе должен оказаться текст: "содержащий, например, [www.ya.ru] , то".
(3 балла) напишите функцию split_sentences, которая получает на вход текст и возвращает список предложений в нём. Функция должна быть хорошей, т.е. делить текст по любым осмысленным знакам препинания!.. Функция должна оставлять пунктуацию в конце предложения. Пример:
1 text = u"напишите функцию `split_sentences`, которая получает на вход текст и возвращает список предложений в нём. Функция должна быть хорошей, т.е. делить текст по любым осмысленным знакам препинания!.. Функция должна оставлять пунктуацию в конце предложения. Пример:" 2 sentences = split_sentences(text) 3 4 if sentences[1] == u"Функция должна быть хорошей, т.е. делить текст по любым осмысленным знакам препинания!..": 5 if sentences[2] == u"Функция должна оставлять пунктуацию в конце предложения.": 6 print "OK"