Page 37 of 38

Posted: Thu Sep 03, 2020 8:09 pm
by Skif_off
AZJIO wrote:Мне не хватает экспорт слов с ошибками в список
Ну так добавьте (Или на ты? Путаюсь, блин, иногда, извиняюсь :():

Code: Select all

aspell.exe list --master=ru.rws --ignore-case < %FILE% > misspelled_words.txt
Если память не изменяет (давненько это делал), может всплыть нюанс с кодировкой: словарь в KOI8-R, консоль с OEM866... Возможно, стоит перекодировать словарь в Windows-1251, типа

Code: Select all

aspell.exe dump master ru > dump.txt
    перекодировать в AkelPad, например :)
aspell.exe --lang=ru create master ru_cp1251.rws < dump.txt
и использовать chcp 1251.


У Aspell, в отличие от Hunspell, очень простой формат словаря, не такой замороченный: это тупо текст по слову на строку, открывай где угодно и правь как угодно. И SPCK-файлы тоже.
До кучи ещё SpellCheckAddToWhiteList.js.

Posted: Fri Sep 04, 2020 4:18 am
by AZJIO
Skif_off
Или на ты?
без разницы.

Code: Select all

aspell.exe list --master=ru.rws --ignore-case < %FILE% > misspelled_words.txt
не работает... aspell.exe есть, ru.rws есть, < %FILE% > - и полный путь указывал и имя файла (текст с ошибками), как я понимаю misspelled_words.txt должен появиться. Но я уже и так и так файлы местами менял, не получаю результата. Открывается консоль и стоит, активность процесса 0.

Может сделаешь команду меню, чтобы она слова с ошибками файла текущей вкладки отправила в некий файл. Или в виде скрипта, чтобы сразу открыл этот файл.
У Aspell, в отличие от Hunspell, очень простой формат словаря, не такой замороченный: это тупо текст по слову на строку, открывай где угодно и правь как угодно.
я давно не ковырял словари, но это мне кажется недостаток, когда почти одинаковые слова: говорил, говорю, говорила, говорило, говорить, говоря, говорил, говорит, говорили, говорят будут занимать по количеству строк, когда можно указать "говор" и далее возможные окончания, да и окончания можно рил, рило вписать как вариации части "рил", ит ить типа говор|ит|ь.

Posted: Sat Sep 05, 2020 6:34 am
by Skif_off
AZJIO wrote:без разницы.
Ну, когда переходишь с человеком на ты, а спустя какое-то время не можешь вспомнить, перешли или нет, и начинаешь выкать на всякий случай - это немного неловко :)

AZJIO wrote:не работает... aspell.exe есть, ru.rws есть, < %FILE% > - и полный путь указывал и имя файла (текст с ошибками), как я понимаю misspelled_words.txt должен появиться. Но я уже и так и так файлы местами менял, не получаю результата. Открывается консоль и стоит, активность процесса 0.
В смысле "открывается консоль"? Надо открыть консоль и писать. Или что-то типа пробовать

Code: Select all

cmd.exe /k chcp1251 && aspell ... 
Насчёт кодировки был неправ, можно забить на конвертирование словаря: взять cp-1251.dat отсюда, положить в папку data к остальным *.dat, дописать в командную строку

Code: Select all

--encoding=cp-1251
Команда chcp будет не нужна.

К слову, попытка создать словарь с "ё" в cp1251 заканчивается неудачей.
AZJIO wrote:я давно не ковырял словари, но это мне кажется недостаток, когда почти одинаковые слова: говорил, говорю, говорила, говорило, говорить, говоря, говорил, говорит, говорили, говорят будут занимать по количеству строк, когда можно указать "говор" и далее возможные окончания, да и окончания можно рил, рило вписать как вариации части "рил", ит ить типа говор|ит|ь.
Ну, в принципе не все формы используются одинаково часто. К тому же это только форма записи: открыл, глянул - всё на виду. Форма записи Hunspell не очень наглядна.

Posted: Sat Sep 05, 2020 7:40 am
by AZJIO
Skif_off
Автор плагина DSpellCheck по просьбе Dm.Fedorov на руборде добавил типа присоединение пользовательского словаря, то есть пользователь жмёт кнопку "добавить слово в словарь", оно добавляется в отдельный словарь, оригинальные не остаются нетронутыми. Когда пользователь передумал, то можно свой словарь поправить. Я не вдавался, но думаю этот пользовательский словарь будет обычным списком слов.
В смысле "открывается консоль"? Надо открыть консоль и писать. Или что-то типа пробовать
Я не любитель печатать в консоли, поэтому я пишу ком-строку в редакторе, создаю ярлык проги и добавляю ком-строку, то есть фактически консоль при запуске получипа параметры для работы.

Posted: Sat Sep 05, 2020 10:33 am
by Skif_off
AZJIO wrote:Автор плагина DSpellCheck по просьбе Dm.Fedorov на руборде добавил типа присоединение пользовательского словаря
SpellCheck такое давно умеет, причём в SPCK-файлах для отдельных слов можно учитывать регистр (имена собственные, например, аббревиатуры и т.п.), до кучи выше упоминал SpellCheckAddToWhiteList.js. Они, правда, белыми списками зовутся, но на деле - чем не словарь? :) У меня в txt.spck около 11 тыс. слов забито (многовато, конечно, поэтому фоновую проверку включаю лишь по необходимости).
Ещё у Aspell вроде были ключи для добавления в словарь отдельных слов, но это, по-моему, как-то не очень хорошо.
AZJIO wrote:Я не любитель печатать в консоли, поэтому я пишу ком-строку в редакторе, создаю ярлык проги и добавляю ком-строку, то есть фактически консоль при запуске получипа параметры для работы.
Не знаю, проверять с ярлыком лень, сам иногда в редакторе сначала пишу строку, иногда сразу в консоли, по ситуации. Попробовал в файловом менеджере:

Code: Select all

cmd /k path\to\aspell.exe list --master=ru.rws --ignore-case --encoding=cp-1251 < "path\to\Coder-Rus.txt" > "C:\temp\misspelled_words.txt"
- работает. В плагине Log попробовал так

Code: Select all

cmd /k path\to\aspell.exe list --master=ru.rws --ignore-case --encoding=cp-1251 < "path\to\Coder-Rus.txt"
и в панели вывода получил тот же список.

В батник, по-идее, можно завернуть, типа

Code: Select all

aspell.exe list --master=ru.rws --ignore-case --encoding=cp-1251 < %1 > %2
Это на любителя :)

В общем, так или иначе, можно заставить работать (пакетно или нет, завернуть в скрипт или с плагом Log, например), кодировка вот только :( Только однобайтные, похоже, надо учитывать. И с cp-1251.dat попроще, чем с менее привычными ISO 8859-5 или KOI8-R.

Edit: Укоротил команды, эти длинные пути только перегружают пример.

Posted: Sat Sep 05, 2020 10:48 am
by Skif_off
Хм, а я, похоже, гоню: для команды list ведь нужно создать свой словарь и можно через ru.multi подключить его до кучи к ru.rws, SPCK тут не сработаеют. Давно такие вещи делал :( В принципе, покадать слова в список, сохранить в KOI8-R с CRLF и создать его - не проблема...

Spellcheckless

Posted: Tue Sep 15, 2020 12:39 am
by ar
I have 64-bit version of Akelpad but SpellCheck.dll is 32-bit program. I don't have MSVC so could the owner of that file release a 64-bit version of the dll?

Posted: Sat Aug 07, 2021 9:42 am
by Kyogre
У меня если в тексте присутствуют ссылки вида

Code: Select all

https://www.test.test/NEWDERY-External-Nintendo-Adjustable-Kickstand-Black/dp/B07T7111QW/ref=sr_1_2_sspa?ascsubtag=01hf1W2Es0GFWMCn96YQpPp&dchild=1&keywords=10000mAh+Battery+Charger+Case+for+Switch%2C+YOBWIN+Portable+Backup+Charger+Station+Console+with+a+Pair+of+Joycon+Grip%2C+with+Kick+Stand+%26+Game+Card+Slot+Extended+Battery+Pack&linkCode=g13&qid=1627128161&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyUFFWVzJPNlRKWVE4JmVuY3J5cHRlZElkPUEwMjI5ODMxMjRLQjhINU1VNFpYNSZlbmNyeXB0ZWRBZElkPUEwMDczNzQ0NFNFWVNCS04zTVk3JndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==
то при попытке проверить орфографию Akelpad намертво зависает.
Кто-нибудь разобрался с этой проблемой?

Posted: Sat May 28, 2022 11:08 pm
by hun666
Вот зачем aspell, если есть hunspell ? Словарь последнего можно обновлять из браузерных файлов .aff и .dic.

Какое-то ядро не нужно, весь бинарник собирается статично с помощью mingw32 или mingw64 из пакета MSYS2. Просто добавляете в мингв пакеты, в том числе hunspell. Для 32битки это команда внутри среды:

Code: Select all

 pacman -S mingw-w64-i686-hunspell 
В приложении которое собирается уже просто g++ или через mingw32-make.exe при инициализации грузятся словари, и потом можно использовать

Code: Select all

#include <hunspell.hxx>

int wmain()
{
const char *aff = "ru_RU.aff";
const char *dic = "ru_RU.dic";
setlocale(LC_ALL, "Russian");
spellObj = new Hunspell(aff,dic);
check("тест");
sug("карр");
return 0;
}
где check как-бы просто проверка, а sug - список предположений

Code: Select all

void check(const char* str)
{
int result = spellObj->spell(str,NULL,NULL);
string stro=str;
std::wcout << utf8toUtf16(stro) << L" :: result= " << result << std::endl;

}

void sug(string str)
{
auto suggest_list = spellObj->suggest(str.c_str());
std::wcout << L"suggests:" << std::endl;
for (auto it = begin (suggest_list); it != end (suggest_list); ++it) {
	std::wcout << utf8toUtf16(it[0]) << std::endl;
	}
}
Результат:

Code: Select all

тест :: result= 1
suggests:
корр
карп
карг
карт
кари
кар
карра
карри
кара
каре
кавр
кайр
карл
карк
кары
Хотел я на базе AutoComplete в плагине Coder сделать, но что-то там совсем легко запутаться. Тяжко.

Для совместимости DLL вроде достаточно добавить флаги линковки gcc или g++

Code: Select all

 -static-libgcc -static-libstdc++ -Wl,-Bstatic,--whole-archive -lwinpthread -lm -Wl,--no-whole-archive
.

Posted: Sat Jun 04, 2022 7:19 pm
by VladSh
hun666
Никто не против Hunspell, просто код для Aspell писался очень давно. Тем более, что у Hunspell, вроде как, есть возможность указать сразу несколько словарей, например русский и английский.
Если потянете этот плагин, то все только спасибо скажут!

Posted: Tue Jun 21, 2022 2:17 pm
by random6_2020
Короче два года прошло и никто так и пальцем не пошевелил :cry:...
Даже с моим треш-скиллом в программинге можно что-то сделать за такое время, например кое-как привинтить хунспелл к этому спелчекеру. :idea: 8)

Забирайте уж:
SpellChecker 1.3 x64 | Source

Файлы .dic и .aff должны быть в \AkelFiles\Plugs\SpellCheck относительно корневой папки акельпада (где и .ini).

Posted: Wed Jun 22, 2022 6:49 am
by Diamen
random6_2020 wrote:SpellChecker 1.3 x64
How to configure it?

Posted: Wed Jun 22, 2022 7:57 am
by random6_2020
Diamen wrote:How to configure it?
Settings->Plugins->SpellCheck::Settings->Call (Maybe add shortcut to it there too)
The dictionaries should go to \AkelFiles\Plugs\SpellCheck relative to AkelPad's root folder where .ini and .exe are. Then select preferred dictionary in the dropdown in the settings.

I recommend setting Spellcheck::Background to a shortcut instead of autorun (checked state) because it slows down the editor startup depending on dictionary size.

Posted: Wed Jun 22, 2022 8:12 am
by Diamen
Ty, It work!
It would be appropriate to allocate the Dictionaries in Plugs/Spellcheck folder as standard plugins.

Hungspell core setting what does it do?

Some problems:
- Word suggest not handle accented word.
- I often get error messagebox and after work fine.
- When background is enabled, the red row start strong, after word recognition turn to light and remove row only for last character in word.

Posted: Wed Jun 22, 2022 9:52 am
by random6_2020
Diamen:
I have updated the plugin. Question about "core path" should be no more and dictionaries should go to \AkelFiles\Plugs\SpellCheck now.

The error is the stuff from the plugin options, it shows if there are no corrections to the word found. If you don't need it, disable it in the Settings.

> Some problems
I have no faintest clue about other internals of this plugin or Hunspell so slim chance I actually fix those.
It may help to check the dicts about accented stuff.
And I don't really get what you mean about underlining: better to provide minimal steps to reproduce the bug starting from an empty file.