Kodomo

Пользователь

Регулярные выражения. Задание

  1. (2 балла) напишите программу, которая выводит на экран столбиком все находки выбранного регулярного выражения из файла words.txt. Регулярное выражение задаётся в переменной в первых строках программы. Опробуйте эту программу на тексте этой страницы с регулярными выражениями для: русских слов, английских слов, дат.

  2. (3 балла) поправьте функцию token_type так, чтобы она дополнительно выделяла новые типы токенов: дата, ссылка, email, число процентов. Запустите токенизатор (программу, которая выдаёт токены и их типы – она у вас уже несколько раз написана) с этой функцией на тексте из 100~200 словоупотреблений и посчитайте для каждого правила с регулярными выражениями количество TP, FP, FN в получившейся выборке.

  3. (2 балла) напишите программу, которая открывает файл words.txt, читает его, все гиперссылки берёт в квадратные скобки и выделяет пробелами по краям, и записывает результат в output.txt. Если на вход ей дан текст: "содержащий, например, www.ya.ru, то" на выходе должен оказаться текст: "содержащий, например, [www.ya.ru] , то".

  4. (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"