Имя: Пароль:
IT
 
Предложите алгоритм для автоматического исправления "слипшихся" и "разряженных"
,
0 trdm
 
20.12.21
12:05
Предложите алгоритм для автоматического исправления "слипшихся" и "разряженных" слов в тексте.
Пример текста:
"Пр е д л о ж итеалгоритм для авто ма тич еского ис правления "слипшихся" и "разряженных" слов в тексте."
Предположим, что словарь слов есть и он содержится в списке значений.
Есть и незнакомые словарю слова, что решается дополнительным списком.
Остальные слова и "разряженные" и "слипшиеся" соответствуют словарю.

Столкнулся с проблемой деления слов на более мелкие :( но правильные.
1 trdm
 
20.12.21
12:07
Для заполнения словаря использовал словарь "Hunspell" из плагина к Notepad++.
Язык С++/Qt.
2 Kassern
 
20.12.21
12:07
(0) это не такая уж тривиальная задача. СтрЗаменить тут не проканает))
3 trdm
 
20.12.21
12:08
-Есть и незнакомые словарю слова, что решается дополнительным списком.
+Есть и незнакомые словарю слова, что решается дополнительным списком, хотя и со скрипом...
4 trdm
 
20.12.21
12:08
(2) Знаю.
Но когда тебе читалка бубнит слипшийся текст, то уши вянут на корню...
5 dubolom
 
20.12.21
12:10
Выкинуть из текста пробелы.
Разбить свой словарь на группы слов по длине.
Потом начиная с первого символа сравнивать последовательности от 1 буквы и дальше со словарём. И отрезать найденые слова.
Возможны неоднозначности, поэтому, если слово не ищется после "отрезания", то возвращаться на прошлую итерацию. В 99% случаев такого хватит.
6 серый КТУЛХУ
 
20.12.21
12:10
если проблема только с слипшихся - вроде разбивка по словарю должна работать. нэ?
7 trdm
 
20.12.21
12:10
QString uTextCorrector::correct(QString &psIn)
{
    m_inputStr = psIn, m_outputStr = "";
    QString line, vWord, vWordLW, vWordFR, line_part, line_partLC;
    uStringType vType, vCurrType;
    int vPartCnt, vPartCntW;
    QStack<QString> vWordStack;
    QMap<QString,QString> vWordMapFounds;
    QMap<QString,QString> vWordMapFoundsLC;
    QStringList strings_txt = m_inputStr.split('\n'), line_items;
    kiilTransferLines(strings_txt);
    int vReplaceCuonter = 0, vLineCounter = 0, vLineAll = strings_txt.size();
    m_lisrWidget->clear();
    foreach (line, strings_txt) {        
        while (line.indexOf("  ") != -1) {
            line = line.replace("  "," ");
        }
        vLineCounter++;
        if (vLineCounter % 50 == 0) {
            vWord = QString::fromUtf8("Обработано строк: %1 из %2").arg(vLineCounter).arg(vLineAll);
            status(vWord);
            vWord = "";
        }
        if (vLineCounter == 24) {
            vLineCounter++;
            vLineCounter--;
        }
        line = line.replace("  "," ");
        replaceFragments(line, true);    //    line = line.replace(","," ,");        line = line.replace("."," .");        line = line.replace(":"," :");
        //qDebug() << "line: " << vLineCounter << line;
top_step:
        line_items = line.split(" ");        vPartCnt = line_items.count();
        vReplaceCuonter += replaceLat2Cir(line_items, line);
        vReplaceCuonter += replaceQuestionWord(line_items, line);
        if (line_items.size() > 0) {
            bool vHasRplc = false;
            for (int il4 = 0; il4 < vPartCnt; ++il4) {
                vWord = line_items.at(il4);
                vWordLW = vWord;
                //vWordLW = vWordLW.toLower();
                if (!spell(vWordLW)) {
                    line_partLC = correctWord(vWordLW);
                    if (line_partLC.compare(vWordLW) != 0) {
                        vHasRplc = true;
                        line = line.replace(vWordLW, line_partLC, Qt::CaseInsensitive);
                    }
                }
            }
            if (vHasRplc) {
                line_items = line.split(" ");        vPartCnt = line_items.count();
            }
        }
        int vCnt2, vCnt3;

        for (vCnt2 = 0; vCnt2 < vPartCnt; ++vCnt2) { // строки
            vWord = ""; vPartCntW = 0; vWordFR = "";
            if (vWordStack.size() > 0) {
                //vCnt2 = vCnt3;
                vWord = vWordStack.pop();
                //qDebug() << "Test (vWordStack.pop): " << vWord;
                if (vWordMapFoundsLC.contains(vWord)) {
                    vWord = vWordMapFoundsLC.value(vWord);
                }
                if (vWordMapFounds.contains(vWord)) {
                    vWordFR = vWordMapFounds.value(vWord);
                    line = line.replace(vWordFR, vWord);
                    vReplaceCuonter++;
                }
            }
            vWord = ""; vPartCntW = 0; vWordFR = "";
            vCurrType = uUnknown;
            vWordMapFounds.clear();
            vWordMapFoundsLC.clear();
            vWordStack.clear(); // << тут ловить самую большую слову..
            bool vFound = false;
            for (vCnt3 = vCnt2; vCnt3 < vPartCnt; ++vCnt3) { // слова.
                vFound = false;
                line_part = line_items.at(vCnt3);
                vType = typeString(line_part);
                if (!(vType == uCirLetter || vType == uLatLetter)) {
                    if (vType == uLatCirLetter) {
                        line_part.append("(").append(m_lineCir).append(" | ").append(m_lineLat).append(")");
                        m_lisrWidget->addItem(line_part);
                    }
                    break;
                }
                if (vCurrType == uUnknown) {
                    vCurrType = vType;
                    setCurrentLangPack(vType);
                } else if (vCurrType != vType) {
                    break;
                }
                if (line_part.length() > 5) {
                    line_partLC = line_part;
                    if (spell(line_part)) {
                        continue;
                    }
                    line_partLC = line_partLC.toLower();
                    vWordLW = line_partLC;
                }
                vWord.append(line_part);
                vWordFR.append(line_part).append(" ");
                vPartCntW++;
                if (vWord.length() == 1) {    continue;                    }

                vWordLW = vWord;
                vWordLW = vWordLW.toLower();
                if (spell(vWordLW)) {
                    vCnt2 = vCnt3;
                    vWordStack.push(vWordLW);
                    vWordMapFounds.insert(vWord, vWordFR.trimmed());
                    vWordMapFoundsLC.insert(vWordLW,vWord);
                    //qDebug() << "Found-2: " << vWord << "vCnt2:" << vCnt2;
                }
            }
            if (vWordStack.size() > 0) {
                vWord = vWordStack.pop();
                if (vWordMapFoundsLC.contains(vWord)) {
                    vWord = vWordMapFoundsLC.value(vWord);
                }
                if (vWordMapFounds.contains(vWord)) {
                    vWordFR = vWordMapFounds.value(vWord);
                    line = line.replace(vWordFR, vWord);
                    vReplaceCuonter++;
                }
            }

        }
        replaceFragments(line, false);    //            line = line.replace(" ,",",");        line = line.replace(" .",".");        line = line.replace(" :",":");

        m_outputStr.append(line);
        m_outputStr.append('\n');
    }
    QString vStat = QString::fromUtf8("Replace cuonter: %1").arg(vReplaceCuonter);
    m_statusLabel->setText(vStat);
    return m_outputStr;
}
8 dubolom
 
20.12.21
12:11
(7) Стыдно должно быть издеваться над честными 1с-никами бусурманским кодом.
9 Kassern
 
20.12.21
12:14
основная проблема понять, смысл текста, например текст "я шел к купил", как понять, что надо "шел" и "к" объединить в шелк?) Оба слова могут существовать раздельно и только контекст заставляет писать их вместе
10 dubolom
 
20.12.21
12:16
(9) Это уже без ИИ не решить. Но такого не так много, подобные косяки можно и руками вылавливать потом.
11 trdm
 
20.12.21
12:16
(9) Именно.
У меня с этим беда на данный момент.
12 Злопчинский
 
20.12.21
12:18
как вы вообще аудио слушаете... оно ж медленное шо капец. я сколько ни пробовал - не идет...
13 trdm
 
20.12.21
12:18
(8) Да код на уровне 3-го класса.
14 trdm
 
20.12.21
12:19
(12) В читалках есть настройки типа слов в минуту.
https://prnt.sc/23oq6zc
Подбираешь под свое ухо..
15 polosov
 
20.12.21
12:20
if (vLineCounter == 24) {
            vLineCounter++;
            vLineCounter--;
        }

Это какая-то шутка на С++?
16 trdm
 
20.12.21
12:20
(15) Ловил отладчиком определенную строку.
17 trdm
 
20.12.21
12:25
что пока получается:
https://prnt.sc/23oqz3n
18 trdm
 
20.12.21
12:27
проект с++/Qt. https://disk.yandex.ru/d/WX2eAbKshjjMGg
Настройка "Папка словарей" - названа не корректно, пока там путь к основному словарю, типа:
"C:/Users/trdm/AppData/Roaming/Notepad++/plugins/config/Hunspell/ru_RU.dic"
19 PLUT
 
20.12.21
12:29
- молока купил?
- молокаку не пил
20 polosov
 
20.12.21
12:29
(18) Типа твой гений дарит нам? ))
21 trdm
 
20.12.21
12:29
Добивает:
Этотрассказнаписаннаоснованииреальных фактов, нонекоторыеимена, названияместисобытиябыли
изменены.
>>>  
Этот рассказ написанна основании реальных фактов, ноне которые имена, названиям ест и события были изменены.
22 polosov
 
20.12.21
12:31
(21) А ты реально думал, что в 50 строк ты сможешь это решить?
23 trdm
 
20.12.21
12:39
(22) я за идеями пришел, а не за утешениями.
24 Злопчинский
 
20.12.21
12:42
(23) м.б частотный анализ слов в тексте и допобработка явных выкидышей...?
25 Злопчинский
 
20.12.21
12:43
какая гадость этот ваш https://prnt.sc - чего он все время капчу требует...
26 polosov
 
20.12.21
12:45
(23) Сейчас модно такие задачи скармливать нейросетям.
Возьми какую-нибудь открытую нейросеть для текстов. Программно сделай кривые тексты из собрания сочинений Толстого и обучи ее.
27 Bigbro
 
20.12.21
12:45
я шел к бабе, нес подарок
я шелк бабе нес, подарок
28 trdm
 
20.12.21
12:47
(27) ага..
29 fisher
 
20.12.21
12:49
(0) Это нечеткая задача. Если для читалки - то я бы забил и просто нашел книгу в другом источнике с нормальным форматированием.
30 Злопчинский
 
20.12.21
12:50
м у л ь т и к ан а л ьный - уже предлагали?
31 Bigbro
 
20.12.21
12:50
(30) ))) а вы знаток боянов, сэр!
32 trdm
 
20.12.21
12:52
(30) выход коррктора:
"мультиканальный - уже предлагались"
Аж отлегло :) мой софт-не извращенец :)
33 fisher
 
20.12.21
12:53
(31) Ворд этого слова до сих пор не знает
34 Garykom
 
гуру
20.12.21
12:53
(0) Алгоритм тут слабовато сказано
Словарь вряд ли содержит разные окончания

Короче для начала разбивать на предложения по знакам препинания ну там "." или "," и т.д.
Далее в предложениях убирать " " и искать корни слов из словаря
Затем тупо полный перебор чтобы составить правильные предложения
35 Злопчинский
 
20.12.21
12:54
(31) "Ну так у меня, Петька, и ноги погрязнее твоих будут.."
36 Kassern
 
20.12.21
13:00
лучшие умы бьются, чтобы научить ИИ глубокому анализу текста, что он понимал контекст, но до сих пор добиться 100% результата не удается, вот призеры конкурса:
https://ai.upgreat.one/participants/leaderboard/
37 trdm
 
20.12.21
13:01
(26) Это не приоритетная задача, а просто тулза для хобби.
38 Kassern
 
20.12.21
13:01
но вы старайтесь, может у вас получиться обучить систему понимать смысл предложения и соединять верно слова)
39 acht
 
20.12.21
13:03
(32) > мой софт-не извращенец
На тебе тесткейсов:

о б л о м о в ц ы
ш е с т и к а н а л ь н ы й
е л ь ц и н и з ма
з а д о б р е е т
з а р у б е ж о м
к о л б а с и т
к у л ь т у р о л о г и и
о т м е ль к а л а
м а х а ч к а л а
с т р и п т и з е р ш ей
с п е ц н а з о в е ц
и м  п е р ц е в
б е с к а л о р и й н ы й
м и р о с л а д а
л е д н е ц в е т у щ и й
м у х а м м е д а
п л е н о ч к а
п о х о д о ч к а
н а в о з в р а щ а л
с а м о к л е й к о й
ф у н д а м е н т а л и с т ы
40 trdm
 
20.12.21
13:03
(38) я уже 4 дня варю эту идею в голове. и 2 деня кодил.
пока беру выходной на обдумывание :)
41 Garykom
 
гуру
20.12.21
13:03
(38) Тут такой задачи нет
Простой перебор с ветвлением и отбрасыванием не сошедшихся предложений по словарю
Затык только в полном словаре с окончаниями разными
И не словарными частями типа ошибок или неких формул или сокращений
42 trdm
 
20.12.21
13:04
(39) Выход:
обломов ц ы
шести канальный
ель цинизма
зад обреет
заруб ежом
колбаси т
культурологии
отмель кала
маха ч кал а
Маха ч кал а
стриптизершей
спецназовец
им перцев
бес калорийный
миро слада
лед не цветущий
мухам меда
пленочка
походочка
навоз вращал
самок лейкой
фундамента листы
43 acht
 
20.12.21
13:07
(42) Действительно - не извращенец, но сексист =)
44 trdm
 
20.12.21
13:08
я не до конца не разобрался с последней колонкой *.aff - файла:
ru_RU.aff:
SET UTF-8
TRY иаоентрвсйлпкыьямдушзбгчщюжцхфэъАКСВПМГБЛТДНИОРФЭЕХЧУЗШЯЮЦЖЙЩ

SFX Z Y 4
SFX Z   ый   о            [лнртв]ый
SFX Z   ий   о            ький
SFX Z   ий   и            [цс]кий
SFX Z   ий   е            щий

SFX Y Y 435
SFX Y   чь   жешь         чь
SFX Y   чь   жете         чь
SFX Y   чь   жет          чь
SFX Y   чь   жем          чь
SFX Y   чь   гут          чь
SFX Y   чь   гу           чь
SFX Y   заться жутся        заться
SFX Y   заться жусь         заться
SFX Y   заться жешься       заться
SFX Y   заться жется        заться
SFX Y   заться жетесь       заться
SFX Y   заться жемся        заться
SFX Y   зать жут          зать
SFX Y   зать жу           зать
SFX Y   зать жешь         зать
SFX Y   зать жете         зать
SFX Y   зать жет          зать
SFX Y   зать жем          зать
SFX Y   ыться удутся       быться
SFX Y   ыться удусь        быться
SFX Y   ыться удешься      быться
SFX Y   ыться удется       быться
SFX Y   ыться удетесь      быться
SFX Y   ыться удемся       быться
SFX Y   ыть  удут         быть
SFX Y   ыть  уду          быть
SFX Y   ыть  удешь        быть
SFX Y   ыть  удете        быть
SFX Y   ыть  удет         быть
SFX Y   ыть  удем         быть
SFX Y   ваться овутся       зваться
SFX Y   ваться овусь        зваться
SFX Y   ваться овешься      зваться
SFX Y   ваться овется       зваться
SFX Y   ваться оветесь      зваться
SFX Y   ваться овемся       зваться
SFX Y   ваться овёшься      зваться
SFX Y   ваться овётся       зваться
SFX Y   ваться овётесь      зваться
SFX Y   ваться овёмся       зваться
SFX Y   вать овут         звать
SFX Y   вать ову          звать
SFX Y   вать овешь        звать
SFX Y   вать овете        звать
SFX Y   вать овет         звать
SFX Y   вать овем         звать
SFX Y   вать овёшь        звать
SFX Y   вать овёте        звать
SFX Y   вать овёт         звать
SFX Y   вать овём         звать
SFX Y   жаться гутся        жаться
SFX Y   жаться гусь         жаться
SFX Y   жать гут          жать
SFX Y   жать гу           жать
SFX Y   ться шься         даться
SFX Y   ться вутся        лыться
SFX Y   ться вусь         лыться
SFX Y   ться вешься       лыться
SFX Y   ться вется        лыться
SFX Y   ться ветесь       лыться
SFX Y   ться вемся        лыться
SFX Y   ться вёшься       лыться
SFX Y   ться вётся        лыться
SFX Y   ться вётесь       лыться
SFX Y   ться вёмся        лыться
SFX Y   ться стся         даться
SFX Y   ться нутся        статься
SFX Y   ться нусь         статься
SFX Y   ться нешься       статься
SFX Y   ться нется        статься
SFX Y   ться нетесь       статься
SFX Y   ться немся        статься
SFX Y   ться мся          даться
SFX Y   ться дутся        даться
SFX Y   ться дитесь       даться
SFX Y   ться димся        даться
SFX Y   ть   шь           дать
SFX Y   ть   вут          лыть
SFX Y   ть   ву           лыть
SFX Y   ть   вешь         лыть
SFX Y   ть   вете         лыть
SFX Y   ть   вет          лыть
SFX Y   ть   вем          лыть
SFX Y   ть   вёшь         лыть
SFX Y   ть   вёте         лыть
SFX Y   ть   вёт          лыть
SFX Y   ть   вём          лыть
SFX Y   ть   ут           лезть
SFX Y   ть   у            лезть
SFX Y   ть   ст           дать
SFX Y   ть   нут          стать
SFX Y   ть   ну           стать
SFX Y   ть   нешь         стать
SFX Y   ть   нете         стать
SFX Y   ть   нет          стать
SFX Y   ть   нем          стать
SFX Y   ть   м            дать
SFX Y   ть   ешь          лезть
SFX Y   ть   ете          лезть
SFX Y   ть   ет           лезть
SFX Y   ть   ем           лезть
SFX Y   ть   дут          дать
SFX Y   ть   дите         дать
SFX Y   ть   дим          дать
SFX Y   таться чутся        [^с]таться
SFX Y   таться чусь         [^с]таться
SFX Y   таться чешься       [^с]таться
SFX Y   таться чется        [^с]таться
SFX Y   таться четесь       [^с]таться
SFX Y   таться чемся        [^с]таться
SFX Y   тать чут          [^с]тать
SFX Y   тать чу           [^с]тать
SFX Y   тать чешь         [^с]тать
SFX Y   тать чете         [^с]тать
SFX Y   тать чет          [^с]тать
SFX Y   тать чем          [^с]тать
SFX Y   сться дутся        асться
SFX Y   сться дусь         асться
SFX Y   сться дешься       асться
SFX Y   сться дется        асться
SFX Y   сться детесь       асться

может кто подскажет что она обозначает? "[лнртв]ый", "[^с]тать"
45 trdm
 
20.12.21
13:10
+(44) а вот и русский словарь к нему
ru_RU.dic:

146269
ЧПУ
ЧП
ЧМ
ЧК
Чэнду
Чжэнчжоу
Чувашия/H
Чуя/H
Чунцин/J
Чукотка/H
Чухлома/H
Чудскому
Чудском
Чудского
Чудское
Чудским
Чонджу
Чогори
Читтагонг/J
Чита/H
Чимкент/J
Чимборасо
Чили
Чикаго
Чечня/E
Черусти/O
Черновцы/O
Черногорск/J
Черногория/H
Черноголовка/H
Чернобыль/J
Чернигов/J
Черненко
Черкесск/J
Черкассы/O
Череповец/G
Череповцом
Черемушки/O
Черёмушки/O
Чемульпо
Челябинск/J
Челны/O
Челнов
Чеховом
Чехов/G
Чехословакия/H
Чехия/H
Чегем/J
Чебышев/G
Чебышёв/G
Чебоксары/O
46 fisher
 
20.12.21
13:16
(42) Ну и куда оно такое свистит? Для практических целей - бесполезняк. Тут простыми алгоритмами не обойдешься.
47 acht
 
20.12.21
13:22
(44) https://mozilla-russia.org/projects/dictionary/hunspell.html

Пример - прямо в начале
"Описание", где "Класс A определяет префикс re-. Класс B — два суффикса -ed: один для слов, оканчивающихся не на y и второй — для оканчивающихся на y."

То есть "[лнртв]ый" , он к словам, оканчивающиеся на "лый", "ный", "рый", "тый", "вый". А "[^с]тать" - к словам оканчиваюющися на "тать", но не на "стать"

Ну и еще в части "Морфологический анализ" усугбление
48 Kassern
 
20.12.21
13:23
(42)(41) "фундамента листы" - логика определения первого слова без контекста к этому и приводит. Как вы без него поймете как слова разграничить? Если предложение "С фундамента листы убрать не проблема", то норм разделение, а если "фундаметалисты отвергают либеральный подход в теологии" то уже совсем другое дело.
49 Злопчинский
 
20.12.21
13:24
(42) "отмель кала" - это сильно!
50 fisher
 
20.12.21
13:26
"бес калорийный" - тоже неплохо
51 fisher
 
20.12.21
13:28
Да там каждый третий вариант зажигает.
52 trdm
 
20.12.21
13:30
(47) Мерси. На выходных займусь..
53 fisher
 
20.12.21
13:36
Нужен максимально полный словарь, генерация всех возможных вариантов предложений по словарю и отсев вариантов на основе анализа синтаксического разбора получившихся предложений. Тогда, в принципе, можно получить более-менее приемлемый результат.
54 Kassern
 
20.12.21
13:39
(53) может получиться так, что разделение слова возможно в 2 вариантах предложения. А вот определить какое из них верное возможно лишь при анализе контекста прошлых предолжений. Как тогда быть?)
55 Базис
 
naïve
20.12.21
13:41
Исходный текст откуда появляется? Распознавание звука?
56 acht
 
20.12.21
13:43
(54) Там еще есть слой имен собвственных. Ну их, исключениями наверно можно...

Кайма новых островов
Мал ежик
57 fisher
 
20.12.21
13:48
(53) + Другими словами, при выработке правил отсева в качестве нейронки придется поработать самому разработчик. Но КМК, неплохого результата можно добиться обозримым набором правил, что позволит получать результаты ненамного хуже, чем на мегаобученной меганейронке. И гораздо эффективнее в части использования ресурсов.
(54) Тут и нейронка не факт что поможет. Не представляю, как ее на такое обучать, чтобы скайнет в процессе не родился. Цель - получить приемлемый с практической точки зрения результат.
(56) Главное, чтобы словарь знал эти имена собственные и варианты с ними тоже попали на вход. А дальше с этим уже можно работать.
58 Kassern
 
20.12.21
13:55
(57) "Тут и нейронка не факт что поможет" я думаю, что это решаемая задача, прикручиваем квантовые возможности для рассчетов вариантов текстов, сравниваем с миллионами других текстов, где использовались те, или иные варианты словосочетаний и про индексу схожести определяем нужное значение)
59 Kassern
 
20.12.21
13:57
либо определяем о чем идет речь в тексте, а далее на основе связанных по смыслу слов определяем как разбить нужные слова.
60 fisher
 
20.12.21
13:57
(58) Теоретически может и решаемая. Только вот обучающие данные готовить и размечать пол-китая поседеет, наверное.
61 Kassern
 
20.12.21
13:59
(60) уже сейчас есть библиотеки, которые вычленяют существительные/прилагательные из предложений. На основе их попытаться определить контекст и выбирать нужное значение.
62 Kassern
 
20.12.21
14:00
(60) сделать типа капчи, дают тебе предложение с разделением ИИ, а ты выбираешь какое верное для авторизации)
63 fisher
 
20.12.21
14:02
(61) Ну, примерно это я и имел в виду, когда писал про синтаксический разбор предложений.
64 Pprog151713
 
20.12.21
14:51
Скажи, что заносить текст надо правильно. И предложить вариант слипнуть все, а потом разделить в среднем на 5 букв.
65 Garykom
 
гуру
20.12.21
15:08
(48) просто все возможные варианты получить вполне достаточно
далее методы ML помогут, нужен словарь частых сочетаний слов и все
66 Garykom
 
гуру
20.12.21
15:09
(65)+ причем не словарь как положительный (возможные сочетания) так и отрицательный на невозможные сочетания
типа "фундамент" не бывает "либеральным" :)
67 acht
 
20.12.21
15:13
(66) У тебя точно родной язык русский? =)

"Но отрицая капитализм как экономику, коммунизм не отверг либерализм в его философских основах. Более того - он состоялся на либеральном фундаменте, продолжив в преображённом виде начатую либералами проповедь свободы."
68 Kassern
 
20.12.21
15:14
(66) зато может быть словосочетание "Либеральный догматизм как фундамент западного доминирования"
69 Kassern
 
20.12.21
15:15
в общем не все так просто)
70 vs84
 
20.12.21
16:27
(0) какая практическая задача вызвала необходимость этого? Какой процесс является поставщиком разряженных и слипшихся слов?
71 Ведущий
 
20.12.21
18:26
(0) >> Столкнулся с проблемой деления слов на более мелкие :( но правильные.

Не всегда нужно делить на более мелкие, есть нюансы. Пример: слово "Мультиканальный" лучше не делить.
72 Fragster
 
гуру
20.12.21
18:38
(71) есть варианты, когда вообще хз как, например "поэтому"
73 Ведущий
 
20.12.21
18:45
(72) Точно. Нужно поставить задачу с более строгими условиями, тогда и решение проще будет найти.

Например, если отдельно слово в тексте само по себе является правильным словом, то его не нужно объединять с соседними буквами или пытаться разделить.
74 Ведущий
 
21.12.21
00:13
(0) Наверное, лучше не "разряженных", а "разреженных", от слова "редко", как разреженный воздух, а не разряженный баллон с газом.
75 Garykom
 
гуру
21.12.21
03:46
(67) (68) "типа" же
в этом и суть ML что надо на чем то обучаться, я просто как пример привел редкого сочетания
согласен что может быть что угодно примеры чего вы и нашли
76 trdm
 
22.12.21
10:49