Версия для печати

Статистика знаков Фестского диска

Главная > Лингвистика > Письменности > Критские > Фестский диск > Анализ ФД

Разделы страницы о результатах статистических исследований надписей обоих сторон Фестского диска:


Статистика по знакам ФД и их сочетаниям

Частота и сочетаемость знаков Диска

Частота появления знаков: 19-18-17-15-12-11-11-11-11-7-6-6-6-6-6-6-5-5-5-4-4-4-4-4-4-3-3-3-2-2-2-2-2-2-2-2-1-1-1-1-1-1-1-1-1.

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

Знаки в дублированной строфе VI не будут учитываться. Знаки в двойных строках (A-29. A-31) и в повторяющихся словах - будут.

Если знак будет стоять в начале слова - укажем также конечный знак, если в конце - укажем начальный. Также сделаем и для знаков в начале и конце фраз (укажем, соответственно, знаки в конце и начале фраз).

Двойные знаки не представлены в этой таблице, т.к. из на ограниченном тексте ФД мало. Это знаки: 24 (дворец - PA?) - 1 раз, 27 (шкура) - по разу в 2 одинаковых словах, 29 (кошка - MA?) - 1 раз. Но мы их обязательно сравним с удвоенными знаками в других эгейских письменностях.

Знак Кол-во Начало слова Конец слова Начало фразы Конец фразы Знаки слева Знаки справа Заметки
1 (Л). Люди
01 Символ Фестского диска №1 11 (6/5) Не редок на A и B
02 Символ Фестского диска №2 19 (14/5) Много на A, мало на B
03 Символ Фестского диска №3 2 (2/0) Мало, и только на A
04 Символ Фестского диска №4 1 (1/0) Единичный, только на A
05 Символ Фестского диска №5 1 (1/0) Единичный, только на A
06 Символ Фестского диска №6 4 (2/2) Мало на обоих
2 (О). Одежда
07 Символ Фестского диска №7 18 (3/15) Много на B, мало на A
08 Символ Фестского диска №8 5 (1/4) Мало, и больше на B
09 Символ Фестского диска №9 2 (0/2) Мало, и только на B
3 (Б). Оружие
10 Символ Фестского диска №10 4 (4/0) Мало, и только на A
11 Символ Фестского диска №11 1 (1/0) Единичный, только на A
12 Символ Фестского диска №12 16 (14/2) Много на A, мало на B
13 Символ Фестского диска №13 6 (3/3) Мало на обоих
14 Символ Фестского диска №14 2 (1/1) Мало на обоих
15 Символ Фестского диска №15 1 (0/1) Единичный, только на B
16 Символ Фестского диска №16 2 (0/2) Мало, и только на B
17 Символ Фестского диска №17 1 (1/0) Единичный, только на A
4 (У). Утварь
18 Символ Фестского диска №18 11 (5/6) Не редок на A и B
19 Символ Фестского диска №19 3 (3/0) Мало, и только на A
20 Символ Фестского диска №20 1 (0/1) Единичный, только на B
21 Символ Фестского диска №21 2 (2/0) Мало, и только на A
-22 Символ Фестского диска №22 5 (0/5) Только на B. Только в конце.
Постфикс. Вариант 19?
23 Символ Фестского диска №23 9 (3/6) Больше на B
5 (С). Строения
24 Символ Фестского диска №24 6 (1/5) Мало, в основном на B
25 Символ Фестского диска №25 6 (1/5) Мало, в основном на B
6 (Ж). Животные и части их тела
26 Символ Фестского диска №26 5 (4/1) Мало, в основном на A
27 Символ Фестского диска №27 14 (9/5) Не редок, больше на A
28 Символ Фестского диска №28 1 (1/0) Единичный, только на A
29 Символ Фестского диска №29 11 (3/8) Больше на B, мало на A
30 Символ Фестского диска №30 1 (0/1) Единичный, только на B
31 Символ Фестского диска №31 4 (4/0) Мало, и только на A
32 Символ Фестского диска №32 3 (2/1) Мало
33 Символ Фестского диска №33 6 (2/4) Мало, больше на B
34 Символ Фестского диска №34 3 (1/2) Мало
7 (Р). Растения
35 Символ Фестского диска №35 11 (5/6) Не редок, больше на B
36 Символ Фестского диска №36 4 (0/4) Мало, и только на B
37 Символ Фестского диска №37 4 (2/2) Мало
38 Символ Фестского диска №38 4 (3/1) Мало, больше на A
39 Символ Фестского диска №39 4 (1/3) Мало, больше на B
8 (Д). Другие предметы
40 Символ Фестского диска №40 6 (3/3) Мало
41 Символ Фестского диска №41 2 (2/0) Мало, и только на A
42 Символ Фестского диска №42 1 (0/1) Единичный, только на B
43 Символ Фестского диска №43 1 (0/1) Единичный, только на B
44 Символ Фестского диска №44 2 (1/1) Мало
45 Символ Фестского диска №45 6 (2/4) Мало, больше на B

Итак, самые частые знаки здесь (9): 02 Символ Фестского диска №02 (19), 07 Символ Фестского диска №07 (18), 27 Символ Фестского диска №27 (14), 12 Символ Фестского диска №12 (16), 01 Символ Фестского диска №01 (11), 18 Символ Фестского диска №18 (11), 29 Символ Фестского диска №29 (11), 35 Символ Фестского диска №35 (11), 23 Символ Фестского диска №23 (9).

Другие по распространенности (тоже 9): 13 Символ Фестского диска №13 (6), 24 Символ Фестского диска №24 (6), 25 Символ Фестского диска №25 (6), 33 Символ Фестского диска №33 (6), 40 Символ Фестского диска №40 (6), 45 Символ Фестского диска №45 (6), 08 Символ Фестского диска №08 (5), 22 Символ Фестского диска №22 (5), 26 Символ Фестского диска №26 (5),

Будем использовать их для поиска похожих сигнатур из самых частых знаков других эгейских письменностей.

Если предположить, что текст ФД - билингва, то будет полезна статистика по односторонним знакам (порядок частотный):

Оба массива примерно одинаковы - возможно, это разные знаки для одной группы слогов (т.е., как если бы 2 текста писались на одном языке, но разными алфавитами).

Частота других критских знаков в сравнении

Сочетаемость вирамных знаков ФД

Ряд знаков диска из Феста снабжается на краю слова с чёрточкой, которая может быть "вирамом" - означать неогласовку слогового знака, т.е., чтобы он передавал одну согласную. Такими знаками являютя 01 (возможно), 05, 07, 08, 18, 26, 35, 38 (возможно), 43. Прежде всего, такие обозначения нужны в конце слога (и слова), если в языке имеются закрытые слоги. Но они могут быть и в начале слова, например, для таких приставок как pro-, pre-... Но тогда почему их нет и в середине слова? А, может быть, черточка передает ударение или интонацию (вопрос)? Если же эти вирамы используются только с определенными частями речи, то они могут быть маркерами конца или другой части предложения. В любом случае, полезно будет выяснить сочетаемость знаков с вирамами.

Знак Кол-во Начало слова Конец слова Начало фразы Конец фразы Знаки слева Знаки справа Заметки
01 Символ Фестского диска №1 11 (6/5) Не редок на A и B
05 Символ Фестского диска №5 1 (1/0) Единичный, только на A
07 Символ Фестского диска №7 18 (3/15) Много на B, мало на A
08 Символ Фестского диска №8 5 (1/4) Мало, и больше на B
26 Символ Фестского диска №26 5 (4/1) Мало, в основном на A
35 Символ Фестского диска №35 11 (5/6) Не редок, больше на B
38 Символ Фестского диска №38 4 (3/1) Мало, больше на A
43 Символ Фестского диска №43 1 (0/1) Единичный, только на B

Возможные аффиксы ФД и их сочетаемость

Возможные префиксы ФД и их сочетаемость

Префиксами (приставками, а также предлогами, проклитиками, предартиклями и др. предчастицами и предсловами, например, союзами, титулами и определителями) в тексте Диска, вероятно, являются 07%*, 12*, 18, 21, 24, 27*, 33, 35, 43%. Причём, 07 и 43 - вирамные знаки (обозначены процентом, а звездочкой - еще и постфиксы).

При анализе сочетаемости вирамных знаков выявлены следующие префиксы (с разной степенью вероятности): 02??, 07!, 15-07??, 16??, 22!, 23?, 27, 29!, 41? Посему 07 и 27 подтверждаются в статусе приставок, а 22 и 29* (корень и голова кошки [ma-, gu-/ku-, li-/ri-/di- ?]) добавляются к ним. Не слишком ли обширный список приставок или это предлоги? Или читать следует, все-таки, наоборот?

Возможные постфиксы ФД и их сочетаемость

Постфиксами (суффиксами, окончаниями, послелогами, энклитиками, постартиклями и др. постморфемами и постлексемами, в т.ч. союзами, титулами и детерминативами) в тексте Диска, возможно, являются 02, 07*, 12*, 23 [или 22?], 27*, 29, 41. Из них 07, 12, 27 являются также префиксами (обозначены звёздочками).

При анализе сочетаемости вирамных знаков выявлены следующие постфиксы (с разной степенью вероятности): 05??, 08??, 12, 24??, 35, 39-33??, 43?? Значит, окончание 12 подтверждается.

Сравнение с аффиксами других палеоевропейских языков

В кипро-минойских надписях выявлены некоторые характерные повторяющиеся элементы слов (морфемы?), в том числе инициальные и финальные элементы слов.

Некоторые грамматические особенности этеокипрского языка:

Морфологические показатели выявлены на материале хорошо опознаваемых древнегреческих имён с этеокипрскими (падежными?) окончаниями, а также при сравнении слов, различающихся одним или двумя конечными слоговыми знаками. Ряд окончаний (например, -(n)o-ti) встречаются довольно часто в разных контекстах.

Также необходимо сравнить аффиксальную систему ФД с таковой у этрусского языка.

Вероятные основы слов ФД и их сочетаемость

Частота подстрок (синтагм) Фестского диска

Синтагмы представлены последовательностью знаков при чтении диска из середины к краю.

Подстрока Количество Знаки-соседи Синтагмы-соседи
в кодах в знаках на A на B общее слева справа слева
(в т.ч. префиксы)
справа
(в т.ч. постфиксы)
1 07-45 (глагол?) знак ФД-07 знак ФД-45 1 + 1* = 2 3 + 1* = 4 6 12-, 35- -07, -27, -29
2 01-13 (глагол?) знак ФД-01 знак ФД-13 3 2 5 18, 33-39? -07-15?, -12-02
3 18-23 (глагол??) знак ФД-18 знак ФД-23 2 2 4 43 -07, 10, 16
4 25-27 знак ФД-25 знак ФД-27 1 1 2 01-38?, 10 -02
5 40-24 (глагол?) знак ФД-40 знак ФД-24 1 1 2 12-, 35- -07
6 -07-40 знак ФД-07 знак ФД-40 1 1 2 -22, -41-01?
7 26-31 (глагол?) знак ФД-26 знак ФД-31 2 + 3* = 5 5 12-, 35- -12-02
8 35-19 знак ФД-35 знак ФД-19 1 + 1* = 2 2 23, -41
9 18-06 (глагол?) знак ФД-18 знак ФД-06 2 2 19-17 -12-02
10 38-03-10 знак ФД-38 знак ФД-03 знак ФД-10 2 2
11 08-07-36-29 знак ФД-08 знак ФД-07 знак ФД-36 знак ФД-29 1 + 2* = 3 3 -22
12 25-23-34 (глагол?) знак ФД-25 знак ФД-23 знак ФД-34 2 2 -27, -29
13 35-06 знак ФД-35 знак ФД-06 2 2 07-23?, 32 -02
14 33-39 знак ФД-33 знак ФД-39 2 2 01-13?, 32

Отсюда достоверно можно выделить

Префиксов мало, а ведь в индоевропрейских языках много и предлогов и глагольных префиксов. Впрочем, глагольные префиксы, например, в греческом языке, довольно длинные. А предлоги могли появится позднее - даже в латинском многое из пространственных значений выражалось падежами. Т.н. здесь "префиксы" могут быть артиклями или местоимениями - типа "мой", "твой" перед именами или "я", "ты" перед глаголами.

Можно предположить, что синтагмы с префиксами 12 и 35 - отдельный грамматический класс слов, например, глаголы. Соответственно, к этому классу будут отнесены и синтагмы с постфиксами 07, 12-02, 27, 29.

Статистика морфем в тексте Фестского диска

Сочетаемость морфем на Фестском диске (парадигмы)

На основе приведенного выше морфологического анализа текстов Фестского диска составляем комбинационная таблицу его аффиксов и корней:

Префиксы и
постфиксы
воин- щит- гонец- шкура- кошка- жезл-
-угольник . . . . . .
-пятилистник . . . . . .
-щит . . . . . .
-шкура . . . . . .
-гонец . . . . . .
-жезл . . . . . .

Частота морфем эгейских языков в сравнении

Компьютерный анализ надписи Фестского диска

Подсчет подстрок ФД авторской программой

В 2006 году автором сайта была разработана простейшая программа на MS Visual Basic for Access для подсчета подстрок в тексте. Вот протокол ее работы:

Статистика повтора подстрок на стороне A

Текст, подготовленный для анализа (сторона A) / Prepared Text (Side A):

02-12-27-45-07-12 27-44-08 02-12-31-26-35 02-12-41-19-35 01-41-40-07 02-12 32-23-38 39-11 02-27-25-10-23-18 28-01 02-12-31-26 02-12-27-27-35-37-21 33-23 02-12-31-26 02-27-25-10-23-18 28-01 02-12-31-26 02-12-27-14-32-18-27 06-18-17-19 31-26-12 02-12-13-01 23-19-35 10-03-38 02-12-27-27-35-37-21 13-01 10-03-38 

Статистика повтора подстрок / Substring Statistics:

* Длина подстрок / Substring Length:  46

  02-27-25-10-23-18 28-01 02-12-31-26 02-12-27-:  2

* Длина подстрок / Substring Length:  22

  02-12-27-27-35-37-21 :  2

* Длина подстрок / Substring Length:  10

  10-03-38 :  2

* Длина подстрок / Substring Length:  8

  8 02-12-:  2

* Длина подстрок / Substring Length:  7

  -19-35 :  2

* Длина подстрок / Substring Length:  6

  31-26-:  2
  13-01 :  2

* Длина подстрок / Substring Length:  5

  -35 0:  2

* Длина подстрок / Substring Length:  4

  -12 :  3
  -41-:  2
  -18-:  2

* Длина подстрок / Substring Length:  3

  -07:  2
  32-:  2

    

Статистика повтора подстрок на стороне B

Текст, подготовленный для анализа (сторона B) / Prepared Text (Side B):

02-12-22-40-07 27-45-07-35 02-37-23-05 22-25-27 33-24-44-12 16-23-18-43 13-01-39-33 15-07-13-01-18-22-37-42-25 07-24-40-35 02-26-36-40 27-25-38-01 29-24-24-20-35 16-14-18-29-33-01 06-35-32-39-33 02 09-27-01 29-36-07-08 29-08-13 29-45-07 22-36-07-08 27-34-23-25 07-18-35 07-45-07 07-23-18-24 22 29-36-07-08 09-30-39-18-07 02-06-35-23-07 29-34-23-25 45-07 

Статистика повтора подстрок / Substring Statistics:

* Длина подстрок / Substring Length:  13

  29-36-07-08 :  2

* Длина подстрок / Substring Length:  10

  -34-23-25 :  2

* Длина подстрок / Substring Length:  7

  -35 02-:  2
  -23-18-:  2
  -39-33 :  2
  -25 07-:  2
  -01 29-:  2
  -45-07 :  2

* Длина подстрок / Substring Length:  6

  13-01-:  2
  06-35-:  2

*Длина подстрок / Substring Length:  4

  -22-:  2
  -40-:  2
   27-:  3
   22-:  2
  -25-:  2
   16-:  2
   09-:  2

Длина подстрок / Substring Length:  3

  -12:  2
  -27:  2
  33-:  2
  -13:  2

    

Обработка функциями СУБД Oracle

Обработка текста с помощью REGEXP

Выделение знаков с помощью REGEXP и комплексной строки в запросе

Выделение знаков (без учета вирамных) с помощью функции REGEXP и комплексной строки в запросе с подсчетом их количества:


select sign, count(sign) cnt 
from 
  (
    SELECT --distinct
      upper(regexp_substr(str, '[^•]+', 1, LEVEL)) sign  
      --reverse(upper(regexp_substr(str, '[^•]+', 1, LEVEL))) sign  
    FROM (
      select 
        -- количество знаков без учета вирамных (со слэшем)
        '02•12•13•01•18•24•40•12•29•45•07•29•29•34•02•12•04•40•33•27•45•07•12•27•44•08•02•12•06•18•??•31•26•35•02•12•41•19•35•' || 
        '01•41•40•07•02•12•32•23•38•39•11•02•27•25•10•23•18•28•01•02•12•31•26•02•12•27•27•35•37•21•33•23•02•12•31•26•02•27•25•10•23•18•' || 
        '28•01•02•12•31•26•02•12•27•14•32•18•27•06•18•17•19•31•26•12•02•12•13•01•23•19•35•10•03•38•02•12•27•27•35•37•21•13•01•10•03•38•' || 

        '02•12•22•40•07•27•45•07•35•02•37•23•05•22•25•27•33•24•20•12•16•23•18•43•13•01•39•33•15•07•13•01•18•22•37•42•25•07•24•40•35•' || 
        '02•26•36•40•27•25•38•01•29•24•24•20•35•16•14•18•29•33•01•06•35•32•39•33•02•09•27•01•29•36•07•08•29•08•13•29•45•07•' || 
        '22•29•36•07•08•27•34•23•25•07•18•35•07•45•07•07•23•18•24•22•29•36•07•08•09•30•39•18•07•02•06•35•23•07•29•34•23•25•45•07•'

        str 
      from dual)

    CONNECT BY instr(str, '•', 1, LEVEL-1) > 0
    ORDER BY sign -- чтобы все похожие слова текста рядом стояли
  ) 
group by sign 
order by --sign
  cnt
  
Выделение слов с помощью REGEXP и комплексной строки в запросе

Выделение слов (с вирамами - слэшами) с помощью функции REGEXP и комплексной строки в запросе (слова идут без сортировки друг за другом как в тексте - для дальнейших обработок)


SELECT 
  --row_number(), -- так не работает
  --level -- а это что будет?
  instr(str, regexp_substr(str, '[^•]+', 1, level)) rnum, -- позиция?
  upper(regexp_substr(str, '[^•]+', 1, level)) word  
FROM (
  select 
    '02_12_13_01_18/•24_40_12•29_45_07/•29_29_34•02_12_04_40_33•27_45_07_12•27_44_08•02_12_06_18_??•31_26_35•02_12_41_19_35•' || 
    '01_41_40_07•02_12_32_23_38/•39_11•02_27_25_10_23_18•28_01/•02_12_31_26/•02_12_27_27_35_37_21•33_23•02_12_31_26/•02_27_25_10_23_18•' || 
    '28_01/•02_12_31_26/•02_12_27_14_32_18_27•06_18_17_19•31_26_12•02_12_13_01•23_19_35/•10_03_38•02_12_27_27_35_37_21•13_01•10_03_38•' || 

    '02_12_22_40_07•27_45_07_35•02_37_23_05/•22_25_27•33_24_20_12•16_23_18_43/•13_01_39_33•15_07_13_01_18•22_37_42_25•07_24_40_35•' || 
    '02_26_36_40•27_25_38_01•29_24_24_20_35•16_14_18•29_33_01•06_35_32_39_33•02_09_27_01•29_36_07_08/•29_08_13•29_45_07/•' || 
    '22_29_36_07_08/•27_34_23_25•07_18_35•07_45_07/•07_23_18_24•22_29_36_07_08/•09_30_39_18_07•02_06_35_23_07•29_34_23_25•45_07/•'
    str 
  from dual)
CONNECT BY instr(str, '•', 1, level-1) > 0

Выделение сочетаний знаков в словах с помощью REGEXP

Выделение с помощью REGEXP наивероятных префиксов, основ и суффиксов

Выделение наивероятных префиксов, основ и суффиксов с помощью группировки в сочетаниях, сделанных на основе REGEXP и заданной строки в запросе. (по ФД пока не сочетания слов, а сочетания знаков - т.е., сами слова, причем, только из 3 иероглифов)


select 
  SUFF, count(SUFF) cnt
from (
  select 
    substr(WORD, 1, 2) PREF, 
    substr(WORD, 4, 2) ROOT, 
    substr(WORD, 7, 2) SUFF
  from (
    with 
      t as 
        (select 
          '02-12-13-01-18/•24-40-12•29-45-07/•29-29-34•02-12-04-40-33•27-45-07-12•27-44-08•02-12-06-18-??•31-26-35•02-12-41-19-35•' || 
          '01-41-40-07•02-12-32-23-38/•39-11•02-27-25-10-23-18•28-01/•02-12-31-26/•02-12-27-27-35-37-21•33-23•02-12-31-26/•02-27-25-10-23-18•' || 
          '28-01/•02-12-31-26/•02-12-27-14-32-18-27•06-18-17-19•31-26-12•02-12-13-01•23-19-35/•10-03-38•02-12-27-27-35-37-21•13-01•10-03-38•' || 

          '02-12-22-40-07•27-45-07-35•02-37-23-05/•22-25-27•33-24-20-12•16-23-18-43/•13-01-39-33•15-07-13-01-18•22-37-42-25•07-24-40-35•' || 
          '02-26-36-40•27-25-38-01•29-24-24-20-35•16-14-18•29-33-01•06-35-32-39-33•02-09-27-01•29-36-07-08/•29-08-13•29-45-07/•' || 
          '22-29-36-07-08/•27-34-23-25•07-18-35•07-45-07/•07-23-18-24•22-29-36-07-08/•09-30-39-18-07•02-06-35-23-07•29-34-23-25•45-07/•'
         s from dual),

      vals as 
        (select distinct regexp_substr(s,'[a-z0-9]+',1,level,'i') v
        from t
        connect by level < 1600) -- было > 10, потом >= 100

    select -- лучше от v4 до v10
      instr(t.s, v1.v||'-'||v2.v||'-'||v3.v) STR_NUM, 
      v1.v||'-'||v2.v||'-'||v3.v             WORD
    from t, vals v1, vals v2, vals v3
    where 
      v1.v is not null and v2.v is not null and v3.v is not null
      and instr(t.s, v1.v||'-'||v2.v||'-'||v3.v) > 0 -- было > 0
    )
  )
group by 
  --PREF
  --ROOT
  SUFF
order by 
  --count(PREF)
  --count(ROOT)
  count(SUFF)
  desc

Поиск с помощью REGEXP согласований путем сравнения аффиксов со следующим словом

Выделение слов ФД с помощью REGEXP и комплексной строки в запросе с дальнейшим сравнением аффиксов со следующим словом

select 
  word1, word2, 
  decode(pref1, pref2, pref1) pref,
  decode(suff1, suff2, suff1) suff
from (
  select 
    --t1.rnum rnum1, t1.wpos wpos1, t1.wnum wnum1, 
    t1.lev lev1, t1.word word1, substr(t1.word, 1, 2) pref1, substr(t1.word, -2, 2) suff1, 
    --t2.rnum rnum2, t2.wpos wpos2,  t2.wnum wnum2, 
    t2.lev lev2, t2.word word2, substr(t2.word, 1, 2) pref2, substr(t2.word, -2, 2) suff2
  from 
  (
    select 0 lev, /*9999 wnum, 9999 wpos,*/ '00_00' word from dual union
    select 
      lev, word 
    from (
      SELECT level lev, 
        regexp_substr(str, '[^•]+', 1, level) word  
        --reverse(upper(regexp_substr(str, '[^•]+', 1, level))) word  
      FROM (
        select -- стороны A и B ФД
          '02_12_13_01_18/•24_40_12•29_45_07/•29_29_34•02_12_04_40_33•27_45_07_12•27_44_08•02_12_06_18_??•31_26_35•02_12_41_19_35•' || 
          '01_41_40_07•02_12_32_23_38/•39_11•02_27_25_10_23_18•28_01/•02_12_31_26/•02_12_27_27_35_37_21•33_23•02_12_31_26/•02_27_25_10_23_18•' || 
          '28_01/•02_12_31_26/•02_12_27_14_32_18_27•06_18_17_19•31_26_12•02_12_13_01•23_19_35/•10_03_38•02_12_27_27_35_37_21•13_01•10_03_38•' || 

          '02_12_22_40_07•27_45_07_35•02_37_23_05/•22_25_27•33_24_20_12•16_23_18_43/•13_01_39_33•15_07_13_01_18•22_37_42_25•07_24_40_35•' || 
          '02_26_36_40•27_25_38_01•29_24_24_20_35•16_14_18•29_33_01•06_35_32_39_33•02_09_27_01•29_36_07_08/•29_08_13•29_45_07/•' || 
          '22_29_36_07_08/•27_34_23_25•07_18_35•07_45_07/•07_23_18_24•22_29_36_07_08/•09_30_39_18_07•02_06_35_23_07•29_34_23_25•45_07/•'
          str 
        from dual)
      CONNECT BY instr(str, '•', 1, level-1) > 0
    ) 
  ) t1,  

  (
    select 
      lev, word 
    from (
      SELECT level lev, 
        regexp_substr(str, '[^•]+', 1, level) word  
        --reverse(upper(regexp_substr(str, '[^•]+', 1, level))) word  
      FROM (
        select -- стороны A и B ФД
          '02_12_13_01_18/•24_40_12•29_45_07/•29_29_34•02_12_04_40_33•27_45_07_12•27_44_08•02_12_06_18_??•31_26_35•02_12_41_19_35•' || 
          '01_41_40_07•02_12_32_23_38/•39_11•02_27_25_10_23_18•28_01/•02_12_31_26/•02_12_27_27_35_37_21•33_23•02_12_31_26/•02_27_25_10_23_18•' || 
          '28_01/•02_12_31_26/•02_12_27_14_32_18_27•06_18_17_19•31_26_12•02_12_13_01•23_19_35/•10_03_38•02_12_27_27_35_37_21•13_01•10_03_38•' || 

          '02_12_22_40_07•27_45_07_35•02_37_23_05/•22_25_27•33_24_20_12•16_23_18_43/•13_01_39_33•15_07_13_01_18•22_37_42_25•07_24_40_35•' || 
          '02_26_36_40•27_25_38_01•29_24_24_20_35•16_14_18•29_33_01•06_35_32_39_33•02_09_27_01•29_36_07_08/•29_08_13•29_45_07/•' || 
          '22_29_36_07_08/•27_34_23_25•07_18_35•07_45_07/•07_23_18_24•22_29_36_07_08/•09_30_39_18_07•02_06_35_23_07•29_34_23_25•45_07/•'
          str 
        from dual)
      CONNECT BY instr(str, '•', 1, level-1) > 0
    ) 
    union select 9999 lev, /*9999 wnum, 9999 wpos,*/ '99_99' word from dual 
  ) t2
  where 
    --t2.rnum = t1.rnum + 1 --t2.wpos = t1.wpos --t2.wnum = t1.wnum + 1
    t2.lev = t1.lev + 1
)

Обработка функциями пакета Oracle MATH_UTILS

Нечеткое сравнение подстрок с помощью дистанции Левенштейна

Нечеткое сравнение подстрок текста ФД каждая с каждой с вычислением дистанции с помощью декартова произведения и функции UTL_MATCH.edit_distance. Функция EDIT_DISTANCE пакета UTL_MATCH вычисляет дистанцию Левенштейна между двумя заданными строками (т.е., сколько требуется операций для приведения первой строки ко второй). Дистанции Левенштейна успешны для сравнения однословных строк, для которых он более приспособлен.


select 
  set1.word word1, 
  set2.word word2, 
  utl_match.edit_distance(set1.word, set2.word) dist
from 

  (
    SELECT distinct
      upper(regexp_substr(txt, '[^•]+', 1, LEVEL)) word  
      --reverse(upper(regexp_substr(str, '[^•]+', 1, LEVEL))) word  
    FROM (
      select 
          '02-12-13-01-18/•24-40-12•29-45-07/•29-29-34•02-12-04-40-33•27-45-07-12•27-44-08•02-12-06-18-??•31-26-35•02-12-41-19-35•' || 
          '01-41-40-07•02-12-32-23-38/•39-11•02-27-25-10-23-18•28-01/•02-12-31-26/•02-12-27-27-35-37-21•33-23•02-12-31-26/•02-27-25-10-23-18•' || 
          '28-01/•02-12-31-26/•02-12-27-14-32-18-27•06-18-17-19•31-26-12•02-12-13-01•23-19-35/•10-03-38•02-12-27-27-35-37-21•13-01•10-03-38•' || 

          '02-12-22-40-07•27-45-07-35•02-37-23-05/•22-25-27•33-24-20-12•16-23-18-43/•13-01-39-33•15-07-13-01-18•22-37-42-25•07-24-40-35•' || 
          '02-26-36-40•27-25-38-01•29-24-24-20-35•16-14-18•29-33-01•06-35-32-39-33•02-09-27-01•29-36-07-08/•29-08-13•29-45-07/•' || 
          '22-29-36-07-08/•27-34-23-25•07-18-35•07-45-07/•07-23-18-24•22-29-36-07-08/•09-30-39-18-07•02-06-35-23-07•29-34-23-25•45-07/•'
        txt 
      FROM dual)
    CONNECT BY instr(txt, '•', 1, LEVEL-1) > 0
  ) set1, 

  (
    SELECT distinct
      upper(regexp_substr(txt, '[^•]+', 1, LEVEL)) word  
      --reverse(upper(regexp_substr(str, '[^•]+', 1, LEVEL))) word  
    FROM (
      select 
          '02-12-13-01-18/•24-40-12•29-45-07/•29-29-34•02-12-04-40-33•27-45-07-12•27-44-08•02-12-06-18-??•31-26-35•02-12-41-19-35•' || 
          '01-41-40-07•02-12-32-23-38/•39-11•02-27-25-10-23-18•28-01/•02-12-31-26/•02-12-27-27-35-37-21•33-23•02-12-31-26/•02-27-25-10-23-18•' || 
          '28-01/•02-12-31-26/•02-12-27-14-32-18-27•06-18-17-19•31-26-12•02-12-13-01•23-19-35/•10-03-38•02-12-27-27-35-37-21•13-01•10-03-38•' || 

          '02-12-22-40-07•27-45-07-35•02-37-23-05/•22-25-27•33-24-20-12•16-23-18-43/•13-01-39-33•15-07-13-01-18•22-37-42-25•07-24-40-35•' || 
          '02-26-36-40•27-25-38-01•29-24-24-20-35•16-14-18•29-33-01•06-35-32-39-33•02-09-27-01•29-36-07-08/•29-08-13•29-45-07/•' || 
          '22-29-36-07-08/•27-34-23-25•07-18-35•07-45-07/•07-23-18-24•22-29-36-07-08/•09-30-39-18-07•02-06-35-23-07•29-34-23-25•45-07/•'
        txt 
      FROM dual)
    CONNECT BY instr(txt, '•', 1, LEVEL-1) > 0
  ) set2 

where 
  utl_match.EDIT_DISTANCE_SIMILARITY(set1.word, set2.word) > 1 and -- всего 2648 строк
  utl_match.EDIT_DISTANCE_SIMILARITY(set1.word, set2.word) < ((length(set1.word)+1)/3)*2-2 -- 229
order by
  word1, utl_match.EDIT_DISTANCE_SIMILARITY (set1.word, set2.word)

Нечеткое сравнение подстрок с помощью дистанции Джаро-Винклера

Нечеткое сравнение подстрок текста ФД каждая с каждой с вычислением дистанции Джаро-Винклера с помощью декартова произведения и функции UTL_MATCH.jaro_winkler. Функция JARO_WINKLER пакета UTL_MATCH вычисляет числовую величину схожести между двумя заданными строками по алгоритму Джаро-Винклера. Предпочтительнее использование функций, основанных на алгоритме Джаро-Винклера, т.к. он показывает наиболее приближенные к реальности результаты.


select 
  set1.word word1, 
  set2.word word2, 
  utl_match.edit_distance(set1.word, set2.word) dist
from 

  (
    SELECT distinct
      upper(regexp_substr(txt, '[^•]+', 1, LEVEL)) word  
    FROM (
      select 
          '02-12-13-01-18/•24-40-12•29-45-07/•29-29-34•02-12-04-40-33•27-45-07-12•27-44-08•02-12-06-18-??•31-26-35•02-12-41-19-35•' || 
          '01-41-40-07•02-12-32-23-38/•39-11•02-27-25-10-23-18•28-01/•02-12-31-26/•02-12-27-27-35-37-21•33-23•02-12-31-26/•02-27-25-10-23-18•' || 
          '28-01/•02-12-31-26/•02-12-27-14-32-18-27•06-18-17-19•31-26-12•02-12-13-01•23-19-35/•10-03-38•02-12-27-27-35-37-21•13-01•10-03-38•' || 

          '02-12-22-40-07•27-45-07-35•02-37-23-05/•22-25-27•33-24-20-12•16-23-18-43/•13-01-39-33•15-07-13-01-18•22-37-42-25•07-24-40-35•' || 
          '02-26-36-40•27-25-38-01•29-24-24-20-35•16-14-18•29-33-01•06-35-32-39-33•02-09-27-01•29-36-07-08/•29-08-13•29-45-07/•' || 
          '22-29-36-07-08/•27-34-23-25•07-18-35•07-45-07/•07-23-18-24•22-29-36-07-08/•09-30-39-18-07•02-06-35-23-07•29-34-23-25•45-07/•'
        txt 
      FROM dual)
    CONNECT BY instr(txt, '•', 1, LEVEL-1) > 0
  ) set1, 

  (
    SELECT distinct
      upper(regexp_substr(txt, '[^•]+', 1, LEVEL)) word  
      --reverse(upper(regexp_substr(str, '[^•]+', 1, LEVEL))) word  
    FROM (
      select 
          '02-12-13-01-18/•24-40-12•29-45-07/•29-29-34•02-12-04-40-33•27-45-07-12•27-44-08•02-12-06-18-??•31-26-35•02-12-41-19-35•' || 
          '01-41-40-07•02-12-32-23-38/•39-11•02-27-25-10-23-18•28-01/•02-12-31-26/•02-12-27-27-35-37-21•33-23•02-12-31-26/•02-27-25-10-23-18•' || 
          '28-01/•02-12-31-26/•02-12-27-14-32-18-27•06-18-17-19•31-26-12•02-12-13-01•23-19-35/•10-03-38•02-12-27-27-35-37-21•13-01•10-03-38•' || 

          '02-12-22-40-07•27-45-07-35•02-37-23-05/•22-25-27•33-24-20-12•16-23-18-43/•13-01-39-33•15-07-13-01-18•22-37-42-25•07-24-40-35•' || 
          '02-26-36-40•27-25-38-01•29-24-24-20-35•16-14-18•29-33-01•06-35-32-39-33•02-09-27-01•29-36-07-08/•29-08-13•29-45-07/•' || 
          '22-29-36-07-08/•27-34-23-25•07-18-35•07-45-07/•07-23-18-24•22-29-36-07-08/•09-30-39-18-07•02-06-35-23-07•29-34-23-25•45-07/•'
        txt 
      FROM dual)
    CONNECT BY instr(txt, '•', 1, LEVEL-1) > 0
  ) set2 

where 
  utl_match.JARO_WINKLER(set1.word, set2.word) > 1 and -- всего 2648 строк
  utl_match.JARO_WINKLER(set1.word, set2.word) < ((length(set1.word)+1)/3)*2-2 -- 229
order by
  word1, utl_match.JARO_WINKLER(set1.word, set2.word)

Результаты статистического анализа ФД


Главная > Лингвистика > Письменности

Фестский диск: Знаки ФД | Текст ФД | Анализ ФД | Плпн разбора ФД | Топор из Аркалохори Похожие надписи знаками ФД | Аналогичные малые диски | Другие спиральные надписи Труды о ФД |

Догреческие языки | Греко-македонская группа | Эгеида до греков | Современная Греция

На правах рекламы (см. условия):    


© «Сайт Игоря Гаршина», 2002, 2005. Пишите письма (Письмо И.Гаршину).
Страница обновлена 24.01.2019
Я.Метрика: просмотры, визиты и хиты сегодня