Авт. обработка текстов на естественном языке и комп. лингвистика. Большакова (2014) (1185448), страница 43
Текст из файла (страница 43)
Можно выделить несколько видов сокращений. Фиксированныесокращения не изменяют своей формы записи. Это, к примеру, «и т.д.», «и т.п.»,«т.о.». Найдя подобные обороты, мы можем заменить их отдельными словами. Приэтом приведенные примеры лучше заменить одним сложным словом, так как ониявляются неразрывными неизменяемыми словосочетаниями и обрабатываются какодна лексическая единица. Заменив их на несколько слов, мы можем получитьнеоднозначность анализа структуры предложения.Изменяемые сокращения представляют собой сокращение и некоторуюобязательную, но произвольно изменяющуюся часть.
Это, например, сокращения вдатах, именах, названии населенных пунктов и географических мест: «о. Врангеля»,«г. Москва», «1904 г.», «г-н Герострат», «А.С. Пушкин». Часть из сокращений имеетсмысл развернуть в полное слово. При этом может возникнуть проблема сприписыванием параметров развертываемому слову. «1904 г.» может обозначать«год», «году», «года» и т.д.Такие сокращения, как «и т.д.», «1904 г.» и прочие, могут встречаться в концепредложения. При этом точка будет обозначать как конец предложения, так и точку всокращении (для примера см.
последнее предложение предыдущего абзаца). В связи сэтим следует ввести дополнительный параметр в правила – может ли данноесокращение заканчивать предложение.133Устранив все «лишние» точки и расставив маркеры о возможном окончаниипредложений, мы можем считать, что все точки, восклицательные и вопросительныезнаки или маркеры, после которых идет слово с большой буквы, заканчиваютпредложение.По окончании выделения отдельных слов имеет смысл провести свертку частитаких слов.
Это необходимо сделать, чтобы облегчить работу синтаксическомуанализу.Во-первых, можно свернуть числительные, написанные в виде слов, превративих в числовое написание. Во многих языках мира словесное написание числительныхвыглядит следующим образом. Изначально присваиваем текущей и итоговой сумменулевые значения. При этом итоговая сумма будет хранить окончательный результат,а текущая сумма – промежуточное значение при подсчете количества сотен, тысяч,миллионов и т.д. Если следующее за текущим числительным слово обозначаетчислительное меньшее, чем текущее, то его следует прибавить к текущей сумме.
Еслиследующее слово обозначает числительное большее, чем текущее, то текущую суммунеобходимо умножить на это большее числительное и прибавить к итоговой сумме.Текущая сумма при этом обнуляется. По окончании числа текущая суммаприбавляется к итоговой.Стопятнадцатьтысячдвестиодин100+15*1000200+1=115000+201=115201Для дробных числительных следует различать рациональные и десятичныедроби.
Для дробных числительных основная проблема состоит в том, что они состоятиз двух чисел, первое из которых выражается счетным числительным, а второе —порядковым. При этом в общем случае довольно сложно определить их границу.Основным критерием может служить тот факт, что первое число может быть меньшевторого (семь восьмых, пятьсот шесть девятьсот одиннадцатых). Однако когдачислитель больше знаменателя, задача может не иметь однозначного решения (одинмиллион двести восемнадцать тысяч трехсотых может быть эквивалентно1000000/218300 и 1218000/300). К счастью, большинство подобных дробей легкосокращаются и приводятся к более очевидному варианту.Для десятичных дробей на этапе анализа числительных необходимо ввестиразделитель, показывающий место, с которого начинается дробная часть (целых врусском языке, point в английском).
Сама дробная часть в различных языкахвыражается по-разному. Так, в русском языке после разделителя будет идтирациональная дробь, вторая часть которой выражается единственным словом(десятых, тысячных, стомиллионных. ...). Также возможна такая же запись дроби, каки в английском языке: после разделителя перечисляются цифры в том порядке, вкотором они идут после запятой (точки). Но такая форма записи редко встречается написьме, особенно в человеко-машинном диалоге.Для немецкого языка указанный алгоритм работать не будет в связи с тем, чтопорядок слов в немецких числительных несколько иной.
Так, единицы в нем ставятсяперед десятками, например, «fünf und zwanzig» - «пять и двадцать». Аналогично и ванглийском языке могут встречаться конструкции, включающие в себя слово «and»:«twenty and five». В связи с этим в алгоритм необходимо вводить слова,обозначающие сложение и даже умножение текущей и последующей сумм. Следует134помнить, что подобные слова сами могут вносить некоторую неоднозначность.
Так,например, во фразе «Twenty and five vehicle» в качестве ответа на вопрос «How manypeoples goes?» будет иметься в виду двадцать человек и пять машин.Кроме того, слово «один» (и аналогичные ему в других языках) имеетсобственную семантику. С одной стороны, оно может употребляться для обозначениянекоторого объекта: «Дай одну», «В одном зоопарке, не помню каком,…». С другойстороны, оно может опускаться в числительных: обычно говориться «тысяча пять», ане «одна тысяча пять», хотя второй вариант также употребим, особенно вформальных документах.Аналогично слова «десяток», «сотня» и «тысяча» могут выступать в ролисуществительных: «Во главе пяти сотен воинов с осадными орудиями он подошел кстенам города и начал правильную осаду».
В данном примере слово «сотня» означаетвоинское подразделение, а не количество людей.При обработке числительных следует помнить, что в тексте может встречатьсязапись групп числительных: телефоны, IP-адреса и т.п., записанные не числами, асловами. Т.е. по ходу выполнения алгоритма необходимо отслеживать, чтоследующее число не принадлежит одной группе (десятки, сотни…) с предыдущим итекущая сумма не больше итоговой. Например: «Сто девяносто два сто шестьдесятвосемь ноль один». Однако подобная запись может обозначать как IP-адрес192.168.0.1, так и число 19216801, хотя наиболее вероятным с точки зренияпрагматики в такой ситуации представляется первый вариант. Второй вариант болеевероятен при группировке цифр тройками для выделения тысяч, миллионов и т.д.,например, 108.891.452. В этом примере не может быть записан IP-адрес, так как ондолжен содержать в себе четыре группы цифр от 0 до 255.
Приведенная запись чиселхарактерна для финансовых расчетов и может предполагать до или после себяобозначения денежной единицы ($108.891.452 или 108.891.452 руб.).Семантически нагруженные группы цифр: даты, номера телефонов, IP-адреса ит.д. также имеет смысл объединять в одно слово. Их можно объединять по шаблонам.Например, xx/xx/xxxx или xx.xx.xxxx для дат, xxx-xxxx, +x(xxx)xxx-xxxx, xxx-xx-xxдля телефонов и т.д. Это также уменьшит количество слов, поступающих насинтаксический анализ и, как следствие, упростит его работу.Превращая слова в цифры, следует иметь в виду, что слова могут подчеркиватьроль цифр в слове. Они могут играть роль порядковых или счетных числительных.
Всвязи с этим следует приписывать различную часть речи в зависимости от того, какоеслово идет последним в группе. Так, «сто один» будет счетным числительным, а «стопервый» - порядковым.Еще одной задачей предсинтаксического анализа является обработкасловосочетаний.
Можно выделить следующие виды словосочетаний: неразрывныенеизменяемые, неразрывные изменяемые и разрывные. Неразрывные неизменяемыесловосочетания состоят из одних и тех же словоформ, идущих одна за другой.Например, «таким образом», «так сказать», «не взирая на» и т.д. В составнеразрывных неизменяемых словосочетаний могут входить и знаки препинания: ср.«для того чтобы» в начале предложения и «для того, чтобы» в середине. Для поискаподобных словосочетаний необходимо просто проанализировать входной текст.Найденные словосочетания имеет смысл обрабатывать дальше как единуюсловоформу.135Кроме того, словосочетания можно разделить на открытые и закрытые. Взакрытых словосочетаниях отдельные слова теряют собственный смысл и могуттрактоваться только в составе словосочетания. При этом слова в открытыхсловосочетаниях сохраняют все лексические связи и, как следствие, могут подчинятьсебе другие слова.
При этом может происходить разрыв словосочетания.Следует опасаться неоднозначности у словосочетаний. Так, например, сочетание«так сказать» может встретиться в фразе вида «так сказать нельзя», хотя как вводнаяконструкция оно должно быть выделено запятыми.Неразрывные изменяемые словосочетания состоят из идущих подряд словоформ,образованных от фиксированных нормальных форм, но в зависимости от контекстаобладающих различными параметрами. Например, «бить баклуши» («бил баклуши»,…), «наивная модель мира», «искусственный интеллект» и т.д. Обычно слова внеразрывном изменяемом словосочетании согласуются. При желании можновыделить главное и зависимые слова, однако свертка подобных словосочетанийпозволяет, как и в предыдущем случае, сократить количество синтаксических единици тем самым упростить задачу синтаксического анализа. Заметим, что грань междуизменяемым словосочетанием и простой синтаксической конструкцией довольнотонка.
Так, если «Черный квадрат» можно отнести к словосочетаниям, то «красныйквадрат» таковым являться не будет. Дело в том, что словосочетания имеет смыслвыделять лишь в тех случаях, когда сдвигается семантика или прагматика предметов,указанных в словосочетании. «Черный квадрат» обозначает название картины иявляется именем собственным (кстати, в такой роли он должен быть обрамленкавычками), а красный квадрат является просто квадратом, одно из свойств которого– цвет – обладает значением «красный». Аналогично, если искусственный интеллектявляется специализированной отраслью знаний, то, например, обширный интеллект –это интеллект, обладающий свойством обширности. Как всегда и здесь не обходитсябез неоднозначности.