Автоматическая обработка текста Предварительная обработка текста Предварительная обработка текста графематический анализ служебные символы токенизация классификация токенов Графематический анализ . . . The U S. may sell a record $3 25 trillion of debt this fiscal year ending Sept 30, according to primary dealer Goldman Sachs Group Inc. INDEX CHANGE The 10-year note yielded 3.71 percent as of 7:56 a.m. in London, according to data . . compiled by Bloomberg The 3 125 percent security maturing in May 2019 traded at a price of 95 4/32. The yield yesterday dropped eight basis points. <br><br>The MSCI World Index of equities fell 0.3 percent and the Nikkei 225 Stock Average slipped 2.9 percent. <br><br>Industrial production dropped 1 percent in May, the seventh month of declines , , , . Italy's FTSE MIB Index lost 613.73 or 3 percent, to 19 770 49. The yen climbed to 133.46 per euro as of 7:40 a.m. in London from 134.99 yesterday in New York. It earlier rose to 132.74, the strongest level since May 28. The yen advanced 1.5 percent to 96.35 per dollar, the biggest gain since May 29. Japan's currency rose 1.6 percent to 60.76 against the New Zealand dollar, and strengthened 1.8 percent to 76.44 versus Australia's currency. Графематический анализ. Задачи Задача: получить выборку полных словоформ из массива текстов базы данных. выполняет три функции: стоп-слов в тексте; 2. разбиение данных на три потока (n потоков); 3. индексация каждого потока. Единицей графематического анализа является цепочка символов, выделенная с двух сторон пробелами. Выделенная цепочка символов подвергается последовательной обработке эвристическими правилами: отсечь знаки пунктуации, проверить присутствие гласных внутри цепочки, чередование верхнего и нижнего регистров и т.д. В зависимости от результатов обработки полученная цепочка символов направляется в один из трех потоков данных: - цифровые и символьные комплексы (‘кг’, ‘ст.’, ’12.01.99’); - аббревиатуры - названия государств, организаций, предприятий (‘СССР’, ‘ЮНЕСКО’, ‘ДорСтройСервис’); - полные словоформы 1. отсечение Графематический анализ 1. 2. 3. разделение входного текста на элементы (слова, разделители и т.д.); удаление нетекстовых элементов; выделение и оформление нестандартных (нелексических) элементов, например: элементов форматирования – жирность, курсивность, подчёркивание; структурных элементов текста – заголовков, абзацев, примечаний; различных элементов текста, не являющихся словами (числа, даты в цифровых форматах, буквенно-цифровые комплексы, и т.п.); имен (имя, отчество), написанных инициалами; иностранных лексем, записанных латиницей; и т.д. 4. сборка Лекция 3 например, слов, написанных в разрядку АОТ Пример 1 Русское Назва назван Объяснение Примеры ние ие RLE Иван русская лексема, присваивается ЛЕ последовательностям, состоящим из кириллицы LLE иностранная лексема, John ИЛЕ присваивается последовательностям из латиницы DEL РЗД разделитель. "*', '=', '_' PUN знак препинания, присваивается ".", '[', ']', '(', ')', ЗПР последовательностям, состоящим из одинаковых '-', ':', ';' знаков препинания DC цифровой комплекс, присваивается 1234 ЦК последовательностям, состоящим из цифр DSC 34h цифро-буквенный комплекс, присваивается ЦБК последовательностям, состоящим из цифр и букв GRAU сложный узел, присваивается последовательностям, NK не обладающим вышеперечисленными признаками Пример 2 #Cap_Letter 110 (?<'_Chain_el''_Cap_Letter'>(?<'STOP_DOT'>[Case.SCap])&".") //выделяет инициалы (B.), буквы в названиях типов коммерческих организаций (P.,C., A.,G.), считаем, что это контекст для точки не в конце предложения #ABBR_dot 120 (?<'_Chain_el''_ABBR_dot'>(?<'STOP_DOT'>[RX"\[A-Z\]"]\[a-z\])&".") // выделяет двухбуквенные аббревиатуры с точкой, возможно правильней задавать их списком, но их достаточно много Пример 2 • (?<'_NUMBER_MLN_DEC'>[Case.Number]((&"."|&",")[Case.Number])/0-1) • (?<'_Cap_Word''_Chain_el'>{!'_Cap_list_abbr'[Case.Cap]}) • //слова с большой буквы, содержащие не меньше 2-х букв, не аббревиатура • (?<'_Cap_ABBR''_Chain_el'>[Case.Mixed]) • //McDonalds • (?<'_Cap_UPPER''_Chain_el'>[Case.Upper]) • //USA • (?<'_Chain_el''_Cap_Word'>[Case.Cap]&"-"[]) • //слова с дефисом, например, двойные имена или фамилии Marry-Ann Графематический анализ Примерный перечень элементов текста, требующих специальной обработки Адрес докладчика/унив-та Страницы форзаца Примечания Тезисы докладов отдельным файлом Зачеркивания Перечисления Титульные листы Текст списком Сами рисунки литературы Слова типа «рак1», «рак2», Nкластеры Списки Цифры Таблицы Иностр. язык в тексте Формат Адреса, ссылки, гиперссылки Римские Сокращения, Пример аббревиатуры поиска Значки для формул Лекция 5 в тексте Рус. яз. цифры в иностранном тексте Формулы Названия Схемы 9 рисунков Корпусная лингвистика Грфематический анализ. Токенизация Слова с дефисом: 1) по-моему, по-пушкински, 2) Петербургу-Петрограду-Ленинграду, 3) бело-желтым, штабс-капитана, удовлетворенносмущенное, штабс-капитан Числа, "шаблоны": 1945г., тел. 555-33-22 сокращения: г., вв. и т.п. ст. особенности расстановки стилей: разрядка: Д О Л Г О дополнительные "внутрисловные" знаки: м-е-е-е-дленно, о'key, he's знаки препинания вкрапления другого алфавита Графематический анализ Cложности: обработка дефиса и пробела; выделение составных предлогов, устойчивых оборотов, аналитических форм и др.; иноязычные фрагменты; нетекстовые элементы. Лекция 3 АОТ Графематический анализ 1. Межсловный дефис: объединительная функция (буква)? кто-то, где-нибудь, давным-давно, бакш-таг, брейд-вымпел, генерал-аншеф или разделительная функция (знак препинания)? старик-художник, словарь-справочник, девочка-пионерка 2. Пробел: объединительная функция (буква)? сто двадцать пять или разделительная функция? русский язык Лекция 3 АОТ Часть 2. Индекс. Поиск в корпусе Найти: «дом» Можно загрузить текст в Word искать там: Правка: найти Что найдем? форму «дом» или часть слова, совпадающего с последовательностью букв «дом» - народом Программа ищет ту подстроку, которую мы ей зададим (точное совпадение) ??? Как найти дома, доме, домом и т.п.? Можно использовать специальный язык «дом.*» Что найдем? Дома, доме и т.п. + домашний, домовой, домолоть … Часть 2. Индекс char* strstr(char *big, char *little) { char *x, *y, *z; for (x = big; *x; x++) { for (y = little, z = x; *y; ++y, ++z) { if (*y != *z) break; } if (!*y) return x; } return 0; } В этой функции языка C текст строки big просматривают слева направо и для каждой позиции x запускают последовательное сравнение с искомой подстрокой little. Для этого, двигая одновременно два указателя y и z, попарно сравнивают все символы. Если мы успешно дошли до конца искомой подстроки, значит она найдена. Индекс. Полнотекстовый поиск Хотя прямой просмотр всех текстов – довольно медленное занятие, не следует думать, что алгоритмы прямого поиска не применяются в интернете. Норвежская поисковая система Fast (www.fastsearch.com) использовала чип, реализующий логику прямого поиска упрощенных регулярных выражений [fastpmc], и разместила 256 таких чипов на одной плате. Это позволяло Fast-у обслуживать довольно большое количество запросов в единицу времени. (И. Сегалович) Часть 2. Индекс Xml формат с разбивкой на предложения и токенизацией: <?xml version="1.0" encoding="utf-8"?> <sentences> <p> <se id="31016"> <w id="1" lemma="" morph="" comment=""> <rel id_head="" type=""/>Нам</w> ... <w id="16.9" lemma="" morph="" comment=""> <rel id_head="" type=""/>.</w> </se> … </p> Индекс. Инвертированный файл Эта простейшая структура данных, несмотря на свое загадочное иностранное название, интуитивно знакома любому грамотному человеку, так и любому программисту баз данных, даже не имевшему дело с полнотекстовым поиском. Первая категория людей знает, что это такое, по «конкордансам» алфавитно упорядоченным исчерпывающим спискам слов из одного текста или принадлежащих одному автору (например «Конкорданс к стихам А. С. Пушкина», «Словарь-конкорданс публицистики Ф. М. Достоевского»). Вторые имеют дело с той или иной формой инвертированного списка всякий раз, когда строят или используют «индекс БД по ключевому полю».