Добавление словаря в 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
Другие вопросы по тегам