Добавление словаря в Aspell/Pspell
Я успешно установил Aspell и скомпилировал PHP с Pspell, и все, кажется, работает нормально.
Единственное, что я не могу сделать, - это создать список "игнорируемых" слов или личный словарь, как бы вы к нему не обращались.
Я попробовал описанные здесь и здесь шаги, но ни один из них не дал никакого эффекта.
Как описано в приведенной выше ссылке и в документации Aspell, я попытался создать личный словарь, как описано в руководстве:
personal_ws-1.1 en 0
Rubiflex
quasirhombicosidodecahedron
Я поместил это в каталог aspell, в мой домашний каталог, в корневой каталог, и он так и не был найден. Документация Aspell никогда не говорит, где он должен жить или как его загрузить.
Другая ссылка на создание отдельного списка слов:
Создайте текстовый файл со словами, которые вы хотите добавить в словарь, где каждое слово находится на отдельной строке, а затем выполните следующую команду:
aspell --lang=en create master ./custom.rws < test.txt
Это создаст файл с именем custom.rws, который будет содержать закодированное слово (а) для словаря. Вы можете назвать файл как угодно, если расширение -.rws. Теперь, чтобы добавить это в словарь, переместите файл custom.rws в каталог словаря, который находится в /usr/lib/aspell, выполнив следующую команду:
cp custom.rws /usr/lib/aspell/
Чтобы завершить добавление его в словарь, перейдите в каталог словаря, выполнив следующее:
cd /usr/lib/aspell/ then edit the following file: nano en_US.multi
и добавьте следующую строку:
add custom.rws
Похоже, что ни один из этих методов не сработал, и я не могу найти четких примеров того, как правильно добавить словарь или список слов. Это были два наиболее перспективных метода, которые мне удалось найти, но ни один из них не сработал. Кто-нибудь знает, как я могу заставить Aspell использовать файл личного словаря, который я создаю?
Спасибо за ваше время.
РЕДАКТИРОВАТЬ: описанные здесь шаги работали для меня. Они очень похожи на описанные здесь, за исключением того, что последний ссылается на "en_US.multi", где первый ссылается на "en.multi". После добавления пользовательского списка в en.multi (в отличие от en_US.multi) он работал как положено.
3 ответа
Уважаемый запросчик переполнения стека,
Для моей последней работы над модулем и кодом Perl Text::Aspell для определения родного языка веб-посетителя, запрашивающего поисковую систему компании, я столкнулся с некоторыми ловушками, которые вы описываете (личный словарь, не реализованный в Aspell6). Однако я работал над этим, используя понятие "экстрадикт", по одному на каждый возможный язык.
Мне также пришлось обойти тот факт, что у Aspell нет словаря для арабского, иврита, японского, китайского и корейского языков. Эти языки рассматриваются специально.
Вы можете просмотреть полные последние коды Perl и bash для Linux и Windows под управлением Windows/MinGW по адресу http://vouters.dyndns.org/tima/Linux-Windows-Perl-Aspell-Determining_the_country_of_a_Web_query.html. Вы можете использовать ссылки URL в разделе ССЫЛКИ документа, чтобы адаптировать некоторые понятия кода Perl к PHP.
В надежде это поможет вам.
С уважением,
Филипп Воутерс (Фонтенбло / Франция)
Я смог добавить личный диктонар, используя опцию --add-extra-dicts для отмены вызова
aspell -c --add-extra-dicts =./custom.rws my_text_to_spell_check.txt
custom.rws был создан как изображено OP:
aspell --encoding = UTF-8 --lang =
создать мастер./custom.rws
И не забудьте добавить опцию --encoding opton, чтобы она соответствовала правильной кодировке вашего исходного файла.
Надеюсь, это может кому-то помочь!
Используя нижеприведенную версию Aspell с Cygwin:
International Ispell Version 3.1.20 (but really Aspell 0.60.6.1)
он искал личный словарь по имени .aspell.en.pws
в моем домашнем каталоге, независимо от того, что я указал в командной строке с --personal
вариант. Мне удалось разместить символическую ссылку с именем .aspell.en.pws
в моем домашнем каталоге, и пусть он указывает на другое место в моей файловой системе. Я должен был сначала создать файл и добавить требуемый заголовок, прежде чем aspell начнет добавлять его в мой личный словарь.
Короче говоря, вы можете сделать это:
echo "personal_ws-1.1 en" > ~/my/file/location.pws
ln -s ~/my/file/location.pws ~/.aspell.en.pws