При создании словаря по второму варианту выявилась неприятная особенность hunspell — плохой метод построения предположений для слов не найденных в словаре. Возможно это вызвано цифровым описанием правил, но пока что так за ними легче следить визуально и отказаться от неё я не вижу возможности. В третьем варианте попытался перейти к двухбуквенным описаниям, но улучшения не заметил.
Проблему также составляет отсутствие верификатора: нет способа построить списки правильных и ошибочных слов из имеющихся aff и dic-файлов, нет возможности быстро определить ошибку в описании из-за чего словарь перестаёт работать. Например, добавил ещё одну строку к правилу, забыл изменить количество строк в заголовке правила. Из-за этого приходится держать базу правильных и ошибочных слов и время от времени проверять ими полученный словарь на ошибки.
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Я конечно извиняюсь, но что мешает взять словарь Константина Книжника, включённый в существующие сборки Firefox, и довести его до ума?
Обязательно было начинать всё с нуля?
Добавлено Thu Jan 3 19:01:15 2008 :
Исходники его лежат здесь
Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.
Отсутствует
Ничего не мешает, просто разбираться и так и так. В своём легче разобраться Я думай если выложить то что у меня сейчас есть вряд ли кто без меня разберётся.
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Все прочитал, но так и не понял как создавать новый словарь. Точнее мне нужно добавить в уже существующий словарь новые слова со всеми словоформами.
Какой программой мне пользоваться? Или по какому алгоритму можно определить все словоформы имея неизвестное слово и файл affix?
Отсутствует
cyber-pilot
Чтобы добавить новое слово со всеми его словоформами нужно для начала определиться с правилом(ами) под которые подпадает это слово. В соответствии с этим выбрать нужное(ые) правило(а). Проще всего действовать по аналогии, то есть найти похожее слово из словаря. Но это достаточно нетривиальная задача — разобраться в формате чужого словаря.
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Если добавлять только одно слово, тогда щелкаете по нему правой кнопкой и Добавить в словарь.
Мне нужно добавить со всеми словоформами.
Чтобы добавить новое слово со всеми его словоформами нужно для начала определиться с правилом(ами) под которые подпадает это слово. В соответствии с этим выбрать нужное(ые) правило(а). Проще всего действовать по аналогии, то есть найти похожее слово из словаря. Но это достаточно нетривиальная задача — разобраться в формате чужого словаря.
В том-то и вопрос: "Как определить под какие правила подпадает слово"? По аналогии не подходит, хотелось бы как-то автоматизировать процесс. При том же с трудом верится, что составители словаря в ручную подбирали все правила.
Кстати, все функции HunSpell мне не нужны, достаточно тех, которые были в MySpell.
Отсутствует
cyber-pilot
По аналогии не подходит, хотелось бы как-то автоматизировать процесс. При том же с трудом верится, что составители словаря в ручную подбирали все правила.
Насчёт автоматизации — я бы тоже не отказался Делали составители словаря это вручную или нет могут сказать только они сами. Единственное что могу ещё добавить, что словарь строился на основе словаря Зализняка.
По моему мнению окончательная версия правил подверглась уменьшению их количества путём объединения правил друг с другом. Вот это и составляет основную проблему. Отсутствие же каких-либо комментариев практически не позволяет с ходу определить для чего используется конкретное правило. Поэтому аналогия — единственный, на мой взгляд, не слишком затратный метод добавления словоформ в существующий чужой словарь с неизвестной структурой правил.
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Сделал программку, которая проверяет какие правила из affix файла подходят для неизвестного слова. В среднем получается 12 подходящих правил. Теперь остается отбросить ненужные. Вот думаю как это лучше сделать. Может действительно по аналогии действовать, т.е.
1) создать список всех словоформ из словаря;
2) взять сколько-нибудь последних букв из "неизвестного слова" (не знаю сколько именно);
3) посмотреть какие правила наиболее часто встречаются в словаре для данного набора букв;
4) найденные правила применить к "неизвестному слову".
Как думаете, правильно я рассуждаю?
Отсутствует
cyber-pilot
Не пойдет, в русском языке нет ни классов слов, ни сингармонизма, чтобы по последним эн знакам определить, какое окончание цеплять.
Например, есть глаголы на ять, которые относятся к 2 спряжению.
Отсутствует
Я пока не вижу другого способа, чтобы выбрать наиболее подходящие правила. При том же я собираюсь сделать так, что если предложенные правила окажутся неправильными, то пользователь сможет выбрать другие.
Отсутствует
cyber-pilot
Не пойдет, в русском языке нет ни классов слов, ни сингармонизма, чтобы по последним эн знакам определить, какое окончание цеплять.
Например, есть глаголы на ять, которые относятся к 2 спряжению.
Вот здесь вот http://www.5ballov.ru/referats/preview/15883/1 например, говорится, что по принципу аналогии вероятность правильного анализа слов при обработке текстов любой тематики превышает 99%
И еще есть программы, которые умеют строить список словоформ для неизвестных слов, например ОРФО.
Отредактировано cyber-pilot (04-02-2008 15:27:41)
Отсутствует
И еще есть программы, которые умеют строить список словоформ для неизвестных слов, например ОРФО.
ОРФО задает несколько вопросов пользователю. т.к. по нескольким падежам узнать остальные окончания возможно.
говорится, что по принципу аналогии вероятность правильного анализа слов при обработке текстов любой тематики превышает 99%
Не стал бы доверять рефератам
Отсутствует
ОРФО задает несколько вопросов пользователю. т.к. по нескольким падежам узнать остальные окончания возможно.
У меня ОРФО сразу выдает гипотезы словоформ, причем первая из них в основном правильная. А если ни одна из них не подошла, то можно в режиме "Эксперт" самому выбрать, что это за слово.
Отсутствует
Сделал программку, которая анализирует неизвестное слово и выдает гипотезы остальных словоформ. В принципе довольно неплохо угадывает, если бы еще она определяла какая это часть речи, было бы вообще здорово.
http://folder.big.am/5498272
Отсутствует
Поскольку тему про организацию работы над словарём благополучно засрали, то может продолжим конструктивное обсуждение здесь?
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Там был мой ответ, который удалили. Напишу его сюда:
John Lynx
Подумал над Вашими словами.
Результат следующий:
Вся работа делится на 2 этапа:
1. Подготовительный. В котором определяется группа людей, которые будут работать над добавлением слов в словарь. Они определяются между собой, кто будет лидером (человеком, который будет отвечать за непосредственное добавление слов в словарь и который будет осуществлять общий контроль работы остальных членов группы). Они ищут всю доступную информацию по словарю (что он из себя представляет, как организован механизм добавления слов и т.д.), вся эта информация публикуется в доступном для всех месте. Эти же люди определяют критерии, по которым слово может быть добавлено в словарь. Ставится срок, к которому работа (или какой-то промежуточный релиз) должна быть выполнена.
2. Непосредственно работа. Тут могут быть нюансы. Если, например, много людей, то можно начать распределять между участниками диапазон букв в алфавите (например, первый предлагает к дополнению слова, начинающиеся на буквы а - г, второй - д - з и т.д.). Если нет, можно выбрать какой-то иной способ работы. Это уже проблема, которую нужно будет решать непосредственно на этом этапе работы. Заранее планировать это в деталях - слишком затратно по времени и несколько нерационально.
Здесь выполнение работы, контроль, возможная коррекция сроков выполнения работы....
Это, так сказать, набросок...
Отредактировано Quicksilver tears (24-11-2008 21:16:39)
Отсутствует
Что хотелось бы видеть мне.
1. Автоматическая сборка нужного варианта словаря.
2. Для безусловных и несомненных слов я бы предложил иметь основную базу. Плюс несколько дополнительных для сомнительных слов, специальных терминов, географических названий, имён фамилий. При этом каждый желающий мог бы выбрать себе необходимые дополнительные словари и не возникает больших проблем с включением или не включением каких-то слов в словарь.
3. Кстати, аналогично можно было бы включать в словарь и английские, немецкие, прочие словари делая би-, трилингвы.
Теперь замечания по наброску.
1. По-прежнему неясен вопрос: будет попытка продолжения развития словаря Лебедева, скажем в варианте 0.2.1 от Unghost или всё-таки будет абсолютно новый словарь?
2. Ничего не зная по пункту 2 трудно (по крайней мере для меня) принять решение стоит ли входить в группу или продолжать единоличные эксперименты.
Отредактировано Infant (24-11-2008 21:43:50)
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
Кстати, а с Лебедевым кто-нибудь контактировал, узнавал о том, продолжается ли работа над словарём, кто участвует и т.д.?
Отсутствует
Infant
1. По-прежнему неясен вопрос: будет попытка продолжения развития словаря Лебедева, скажем в варианте 0.2.1 от Unghost или всё-таки будет абсолютно новый словарь?
Я полагаю, что нужно сначала изучить уже существующий вариант. Так как создавать с нуля - крайне затратная и долгая работа.
2. Ничего не зная по пункту 2 трудно (по крайней мере для меня) принять решение стоит ли входить в группу или продолжать единоличные эксперименты
Подумаю, чуть позже отпишусь о подробностях.
Отсутствует