вариабельности сердечного ритма и сокращение площади, т. е. при попадании алкоголя организм человека испытывает существенные изменения. На третьем этапе воздействие алкоголя и уровень этих изменений существенно растет. Имеется некоторая согласованность расчетов в рамках ТХС и энтропии Шенона, но теория хаоса демонстрирует более существенные изменения квазиатракторов.
Литература
1. Можно ли моделировать и измерять хаос в медицине / В.М. Еськов [и др.] // Вестник новых медицинских технологий.- 2012.- Т. 19.- № 2.- С. 412-414.
2. Оценка физиологических параметров человека в условиях влияния физических нагрузок методом расчета расстояний между центрами квазиаттракторов / В.М. Еськов [и др.] // Вестник новых медицинских технологий.- 2012.-Т.19.- № 1.- С. 13-18.
3. Разработка и внедрение новых методов теории хаоса и самоорганизации в медицину и здравоохранение / В.М. Еськов [и др.] // Северный регион: наука, образование, культура.- 2013.- №1.- С. 150-163.
4. Сравнительный анализ стохастических и хаотических матриц квазиаттракторов поведения вектора состояния организма коренного и пришлого населения Югры/ В.М. Еськов [и др.] // Системный анализ и управление в биомедицинских системах.- 2012.- Т. 11.- № 3.- С.586-591.
5. Неопределённость и непрогнозируемость - базовые свойства систем в биомедицине / О.Е. Филатова [и др.] // Сложность. Разум. Постнеклассика.- 2013.- №1.- Р.67-82.
References
1. Es'kov VM, Baltikova AA, Burov IV, Gavrilenko TV, Pash-nin AS. Mozhno li modelirovat’ i izmeryat’ khaos v meditsine? [Is it Possible Tosimulateand Measurechaosin Medicine?]. Vestnik no-vykh meditsinskikh tekhnologiy. 2012;19(2):412-4. Russian.
2. Es’kov VM, Burov IV, Kozlova VV, Volkova IYu, Yarul-lina LN. Otsenka fiziologicheskikh parametrov cheloveka v usloviyakh vliyaniya fizicheskikh nagruzok metodom rascheta rasstoyaniy mezhdu tsentrami kvaziattraktorov [The Assessment of Human Physiological Indices Under Physical Activities with Applying the Method of Quasiattractors' Centre to Centre Distance Calculation]. Vestnik novykh meditsinskikh tekhnologiy. 2012;19(1):13-8. Russian.
3. Es’kov VM, Dobrynina IYu, Drozhzhin EV, Zhivog-lyad RN. Razrabotka i vnedrenie novykh metodov teorii khaosa i samoorganizatsii v meditsinu i zdravookhranenie. Severnyy region: nauka, obrazovanie, kul’tura. 2013;27(1):150-63. Russian.
4. Es’kov VM, Gazya GV, Sokolova AA, Vasil’eva AYu. Sravnitel’nyy analiz stokhasticheskikh i khaoticheskikh matrits kvaziattraktorov povedeniya vektora sostoyaniya organizma korennogo i prishlogo naseleniya Yugry. Sistemnyy analiz i upravlenie v biomeditsinskikh sistemakh. 2012;11(3):586-91. Russian.
5. Filatova OE, Khadartsev AA, Es’kov VV, Filatova DYu. Neopredelennost’ i neprognoziruemost’ - bazovye svoystva sistem v biomeditsine. Slozhnost’. Razum. Postneklassika. 2013;1:67-82. Russian.
УДК 303.722.8; 519.683.5; 614.1
АНАЛИЗ АЛГОРИТМА РАСПОЗНАВАНИЯ ТЕКСТА В БАЗЕ ДАННЫХ В .А. ХРОМУШИН
Медицинский институт, Тульский государственный университет, 300012, Россия, г. Тула, ул. Болдина, 128, тел.: +7-4872-33-32-51, e-mail: vik@khromushin.com
Аннотация. В статье анализируется алгоритм распознавания текста методом «скользящего увеличивающегося окна», используемого для кодирования множественных причин смерти. Используемый алгоритм динамически «настраивает» степень совпадения и находит наиболее похожий вариант, а также позволяет распознавать текст с грамматическими ошибками и с переставленными словами в формулировке причины смерти. Указанный алгоритм реализован по международному проекту в составе программного обеспечения регистра смертности. Приведенный анализ алгоритма распознавания указывает на заметное снижение надежности распознавания при сочетании грамматической ошибки и переставленных словах в тексте. В результате искомая в базе фраза будет не на первой строке итоговой таблицы с наиболее похожими формулировками. Для повышения распознаваемости текста при таких ошибках предлагается два подхода. Первый подход основан на разделении фразы на слова и распознавании по отдельности по каждому слову с последующим обобщением результата. Показано, что предлагаемый алгоритм не чувствителен к перестановке слов и имеет достаточный запас возможностей в распознавании текста с грамматическими ошибками. Второй подход позволят накапливать результирующую весовую оценку более быстрыми темпами, чем увеличение «сканирующего окна» за счет возведения в степень суммируемого значения величины окна. Оба подхода достигают цели по повышению надежности распознавания. К реализации рекомендован второй подход.
Ключевые слова: распознавание, алгоритм, база данных, поиск, оценка.
ANALYSIS OF ALGORITHM OF TEXT RECOGNITION IN DATABASE V.A. KHROMUSHIN
Tula State University, Medical Institute, Tula State University300013, Russia, Tula street. Boldin, 128, tel.: +7-4872-33-32-51, e-mail: vik@khromushin.com
Abstract. The paper analyzes the recognition algorithm of text by means of method "slitherring widening window" to encode multiple causes of death. The algorithm used dynamically "adjusts" the degree of convergence and finds the most similar variant, and also allows to recognize text with grammatical mistakes and ceased words in the formulation of causes of death. The algorithm was
implemented on an international project within the software register mortality. The above analysis of the recognition algorithm indicates a noticeable decrease in the detection reliability with a combination of grammatical errors and permuted words in the text. As a result of the sought for in the basis of the phrase is not on the first line of the final table with most similar formulations. To increase the recognizability of the text when such errors is proposed two approaches. The first approach is based on the separation of phrases, words and recognition separately for each word followed by a generalization of the result. It is shown that the proposed algorithm does not sensitive to the permutation of words and has sufficient reserve possibilities of recognition of the text with grammatical mistakes. The second approach will help accumulate the resulting weight rating more rapidly than the increase in the «scanning window by exponentiation summered value of the size of the window. Both approaches reach the goal of increasing the reliability of recognition. To implement the second approach is recommended.
Key words: recognition, algorithm, database, searching, estimation.
Введение. Задача распознавания текста в базе данных встречается в различных областях деятельности. В здравоохранении России такой режим распознавания необходим, реализован и используется много лет в кодировании причин смерти при вводе текста формулировки причин смерти. По этой формулировке в базе международной статистической классификации болезней и проблем, связанных со здоровьем (МКБ-Х) осуществляется поиск наиболее похожего текста, который вместе с кодом заносится в медицинское свидетельство о смерти. Аналогичный режим используется в пакете программ, используемом в США (разработчик -фирма СЭС).
В здравоохранении Тульской области режим распознавания текста используется в регистре смертности MedSS, наряду с автоматическим определением первоначальной причины смерти (аналогично программному обеспечению США) [1-6].
Объект, методы и средства исследования. Ранее разработанный нами и используемый алгоритм распознавания способен искать наиболее подходящий вариант из базы данных. В отличие от алгоритмов нечеткого сопоставления строк (например, признанные методы Гоннета, Лан-дау-Вишкина, Машека-Патерсона, Бейза-Ейтса) не требует от пользователя выбора уровня достоверности и, при неправильно указанных параметрах, может не выдать никаких положительных результатов. Используемый нами алгоритм динамически «настраивает» степень совпадения и находит наиболее похожий на заданную строку вариант.
Это реализовано посредством методом так называемого «скользящего увеличивающегося окна». Его суть в том, что исходной поисковой строке выделяются сочетания букв для поиска и, затем, осуществляется поиск выбранного сочетания символов [3, 4, 6].
Для этого в исходной строке сначала выделяется биграмма, которая состоит из первых двух букв заданного критерия поиска. После чего определяются записи таблицы, в которой присутствует данное сочетание букв, и их вес в исходном индексе записей увеличивается. После окончания поиска выбирается следующая биграмма, состоящая уже из второй и третьей буквы. Осуществляется аналогичный поиск. И так далее.
Таким образом, в исходной строке для поиска поочередно выбираются все пары составляющих ее символов. Это напоминает просмотр переданной строки для поиска окошком размером всего в два символа. В результате поиска биграммами мы получаем, что ячейки, в которых найдено больше совпадений имеют большее значение по сравнению с теми, где разыскиваемые биграммы встречались редко. У ячеек, где не было найдено ни одного совпадения индекс остается равным нулю.
Как показывает практика, в результате поиска биграмм происходит незначительное «расслоение» среди значений индексов ячеек. Так же невелика точность поиска, основанная на таком методе. Для решения последних задач
предлагается увеличивать размер «окошка» в поисковой строке, как это показано на рис. 1.
В результате на некотором шаге по базе будет искаться уже слово. В случае его нахождения индекс определенных ячеек будет увеличен. Если же при вводе поисковой строки были допущены грамматические ошибки, то слово целиком найдена не будет. Но важно отметить, что при этом будут иметь довольно высокий индекс ячейки, содержащие подобные строки. Это произойдет в результате предыдущих поисков с более малым размером поискового «окна», так как будет произведен поиск подстрок до и после грамматической ошибки, исключая ее. Практика показывает, что данный алгоритм работает даже в случае ввода текста с грамматическими ошибками. Кроме того, отличительной особенностью метода является то, что он может находить записи, содержащие те же слова, но в другом порядке.
Шаг 1:
Рис. 2. Весовая оценка результата поиска по тестовой фразе «Сахарный диабет лобильный» с переставленными словами и грамматической ошибкой с алгоритмом, предусматривающим присвоение веса равным величине окна
Для реализации этого алгоритма поиска был разработан на языке Visual C++ соответствующий модуль, встроенный в регистр смертности [5].
Ниже, с целью облегчения понимания алгоритма поиска, приведена реализация алгоритма поиска в виде функции в среде Access:
Function RpzText(KodB As Variant, SprB As Variant) As Double
Dim i As Long, u As Long, XR As Double, pos As Long, TempStr As String XR = 0
For u = 1 To Len(KodB) величина окна u For i = 1 To Len(KodB) - u + 1 последовательное сканирование
TempStr = Mid(KodB, i, u) ' выделение фрагмента в окне шириной u
pos = InStr(1, SprB, TempStr, vbTextCompare) ' поиск If pos > 0 And Len(KodB) >= (i + u - 1) Then XR = XR + u ' накопление результирующей весовой оценки Next i Next u
RpzText = XR / Len(SprB)
End Function
Результат (рис. 2) выводится двойным кликом по полю ввода текста.
Недостатком данного алгоритма поиска следует считать недостаточную по весу оценку результата с другим чередованием слов, что при наличии грамматических ошибок приводит к ошибочному распознаванию. Тем не менее, с этим недостатком можно мериться, поскольку результат будет находиться на последующих строках, как это показано на рис. 1.
Из рис. 2 видно, что требуемый результат находится на второй строке, а не на первой, как это требуется. Необходимо также отметить, что стремление ускорить поиск за счет увеличения начального числа знаков (в приведенной функции RpzText установить u>1) приводит к снижению веса, что свидетельствует о снижении надежности распознавания.
Обсуждение результатов. С целью анализа алгоритма распознавания и возможности его усовершенствования рассмотрим два подхода:
1. Разделение фразы на слова и распознавание по отдельности по каждому слову с последующим обобщением результата.
2. Накапливать результирующую весовую оценку более быстрыми темпами, чем увеличение «сканирующего окна».
Первый вариант определяется желанием сделать алгоритм распознавания не чувствительным к перестановке слов. Раздельное распознавание слов и, как правило, низкая похожесть этих слов во фразе может решить эту задачу. Тогда алгоритму останется функция обнаружения грамматических ошибок, что ему будет сделать легче без распознавания переставленных слов.
Этот вариант совершенствования алгоритма может быть реализован следующим образом:
1. Вводимая фраза и формулировка в базе данных разбиваются на слова. Разделителем слов служит пробел между словами.
2. Первое слово вводимой фразы последовательно сравнивается с каждым словом формулировки из базы данных и подсчитывается вес по указанному выше алгоритму. В результате принимается тот результат сравнения, который имеет наибольший вес. Слово в формулировке базы данных, соответствующее максимальному весу, исключается из дальнейшего сравнения на последующих шагах поиска.
3. Второе слово вводимой фразы последовательно сравнивается с каждым словом формулировки из базы данных с учетом исключенного слова и подсчитывается вес по указанному выше алгоритму. В результате принимается тот результат сравнения, который имеет наибольший вес.
4. Аналогично осуществляется сравнение с последующими словами с учетом исключенных слов на предыдущих шагах поиска.
5. Результаты сравнения по пп. 1-4 суммируются и делятся на суммарное число знаков в формулировке в базе данных без пробелов.
Примечания:
1. При сравнении текстов необходимо минимальное окно сканирования установить в один символ и весом 1 для покрытия таких союзов, как «в», «с», «и», «у», которые часто встречаются в формулировках внешних причин травм и отравлений.
2. При сравнении текстов скобки и запятые не учитывать.
Положенная в основу предлагаемая идея распознавания текста по словам делает алгоритм не чувствительным к перестановке этих слов. Это обстоятельство создает определенный резерв в повышении надежности распознавания при допущенных грамматических ошибках. Тем не менее, разделение фразы на слова уменьшает максимально возможное окно сканирования текста и, соответственно, суммарный вес.
Для того, чтобы оценить результирующий эффект построим таблицу, в которой показаны весовые оценки на каждом шаге расширения окна сканирования.
Таблица 1
Весовая оценка на каждом шаге расширения окна сканирования применительно к выбранной тестовой фразе с переставленными словами и грамматической ошибкой
Величина окна Фраза, разделенная на слова Суммарный вес Всего
1 Сахарный диабет лобильный 8 х 1 = 8 6 х 1 = 6 8 х 1 = 8 30
2 Сахарный диабет лобильный 7 х 2 = 14 З х 2 = 10 6 х 2 = 12 З2
3 Сахарный диабет лобильный 6 х 3 = 18 4 х 3 = 12 З х 3 = 1З 66
4 Сахарный диабет лобильный З х 4 = 20 3 х 4 = 12 4 х 4 = 16 72
З Сахарный диабет лобильный 4 х З = 20 2 х З = 10 3 х З = 1З 70
6 Сахарный диабет лобильный 3 х 6 = 18 1 х 6 = 6 2 х 6 = 12 60
7 Сахарный лобильный 2 х 7 = 14 1 х 7 = 7 21
8 Сахарный 1 х 8 = 8 8
Сумма 8З 5+6 + І20 261
Итого!23 (число знаков в формулировке по МКБ-Х) 11,3478
Конкурирующая формулировка «Диабет сахарный стабильный» при вводе тестовой формулировки «Сахарный диабет лобильный» будет иметь суммарный вес: (85+56+ 120)/24 = 10, 875.
Сравнивая результаты 11,3478 и 10,875, можно заметить, что более высокая весовая оценка с превышением в 1,0435 раз достигается тем, что конкурирующая формулировка более длинная. Это позволило тестовой формулировке занять первую строку в результирующей таблице (рис. 2). Однако достижение результата только за счет более
длинной конкурирующей формулировки и ограниченность длины слов по сравнению с длиной всей фразы делает алгоритм недостаточно привлекательным.
Таблица2
Превышение весовой оценки тестовой формулировки при различных значениях к
Форму- лировка Степень k
1,8 2,0 2,2 2,4 2,6 Число e 2,8 З,0
Тестовая форму- лировка 43,7 177 60,0 8 83,1 791 115,1 791 162,5 513 199,0 402 229,1 740 324,7 2
Конку- рирую- щая форму- лировка 44,2 346* 59,9 333* 81,8 294* 112,4 930* 156,0 661-- 191,1 317-- 220,0 918“ 311,9 231--
Превы- шение 0,98 83 1,00 24 1,01 6З 1,030 З 1,041 6 1,041 4 1,041 3 1,041 0
Примчеание: * - диабет сахарный, ** - диабет сахарный стабильный
Тем не менее, приведенный анализ и табл. 1 дают нам важную информацию: суммарный вес слова сначала увеличивается с увеличением окна сканирования, а за тем уменьшается. Это обстоятельство приводит к размышлениям по дальнейшему совершенствованию алгоритма вторым способом (за счет постоянного увеличения суммарного веса на протяжении всего сканирования). Для этого будем пробовать увеличивать суммарный вес значением величины окна, возведенного в степень k:
If pos > 0 And Len(KodB) >= (i + u - 1) Then XR = XR + u Л k.
Из табл. 2 видно, что наибольшее превышение следует ожидать при значении k = 2,6. Результирующая весовая оценка при этом значении k приведена на рис. 3.
Рис. 3. Весовая оценка результата поиска по тестовой фразе «Сахарный диабет лобильный» с переставленными словами и грамматической ошибкой с алгоритмом, предусматривающим присвоение веса равным величине окна, возведенного в степень 2,6
Таким образом, второй вариант совершенствования алгоритма достаточно прост, но, тем не менее, его целесообразно реализовывать на языке Visual C++, чтобы не сдер-
живать пользователя в получении результата.
Выводы. Проведенный анализ показывает пути совершенствования алгоритма распознавания текста, которые могут быть использованы в программном обеспечении кодирования множественных причин смерти. При этом второй вариант следует считать более предпочтительным.
Литература
1. Вайсман, Д.Ш. О создании автоматизированной комплексной системы сбора, обработки и анализа информации о рождаемости и смертности в Тульской области / Д.Ш. Вайсман, Э.И. Погорелова, В.А. Хромушин // Вестник новых медицинских технологий.- Тула.- 2001.—N 4.- С.80-81.
2. Хромушин, В.А. Мониторинг смертности с международной сопоставимостью данных / В.А. Хромушин, Д.Ш. Вайсман // Сборник тезисов докладов научнопрактической конференции «Современные инфрокомму-никационные технологии в системе охраны здоровья».-М., 2003.- С.122.
3. Хромушин, В.А. Методология обработки информации медицинских регистров / В.А. Хромушин.- Тула, 2005.- 120 с.
4. Хромушин, В.А. Системный анализ и обработка информации медицинских регистров в регионах: автореферат на соискание ученой степени доктора биологических наук / В.А. Хромушин.- НИИ новых медицинских технологий.- Тула, 2006.- 44 с.
5. Вайсман, Д.Ш. Свидетельство о государственной регистрации программы для ЭВМ №2010612611 MedSS / Д.Ш. Вайсман, С.В. Никитин, В.А. Хромушин. Зарегистрировано в Реестре программ для ЭВМ 15.04.2010г. по заявке №2010610801 от 25.02.2010г.
6. Хромушин, В.А. Информатизация здравоохранения / В.А. Хромушин, А.В. Черешнев, Т.В. Честнова // Учебное пособие.- Тула: Изд-во ТулГУ, 2007.- 207 с.
References
1. Vaysman DSh, Pogorelova EI, Khromushin VA. O soz-danii avtomatizirovannoy kompleksnoy sistemy sbora, obra-botki i analiza informatsii o rozhdaemosti i smertnosti v Tul'skoy oblasti [About Creation of the Automated Complex System for Gathering, Processing and Analyzing of the Information Concerning Birth Rate and Mortality in the Tula Region]. Vestnik novykh meditsinskikh tekhnologiy. 2001;4:80-1. Russian.
2. Khromushin VA, Vaysman DSh. Monitoring smertnosti s mezhdunarodnoy sopostavimost'yu dannykh: Sbornik tezisov dokladov nauchno-prakticheskoy konferentsii «Sovremennye infrokommunikatsionnye tekhnologii v sisteme okhrany zdo-rov'ya»; 2003; Moscow. s. 122. Russian.
3. Khromushin VA. Metodologiya obrabotki informatsii meditsinskikh registrov. Tula; 2005. Russian.
4. Khromushin VA. Sistemnyy analiz i obrabotka infor-matsii meditsinskikh registrov v regionakh: avtoreferat na sois-kanie uchenoy stepeni doktora biologicheskikh nauk. Tula: NII novykh meditsinskikh tekhnologiy; 2006. Russian.
5. Vaysman DSh, Nikitin SV, Khromushin VA. Svide-tel'stvo o gosudarstvennoy registratsii programmy dlya EVM №2010612611 MedSS. Patent Rossiyskoy Federatsii RU 2010610801. 2010. Russian.
6. Khromushin VA, Chereshnev AV, Chestnova TV. In-formatizatsiya zdravookhraneniya. Uchebnoe posobie. Tula: Izd-vo TulGU; 2007. Russian.