|
| |
| |
|
На: Обработка русского языка
Добавлено: 28 ноя 08 13:04
|
чето смылся камент.
по мере появления данных о персонах, конкретные данные девальвируются в своей объективности.
мне не страшно заявлять открыто свои фио
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 13:18
|
Спасибо за подробные ответы. Видно, что работы по доводке библиотеки еще много. Даже если в случае, если библиотека работает с одним словом, все равно результат должен предусматривать вывод в виде кортежа (массива или коллекции списков слов). Ценность библиотеки невысока, если для поиска необходимо вводить слово в исходной грамматической форме, ведь смысл обработки морфологии в том и состоит, чтобы лемматизировать измененную форму. А если делать поиск по измененной форме, то результат часто будет не один, это видно даже на примере того простого предложения, которое я приводил (глагол стоит - исх. форма стоить, и исх. форма стоять). Поддержку IEnumerable хотя бы к списку результата тоже можно встроить, хотя на этом этапе это абсолютно не критично. Просто позволит, в случае необходимости, простым запросом сразу найти необходимую морфологическую форму, ведь библиотека в будущем будет использоваться для обработки текста, а там весь список не нужен. P.S. У меня тоже есть незаконченная подобная разработка, только на иных принципах, поэтому я немного знаком с тематикой
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 13:50
|
Слово можно вводить не только в исходной, но и в изменённой форме. Если в том же примере ввести слово "мёдом", то Вы получите всё тот же список слов. По поводу остальных замечаний огромное Вам спасибо. Учтём в следующих версиях.
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 16:25
|
>>>>>: Sergey
А какая производительность у библиотеки? Ну скажем сколько времени уйдет на обработку .... 1000-2000 слов?
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 17:10
|
Сделал эксперимент. В функцию поиска слов свтавил подсчёт времени. Получились такие результаты: Сразу после загрузки программы нашёл слово "стоять". На это ушло 00:00:04.2187230. При поиске первого слова это нормально. Дальнейший поиск будет намного быстрей. Потом попробовал ещё раз найти это же слово. На это ушло 00:00:00.0624996. Потом попробовал найти слово "слон". На это ушло первый раз 00:00:00.1562490, а второй раз 00:00:00.0312492. Следующим словом было слово "мёд". Первый поиск: 00:00:00.0781230. Второй: 00:00:00:0156246. Потом опять попробовал найти слово "стоять". На это ушло 00:00:00.1249968. В базе 3 085 232 уникальных слова на данный момент. Под уникальными я понимаю слова в которых не повторяется последовательность букв.
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 19:42
|
ну кто-же так оценивает скорость? запустите на 1000 слов. Слова например возьмите с какой-нибудь книги (это проще простого). Там и повторы будут и все остальное. Причем все это будет не искусственное а так как они в языке обычно и встречается. Прогоните тест на какой-нибудь книге или ее части и тогда уже у вас будут человеко-читаемые числа. (типа 0.001сек на 1000слов). Если хотите на конкретные слова, то тоже надо в цикл ставить, а не по одному поиску судить. Т.е. берете одно и тоже слово и ищите его 1000 раз. (я не критикую, просто советую. Чем итераций больше, тем точнее результат)
|
|
|
|
На: Обработка русского языка
Добавлено: 28 ноя 08 20:38
|
В данный момент система находится в стадии совершенствования. Сейчас в первую очередь интересует расширение функциональных возможностей программы. Оптимизацией займёмся позже. Сделать предложенный Вами тест возможно, но это потребует отвлечься от интересных задачь. Для этого нада доработать программу. Я сделал тест скорости по быстрому. Чтобы какие-то результаты Вам дать.
|
|
|
|
На: Обработка русского языка
Добавлено: 29 ноя 08 5:13
|
от части вас понимаю Почему от части? наверное потому что double s=0; for(int i=0;i<1000;i++) { lib.search("MYWORLD"); s+=lib.GetExecTime(); } System.Print("Results: "+s/1000); очень серьезное расширение программы. Шучу. Когда сделаете, тогда сделаете. но вообще-то оптимизация в вашей библиотеке, штука критическая. Иначе в ней смысла не будет.
|
|
|
|
На: Обработка русского языка
Добавлено: 29 ноя 08 23:06
|
Этот вариант теста будет одним из самых непоказательных. Легко встроить в систему запоминание последнего результата поиска и проверку на совпадение текущего слова с предыдущим. Те тесты, результаты которых я привел, показывают затраты времени на слово в случае его анализа в первый раз после запуска программы или после анализа других слов. В среднем тот сценарий, который я тестировал, даст худшие результаты, что более интересно, чем анализ специально подобранных хороших примеров.
|
|
|
|
На: Обработка русского языка
Добавлено: 30 ноя 08 0:59
|
Автор: Sergey
Этот вариант теста будет одним из самых непоказательных. Легко встроить в систему запоминание последнего результата поиска и проверку на совпадение текущего слова с предыдущим. Те тесты, результаты которых я привел, показывают затраты времени на слово в случае его анализа в первый раз после запуска программы или после анализа других слов. В среднем тот сценарий, который я тестировал, даст худшие результаты, что более интересно, чем анализ специально подобранных хороших примеров. |
|
Ну вы же не пытаетесь обмануть самого себя!!! Вы то знаете, что вы не встраивали подобной возможности. И по поводу первого слова тоже самое. Делайте после каждой итерации init() программы и все. И тем более, что я не говорил подбирать хорошие примеры.
|
|
|
|
На: Обработка русского языка
Добавлено: 30 ноя 08 22:07
|
Если посмотреть на статистику, что я опубликовал здесь, то видно, что время на поиск первого слова отличается от времени потраченного на поиск остальных слов примерно в 40 раз. Как раз при первом поиске и выполняется кеширование информации. А в последующих поисках используется построенный при первом поиске кеш. Но в данном случае используется кеширование различных промежуточных данных. А благодаря Вам, когда будем делать обработку набора слов, появилась идея создать очередь, в которую сохранять некоторое количество предшествующих слов. Это тоже ускорит морфологический анализ слов в предложениях. В связи с этим позвольте выразить Вам свою благодарность за эту идею.
|
|
|
|
На: Обработка русского языка
Добавлено: 30 ноя 08 22:28
|
гость (85.26.161.*). Извините, что так обращаюсь к Вам. Не знаю Вашего имени и отчества. Вы говорили, что у Вас есть подобная незаконченная разработка, но работающая по другим принципам. Могли бы Вы о ней подробней рассказать. Может там будут какие-то полезные идеи и для меня. В будущем есть планы заняться синтаксическим анализом предложений. Поэтому интересуют идеи и базы данных, касающиеся не только морфологии, но и синтаксического анализа.
|
|
|
|
На: Обработка русского языка
Добавлено: 30 ноя 08 22:49
|
не синтаксисом надо заниматься, а семантикой. Структура БД первичная, делается по семантике, блин, ну как этого можно не понимать?
БД=классификатор видовый.
вам нужно видовые связи определять между словами и строить иерархическую систему.
у меня есть идеи как это сделать. и забудьте о построении ручками. это построение должен делать автомат!!!
и забудьте о построении дерева от простого к сложному. обратно нужно делать, от сложного к простому. именно так человек и познает мир, разбирая все что видит на запчасти и определяя что из чего состоит и одновременно классифицирует.
|
|
|
|