Думаю над методикой тестирования приближенной морфологии. (+)

12
K
На сайте с 27.11.2000
Offline
80
1784

Собственно, ситуация такая. Сваял нечеткую морфологию для русского и украинского языков, хочу выставить в свободный download. По ощущениям, работает очень круто. Однако думаю над методикой тестирования, которая могла бы проиллюстрировать это утверждение, то есть позволила бы оценить соотношение "полнота/точность". Будут какие мысли?

С уважением, Андрей Коваленко aka Keva
euhenio
На сайте с 21.09.2001
Offline
357
#1

А что значит нечеткая?

Есть ли возможность получить из исходного слова словоформу в заданном падеже, лице, числе, ...и тд? И обратно?

с ув., Евгений Трофименко seo блог Trofimenko.ru ( http://trofimenko.ru/ ) но ыыы мало обновляется... Tools.Promosite.ru - анализатор апдейтов Яндекса (пожертвуйте лимиты на Яндекс.XML! ( https://searchengines.guru/ru/forum/801888/page7#comment_11942489 )) Konvr.ru - увеличение конверсии сайта на 81% за 4 недели ( http://konvr.ru/ )
K
На сайте с 27.11.2000
Offline
80
#2

Originally posted by euhenio:
А что значит нечеткая?

Нечеткая - значит бессловарная, использующая вероятностный подход для выделения квазиосновы, т. е. неизменяемой части из словоформы.


Есть ли возможность получить из исходного слова словоформу в заданном падеже, лице, числе, ...и тд? И обратно?

Нет, это делает как раз словарная морфология (cм. подробнее на http://linguist.nm.ru/) А нечеткая обычно используется для тех слов, которые не распознаны словарным анализатором, либо в тех случаях, когда применения нечеткой морфологии достаточно. Фактически, это стеммер с большим словарем.

euhenio
На сайте с 21.09.2001
Offline
357
#3

Originally posted by Keva:
которые не распознаны словарным анализатором, либо в тех случаях, когда применения нечеткой морфологии достаточно. Фактически, это стеммер с большим словарем.

- то есть, есть ли смысл использовать эту морфологию без словарного анализатора, а как самостоятельную? И тестировать, соответственно - только на нераспознанных словах или на всех?

- И какие действия, собственно, она позволяет делать со словом, чтобы ее можно было проверить?

euhenio
На сайте с 21.09.2001
Offline
357
#4

А нечеткая обычно используется для тех слов, которые не распознаны словарным анализатором, либо в тех случаях, когда применения нечеткой морфологии достаточно. Фактически, это стеммер с большим словарем.

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

2 GRAY: не первый раз какой-то глюк в форуме при "ответе с цитатой". Ответ просто не появляется, хотя в списке тем видно, что ответ был сделан.

K
На сайте с 27.11.2000
Offline
80
#5

Смысл использовать, безусловно, есть. Она может использоваться как дополнение к словарному анализатору, но может и самостоятельно.

Она выделяет квазиосновы из поданной строки. Скажем, ожидать, что она выделит, подобно словарной морфологии, из слофоформы "шедший" основу "идти", было бы неправильно, однако слово "свежесобра|н|н|ый" она разбирает вот так вот. Вертикальными штрихами отмечены возможные точки усечения.

Тестировать, естественно, на как можно большем массиве слов.

С уважением, Keva.

euhenio
На сайте с 21.09.2001
Offline
357
#6

Квазиоснова - она имеет какой-нибудь машинный смысл? (какое "определение" квазиосновы?)

Напимер, в слове \свежесобранный\, по-моему, правильная основа - \свежесобран\, но и через \свежесобранн\ можно сделать некие правильные слова... (-ое, -ые, ...) А \свежесобра\ - явная ошибка. Какое слово можно сделать из этой основы?

Ну, я бы мог предложить как тестирование - брать некий словарь, в котором содержались бы все (почти все) словоформы каждого слова (за исключением шел-идти и т.п.), и проверялось бы, что все квазиосновы, найденные по каждой словоформе, одинаковы для всего набора словоформ данной реальной основы. Генерацию слов он делать не может => полноту, в ее нормальном смысле, протестировать не удастся, а вероятность того, что основа определена правильно - наверное, да.

[This message has been edited by euhenio (edited 30-01-2002).]

K
На сайте с 27.11.2000
Offline
80
#7

Основа слова (даю НЕ академическое определение) - это та его часть, которая не изменяется при образовании словоформ. Назовем ее истинной основой. В некоторых реализациях морфоанализаторов слово может иметь несколько "основ" - например, морфоанализатор ИПС "Артефакт" (Пархоменко, Травкина, Назарова) у слов типа "ложка" полагает наличие двух основ, "ложк" и "ложек". Другие анализаторы (мой, например) допускают наличие чередований в основе, и основой в данном случае считает "лож".

Пример этот - очень удачный, так как иллюстрирует достоинства и недостатки обоих подходов при реализации нечеткой морфологии (стеммера). В первом случае при реализации поиска с использованием только нечеткой морфологии сильно страдает полнота - потери достигают 40% (в случае русского языка), во втором полнота поиска будет близкой к 100% (скажем, 0.95 - 0.97, потери за счет слов типа "идти-шел"), но вот точность падает, так как растет количество ложных отождествлений. Например, эта самая основа "лож" - ее ж порождает и слово "ложь".


А \свежесобра\ - явная ошибка. Какое слово можно сделать из этой основы?

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


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

Да, это было бы хорошо. Если Вам, конечно, это интересно

D
На сайте с 16.11.2000
Offline
14
#8

Андрей а может просто прогнать через зализняка (или тихонова)? В авт. режиме. я мог бы это спокойно организовать.

только как ты потом будешь результаты смотреть (читать) около 20 мб чистого текста получится

euhenio
На сайте с 21.09.2001
Offline
357
#9

Интересно, но такого словаря у меня нет, я просто предлагаю...

2 DWORKIN : в том и вопрос, как понимать результаты...

Если бы был такой словарь, можно было бы делать следующее -

1) определять, все ли квазиосновы, найденные по словоформе одной реальной основы, одинаковы, (% безошибочных основ в отношении общего количества основ)

2) Определять, какие из квазиоснов являются НЕНУЖНЫМИ (т.е., ложными) - т.е., если квазиоснова предполагается как основа для некой словоформы - а эта словоформа имеет 2 или более квазиоснов (каждая из которых длиннее, т.е. включает в себя исследуемую квазиоснову) - по всем словоформам реальной основы=> эта квазиоснова ложная. То есть не необходимая при данном наборе словоформ. Пример - \свежесобра\...

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

3) Собирать квазиосновы, не распознанные ранее как ложные, но являющиеся основами для >=2 словоформ с разным смыслом (типа ложка - ложь), в % к общему числу правильных квазиоснов.

[This message has been edited by euhenio (edited 30-01-2002).]

K
На сайте с 27.11.2000
Offline
80
#10

Я тут провел некоторое тестирование на досуге. Суть методики такова.

Был взят некоторый большой текст на русском языке и заиндексирован как множество документов. Фактически, каждое слово этого документа считалось отдельным объектом.

Текст был заиндексирован двумя способами - с

точной лемматизацией и с вероятностным стеммингом. При вероятностном

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

был построен индекс текста по всем таким, как строгим, так и нестрогим

ключам.

Далее в первом варианте для всех лексем, присутствующих в индексе, были порождены все

графически различные формы, каждая из которых, независимо от того,

встретилась ли она сама в тексте или нет, подвергалась вероятностной

лемматизации, и построенные основы подавались на поиск. Результаты поиска по

всем формам точной лексемы объединялись, после чего результаты

суммировались. Третья величина вычислялась как пересечение списка найденных

по нестрогим основам идентификаторов с списком найденных по идентификатору

лексемы идентификаторов.

Вот результаты тестирования:

289117 objects at all

518875 objects (fuzzy)

289094 objects (correct)

Расшифровываю:

Полнота поиска: 289096 / 289117 = 0.9999 ~= 1.0

Шум: (518875.0 - 289117) / 289117 ~= 0.79

Точность поиска: 289094.0 / 518875 ~= 0.56

Модификация методики заключается в том, что поиск ведется не по всем формам, а по наиболее вероятным, то есть с

порождением формальных основ из наиболее вероятных форм. Тогда результаты - вот такие:

289117.000000 objects at all

405015.178310 objects (fuzzy)

235683.787824 objects (correct)

Полнота поиска: ~= 0.82

Шум: ~=0.40

Точность поиска: ~= 0.58

Вот такие вот есть результаты.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий