powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Начальная форма слова
47 сообщений из 47, показаны все 2 страниц
Начальная форма слова
    #40119262
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: привести слово русского языка к начальной форме.
Я так понимаю, без словаря здесь не обойтись, в общем случае.
Словарь нужен оффлайн.
беглый поиск результатов не дал.
т.е нужна минимальная структура таблицы:

любая форманачальная формавеснавеснавеснувесна веснойвеснавёснывесна...бегатьбегатьбегубегатьбежалбегатьбегибегать...
Если у кого есть, поделитесь.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119276
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта типовая задача называется "stemming" - погугли просто готовые реализации для русского языка.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119286
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

спасибо за расширение кругозора термином "stemming", но, видимо, я гуглить не умею.
где скачать словарь так и не нашёл
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119288
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стемминг не содержит словарей.

Это - больше алгоритм чем данные. По крайней мере для русского языка.

Украинско-польские стеммеры содержат в сорцах некоторые справочники.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119289
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

ну не знаю, как без словарей обойтись
к примеру, встречаем в тексте слово "шей"
каким алгоритмом можно дойти до двух начальных слов:
1.шить
2.шея
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119296
uProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_avz,

Вообщем правельно думаете. Но все же погуглите что б не изобретать велосипед
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119298
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uProger,

гуглил, полезного не нагуглил.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119328
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
uProger,

гуглил, полезного не нагуглил.


Можешь здесь, например, покопаться: https://snowballstem.org/
Или поковырять как это сделано в Lucene: https://lucene.apache.org/
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119361
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Эта типовая задача называется "stemming"

Проблема стеммеров в том, что они не приводят к словарной форме (лемме), а выделяют псевдооснову, от которой нужно стоить лемму по правилам.
Для всех словоформ вроде «весной», «весне» и т.п. стеммер выдаст «весн», для «бегут», «беги» — «бег» (а лемма-то будет «бежать», а не «бегать», как ТС считает).
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119372
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил: hunspell умеет лемматизировать (качество давно не проверял), русских словарей для него довольно много.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119382
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
а лемма-то будет «бежать», а не «бегать», как ТС считает.

Кстати, почему?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119383
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
Проблема стеммеров в том, что они не приводят к словарной форме (лемме), а выделяют псевдооснову, от которой нужно стоить лемму по правилам.
Для всех словоформ вроде «весной», «весне» и т.п. стеммер выдаст «весн», для «бегут», «беги» — «бег»

Вот и я считаю: для моей задачи стемминг - как из пушки по воробьям.
Намного же проще тупо забить все слова в справочник
и не заморачиваться программировать нечёткие правила словообразования.
Лежит в базе, удобно и быстро SQL-ем обрабатывать.

Неужели ни у кого подобной таблички в базе нет?
Она ж и до миллиона не догонит
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119394
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz, похоже, для большинства случаев такая табличка просто не нужна, вот и нет ее. Но если очень надо, генерируется тем же hunspell. Только словарь берите с леммами, а не спевдоосновами, посмотрите, напр., на github у PostgresPro.
А за миллион такое выходит очень легко: по 12 форм на каждое существительное, прилагательное, числительное и причастие, по 11 форм на каждый глагол (по 22 с учетом видовых пар), и т.д.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119396
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2,

спасибо, попробую разобраться
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119420
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
Ы2
Проблема стеммеров в том, что они не приводят к словарной форме (лемме), а выделяют псевдооснову, от которой нужно стоить лемму по правилам.
Для всех словоформ вроде «весной», «весне» и т.п. стеммер выдаст «весн», для «бегут», «беги» — «бег»

Вот и я считаю: для моей задачи стемминг - как из пушки по воробьям.
Намного же проще тупо забить все слова в справочник
и не заморачиваться программировать нечёткие правила словообразования.
Лежит в базе, удобно и быстро SQL-ем обрабатывать.

Неужели ни у кого подобной таблички в базе нет?
Она ж и до миллиона не догонит

Может быть стемминг тебе и не подходит. По крайней мере стеммер действительно выделяет основу слова
а не имя существительное в родительном.

Откуда взять такую табличку - ХЗ. Не знаю. Но учитывая комбинаторную сложность самой постановки,
я-бы сказал что тебе придется самому ее делать. На основе опять-же имен существительных , глаголов
и прочего. Которые тоже надо где-то найти.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119428
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
В общем, как я понял, решение только такое:
ставится Postgres PRO (пока не разобрался, можно ли поставить его бесплатно)
на него расширение hunspell
а в нём уже есть функции, чтоб сгенерировать нужную табличку
(а можно и без неё обойтись, используя функции расширения)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119429
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по сорцам, hunspel написан на C++
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119430
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
mayton,
В общем, как я понял, решение только такое:
ставится Postgres PRO (пока не разобрался, можно ли поставить его бесплатно)
на него расширение hunspell
а в нём уже есть функции, чтоб сгенерировать нужную табличку
(а можно и без неё обойтись, используя функции расширения)

Ставить PostgresPro не обязательно, у них нужно взять только словарь . У hunspell есть консольный интерфейс, есть libhunspell.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119531
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдя. Начальная форма слова. И основа. Наверное разные штуки.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.tartarus.snowball.SnowballProgram;
import org.tartarus.snowball.ext.RussianStemmer;

import java.util.Arrays;


    public static final String SRC = """
              Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и
              приближенная  императрицы  Марии  Феодоровны,  встречая важного и  чиновного
              князя  Василия,  первого  приехавшего  на  ее вечер. Анна  Павловна  кашляла
              несколько  дней, у  нее был грипп, как она говорила (грипп  был тогда  новое
              слово, употреблявшееся только  редкими).  В записочках, разосланных  утром с
              красным лакеем, было написано без различия во всех:
              """;

    @Test
    public void test() {
        String[] split = SRC.split(" ");
        SnowballProgram snowballProgram = new RussianStemmer();
        Arrays.stream(split).forEach(item -> {
            snowballProgram.setCurrent(StringUtils.strip(item.toLowerCase(), ",\n.():"));
            snowballProgram.stem();
            System.out.print(snowballProgram.getCurrent());
            System.out.print(" ");
        });
    }



Out:
Код: sql
1.
2.
3.
4.
5.
6.
так говор в июл 1805 год известн ан павловн шерер фрейлин и
приближен  императриц  мар  феодоровн  встреч важн и  чиновного
княз  васил  перв  приеха  на  е вечер ан  павловн  кашляла
нескольк  дне у  не был грипп как он говор грипп  был тогд  новое
слов употребля тольк  редк  в записочк разосла  утр с
красн лаке был написа без различ во всех 
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119534
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мдя. Начальная форма слова. И основа. Наверное разные штуки.

Я не великий специалист в этом, но возможно ли взять готовый словарь (основы слов), построить по нему отношение "основа" -> "стем основы", а потом исходное слово искать по этому отношению в обратном порядке "слово" -> "стем слова" -> "основа"? Это по всякому будет на порядки компактнее, чем для каждой мыслимой формы слова (а их для одной основы может быть по нескольку десятков) хранить отдельную запись с её основой.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119544
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и
приближенная императрицы Марии Феодоровны, встречая важного и чиновного
князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла
несколько дней, у нее был грипп, как она говорила (грипп был тогда новое
слово, употреблявшееся только редкими). В записочках, разосланных утром с
красным лакеем, было написано без различия во всех:

Out:
так говор в июл 1805 год известн ан павловн шерер фрейлин и
приближен императриц мар феодоровн встреч важн и чиновного
княз васил перв приеха на е вечер ан павловн кашляла
нескольк дне у не был грипп как он говор грипп был тогд новое
слов употребля тольк редк в записочк разосла утр с
красн лаке был написа без различ во всех

Основы, конечно же, совсем не то что надо,
но даже они не все были выделены адекватно
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119545
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
mayton
Мдя. Начальная форма слова. И основа. Наверное разные штуки.

Я не великий специалист в этом, но возможно ли взять готовый словарь (основы слов), построить по нему отношение "основа" -> "стем основы", а потом исходное слово искать по этому отношению в обратном порядке "слово" -> "стем слова" -> "основа"? Это по всякому будет на порядки компактнее, чем для каждой мыслимой формы слова (а их для одной основы может быть по нескольку десятков) хранить отдельную запись с её основой.

увы

возьмём исходное слово "душили"
стем = "душ"
по нему находим 3 основы "душ", "душа", "душить"
какую брать?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119556
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашёл онлайн реализацию: http://www.aot.ru/demo/morph.html

пример:
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119558
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, почему плохо, я уже написал тут 22408420 . Стемминг придуман для решения инженерной задачи проверки орфографии и полнотекстового поиска, причем в ситуации, когда пропуск нескольких документов так же некритичен, как и включение в поисковую выдачу пары лишних. С лингвистической точки зрения стемминг плох практически для всех языков, даже для английского; для венгерского или тюркских — еще более-менее.

fkthat…возможно ли взять готовый словарь (основы слов), построить по нему отношение "основа" -> "стем основы", а потом исходное слово искать по этому отношению в обратном порядке "слово" -> "стем слова" -> "основа"?
Можно. Словарь для hunspell от PostgresPro делает все это за исключением выбора правильной леммы (словарной формы) в случае таких форм, как «души» (мн. ч. от «душа» или повел. накл. от «душить»?).
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119559
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz, эта проблема называется «синтаксическая омонимия», без контекста не решается.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119560
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
_avz, эта проблема называется «синтаксическая омонимия», без контекста не решается.

это понятно.
Я имел в виду то, что в случае 22408739 однозначное решение есть,
но по стему (метод, предложенный в 22408723 ) не находится
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119571
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я там в тесте ещё одну ошибку допускаю из за которой последнее слово в строке неверно стеммингуется.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2,

Да я согласен. Не подходит.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119596
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, худо-бедно на постгресе заработало
как сконфигурировал:
1. скачал словарь https://github.com/postgrespro/hunspell_dicts/tree/master/hunspell_ru_ru
2. скопировал в папку pg SHAREDIR\tsearch_data
3. создал словарь
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TEXT SEARCH DICTIONARY ru_dic (
   TEMPLATE = ispell,
   dictfile = 'ru_ru',
   afffile = 'ru_ru',
   stopwords='russian'
);


4. создал конфигурацию полнотекстового поиска:
Код: sql
1.
2.
CREATE TEXT SEARCH CONFIGURATION ru_cfg (    PARSER = default);
ALTER TEXT SEARCH CONFIGURATION ru_cfg    ADD MAPPING FOR word WITH  ru_dic


5.запрос
Код: sql
1.
select ts_lexize('ru_dic2', 'души')


выдаёт
{душа,душить}
т.е., или про "душ" словарь не в курсе, или...
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119602
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
Словарь для hunspell от PostgresPro делает все это за исключением выбора правильной леммы (словарной формы) в случае таких форм, как «души» (мн. ч. от «душа» или повел. накл. от «душить»?).

Ну это задача совершенно другого уровня сложности, т.к. между "души -> душа" и "души -> душить" без анализа контекста выбрать невозможно. Только выдать все возможные варианты.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119603
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хватает и других косяков:
Код: sql
1.
select ts_lexize('ru_dic2', 'пей') 


{пей} - хотя должно быть 'пить'
шей-{шей,шея}
беги-{беги,бег}
хотя
гляди-{глядеть}, верно

и, судя по всему, ещё много чего вскроется по ходу тестирования :)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119609
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz, ты выкопал себе могилу

Ну будешь ближайшие пол-года заниматься морфологией русского языка.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119610
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
_avz, ты выкопал себе могилу

Ну будешь ближайшие пол-года заниматься морфологией русского языка.

Возможно, автору следовало бы начать с рассказа для чего ему все это нужно. Но на скуле это не принято. :))
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119612
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,
для сравнения двух текстов
выдать слова, которые есть в одном, но отсутствуют в другом
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119613
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
выдать слова, которые есть в одном, но отсутствуют в другом

Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119615
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
fkthat,
для сравнения двух текстов
выдать слова, которые есть в одном, но отсутствуют в другом

Господин выше правильно по тексту сказал. Что для анализа слов ЯЗЫКа нам нужно больше контекста.

А так получается

Код: sql
1.
Косил косой косой косой



и вот ищи где тут глагол и существительное в падежах.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119617
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.

'душили' выдаст стем 'душ'
а лемма выдаёт 'душить'
всё же лучше

mayton

А так получается
Код: sql
1.
Косил косой косой косой


и вот ищи где тут глагол и существительное в падежах.


здесь уже приходится смириться с нестопроцентным качеством анализа,
в семантику я точно не полезу
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119654
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в машин-лёрнинге наверное решали такие задачи?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119656
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
fkthat
Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.

'душили' выдаст стем 'душ'
а лемма выдаёт 'душить'
всё же лучше

mayton

А так получается
Код: sql
1.
Косил косой косой косой


и вот ищи где тут глагол и существительное в падежах.


здесь уже приходится смириться с нестопроцентным качеством анализа,
в семантику я точно не полезу

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119657
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
в машин-лёрнинге наверное решали такие задачи?
если ко мне вопрос, то нет.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119659
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.

В моём случае результат устроил.
Уже в разы лучше, чем когда я сравнивал тупо по словам.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123163
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
mayton

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.

В моём случае результат устроил.
Уже в разы лучше, чем когда я сравнивал тупо по словам.


То есть так хотелось чуда, а его нету

Поставьте себе SQL Server какой-нибудь в минимальной версии у него есть fts* функции, которые выдают найденные слова указанного языка. Эту же фигню можете использовать для сравнения двух текстов. Но помните - ваша задача не решается за пару дней и с уровнем знаний "хеллоу ворлд". Кина не будет, расслабьтесь :-)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123281
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
моя задача решилась, так-то :)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123439
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забил в базу 100500 слов?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123503
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Хватило той последовательности шагов, что я изложил выше.
Можно сказать, это решение вопроса. Очень простое.
Неидеальное, но достаточное.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123504
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чём неидеальность - список слов, который выдаётся в результате сравнения текстов, чуть больше, чем должен.
Например, слово "пей" будет считаться отличным от слова "пил", и будет включено, хотя, по идее, это одно и то же слово.
Но основная масса словоформ отфильтровывается.
Меня устраивает: в таких нечётких задачах ожидать чего-то большего - странно.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123506
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, от анализатора невозможно ожидать и понимания, что, например, слово "душа" в тексте 2 использовано в ином смысле, чем в тексте 1, и должно быть включено в список.

Выскажу предположение, что даже с универсальным ИИ такие вещи не решаемы на 100%
(Когда даже ЕИ может ошибиться :)
Контекст может скрываться сколь угодно далеко за уровнем самого текста.
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Начальная форма слова
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]