Инструкция по токенизации

Материал из OpenCorpora
Перейти к навигации Перейти к поиску

Общие положения

Предложение делится на токены. Токен - это минимальная линейная единица членения предложения в нашем проекте. Внутри токена не может быть пробельных символов.

Токенами являются:

1.1 Словарные слова, в том числе, и слова с дефисом или другими знаками внутри

1.2 Несловарные цепочки символов из одного алфавита - кириллицы или латиницы, но не обоих сразу.

1.3 Одиночные знаки препинания: точка, запятая, тире, восклицательный знак, вопросительный знак, кавычки, скобки, двоеточие, точка с запятой.

1.4 Числа:

  • десятичные дроби, у которых внутри разделитель целой и дробной частей - точка или запятая
  • целые числа, содержащие знаки, обозначающие границы разрядов.

1.4.1 Исключение: если в числе есть пробелы. По пробелам ставим границы токенов и переносим это явление в сферу интересов синтаксиса.

1.4.2 Исключение: простые дроби делим

1.5 Плюс и минус перед числом (т.е. "-10" разбивается на 2 токена).

1.6. Знаки, обозначающие единицу измерения (% $ …).

1.7 Составные знаки препинания: многоточие, смайлики, …

1.8 Имена собственные, содержащие внутри знаки препинания (Яндекс.Деньги, О.С.П.-студия, Санкт-Петербург, Нью-Йорк, …). NB: это не касается фамилий - см. п. 2.3.

1.9 Химические формулы, обозначающие вещество (H2O, H2SO4, ...).

1.10 Интернет адреса: e-mail, URL, URI ([email protected], http://www.chaskor.ru, …).

1.11 Точка после сокращённого слова (т.е. "т.к." разбивается на 4 токена).

1.12 “во-первых”, “во-вторых”, “из-за”, “что-то”, “1-й”, “2-й”, …

1.12.1 если после числа через дефис написано падежное окончание, то его не нужно отделять от числа (“2-е”, “98-му” - не делим). Если через дефис идёт следующее слово, то нужно поделить на три токена: “98-место” (=девяносто восьмое место) - делим на “98” “-” “место”.

1.12.2 "150-летний", "3-метровый", "33-километровый", "1833-километровый" - не нужно делить. Но: из цепочки "33-х километровый" получится два токена, т.к. там стоит пробел.

1.13 Составные прилагательные: “кисло-сладкий”, “красно-белый”, … (если не 2.2)

1.14 Даты и время: 01/01/01, 01.01.01, 1930-х, 23:59, …

1.15 Фонетические транскрипции, если они явно не разделены пробелами в источнике: н[ʌ]га, [ ŋ ], / k /, / a o u e i ы /, … Скобки и косые черты отделяем всегда, если они не находятся внутри “транскрипции”, как в примере н[ʌ]га .

1.16 Фамилии с апострофом внутри. Например: “Д’Артаньян”, “О’Хара”.

1.17 Цепочки вида “какое-то слово” + фамилия и "какое-то слово" + географическое название (или слово, образованное от географического названия).

Например:

  • не нужно делить: “эрзац-Меркьюри”, “недо-Путин”, "пост-Византийских", "нью-петербургство"

1.18 Десять в степени: 10-2, 10333 и т.д..

1.19 Цепочки вида "название буквы греческого/иного алфавита", дефис, существительное. Например: "альфа-банк", "тау-нейтрино", "бета-версия".

Следующие цепочки необходимо разделять на несколько токенов, даже если они написаны без пробелов

2.1 цепочки, заканчивающиеся на “-то”, “-таки”, “-ка”, “-с”, “-де” … если они не являются словарными словами (т.е. если подсвечены жёлтым цветом).

Напртмер:

  • нужно поделить: “они-то”, “подойди-ка”, “он-таки”, “точно-с”, “он-де”

2.2 несколько одинаковых слов, написанных через дефис, если такой формы нету в словаре (если вся цепочка подсвечена жёлтым цветом).

Например:

  • нужно поделить: “много-много”, “красный-красный” (нет в словаре)
  • не нужно делить: “ха-ха-ха” (есть в словаре)

2.3 составные фамилии, написанные через дефис или слэш, которых нет в словаре.

Например:

  • нужно поделить: “Андерсон-Романова” (нет в словаре)
  • не нужно делить: “Римский-Корсаков” (есть в словаре)

2.4 составные имена, написанные через дефис или слэш.

Например:

  • нужно поделить: “Луи-Филипп”, “Анна-Мария-Луиза”

Существительные, написанные через дефис

Если токен состоит из двух существительных, написанных через дефис, то решение о разделении его на три токена принимается следующим образом:

3.1 если токен есть в словаре OpenCorpora (не подсвечен жёлтым цветом), то разделять не нужно.

3.2 если токен подсвечен жёлтым цветом (= его нет в словаре OpenCorpora), то нужно поискать его в Яндекс.Словарях (http://slovari.yandex.ru). Если в каком-то из словарей есть словарная статья с таким заголовком, то делить не надо. Если такой словарной статьи нет, то надо.

3.2.2 Исключением из предыдущего (3.2) правила является ситуация, когда в Яндекс.Словарях есть словарные статьи с таким заголовком, но заголовок при этом является именем собственным (названием фильма, журнала, …). Если словарной статьи с нарицательным словом не найдено, то токен надо поделить. Пример: http://slovari.yandex.ru/%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0/ .

Вопросы

4.1 "по-русски"

4.2 "болезненно-жалко"