![](/user_photo/2706_HbeT2.jpg)
Символи в регулярних виразах. Таблиця 2
Символ |
Функція |
\b |
Межі слова |
\d |
Будь-яка десяткова цифра (== [0-9]) |
\D |
Будь-яка не десяткова цифра (== [^0-9]) |
\s |
Будь-який символ пробілу (== [ \t\n\r\f\v] |
\S |
Будь-який не символ пробілу (== [^ \t\n\r\f\v]) |
\w |
Будь-який символ літери чи цифри (== [a-zA-Z0-9_]) |
\W |
Будь-який не символ літери чи цифри (== [^a-zA-Z0-9_]) |
\t |
Символ табуляції |
\n |
Символ нової стрічки |
Функція nltk.regexp_tokenize()подібна до re.findall() (у випадку використання останньої для токенізаці). Але, nltk.regexp_tokenize() є більш ефективною для здійснення цієї операції, та не потребує використання круглих дужок.
|
У випадку використання «verbose flag», символ ' ' пробілів потрібно замінити на \s. Функція regexp_tokenize() може містити не обов’язковий параметр gaps . Коли цей параметр має значення True, регулярний вираз виділить проміжки між словами, аналогічно до re.split().
Для полегшення розробки токенізаторів існує можливість доступу до текстів, які токенізовані вручну. Порівнюючи результати токенізації з таким «gold-standard» токенізатором можна оцінити якість роботи програми. Набір корпусівNLTK включає приклади Penn Treebank , а саме тексти Wall Street Journal (nltk.corpus.treebank_raw.raw()) та їх токенізовану версію (nltk.corpus.treebank.words()).
#7
|
||
|
|
|
||||
|
|
||||
|
|
>>> foo = ['Monty', 'Python'] >>> bar=foo >>> id(foo) 13276784 >>> id(bar) 13276784 >>> foo = ['Monty', 'Python'] >>> bar=foo[:] >>> id(foo) 13238144 >>> id(bar) 13258544 |
|
||
|
Використовуючи функцію id() можна легко зрозуміти відмінності між об’єктами і побачити що елементи списку не є ідентичними - списки мають різні ідентифікатори:
|
|
||
|
Якщо if вираз твердження задовольняється то, Python ніколи не буде робити спроби перевірити чи справджується elif вираз. На екран «2» ніколи не буде виведено. Навпаки, якщо замінити elif на if, на екран буде виведено і «1» і «2». elif вираз потенційно є більш інформативний ніж простий if вираз; коли він справджується то це означає не тільки те що умова задовольняється але і те, що умова if виразу не справджується.
Вбудовані функції all() та any() можуть бути застосовані до списку або іншої послідовності для перевірки, чи всі, або будь-який з елементів задовольняють умову:
|
|
Кортежі створюються за допомогою ком (оператор - кома) або пустих дужок t=().
|
Способи ітерування елементів послідовностей Таблиця 1:
Вираз Python |
Пояснення |
||||||||||||||||||||||
for item in s |
Проітерувати елементи s |
||||||||||||||||||||||
for item in sorted(s) |
Проітерувати впорядковані елементи s |
||||||||||||||||||||||
for item in set(s) |
Проітерувати унікальні елементи s |
||||||||||||||||||||||
for item in reversed(s) |
Проітерувати зворотньо впорядковані елементи s |
||||||||||||||||||||||
for item in set(s).difference(t) |
Проітерувати елементи s, які не входять в t |
||||||||||||||||||||||
for item in random.shuffle(s) |
Проітерувати випадково впорядковані елементи s |
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
Якщо необхідно перенести рядок поза дужками, то необхідно додати круглі дужки на початку і в кінці стрічки програми або вставити зворотну ліву риску в місці переносу:
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
>>> help(get_text)
Help on function get_text:
get_text(file)
Read text from a file, normalizing whitespace
and stripping HTML markup.
|
|
|
|
||
|
|
|
|
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|