Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2010-11-05 04:33:40

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Шумовые слова (stop words)

В процессе работы над переводом наткнулся на проблему шумовых слов. По какому принципу слова признаются шумовыми? Для примера взял список PunBB. Два основных вопроса:

  • Почему в список включены и английские слова тоже? Может, стоит как-то изменить логику движка? Дублирование — нехорошо.

  • Местоимения, наречия и междометия считаются шумом. Это понять можно. А почему туда попадают числа или направления (вверх, вниз)?

Зато в списке нет популярных на некоторых форумах «ага», «угу» и «мну». Последнее — ваще главное шумовое слово, ага. smile

Offline

#2 2010-11-05 06:12:45

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

Мой вариант

без
более
был
была
были
было
быть
вам
вас
весь
вот
все
всего
всех
где
даже
для
его
если
есть
еще
здесь
или
как
когда
кто
либо
мне
может
надо
наш
него
нее
нет
нибудь
них
однако
она
они
оно
очень
под
при
так
также
такой
там
тем
того
тоже
той
только
том
уже
хотя
чего
чей
чем
что
чтобы
чье
чья
эта
эти
это
the
and
you
that
was
for
are
with
his
they
have
this

Почему в список включены и английские слова тоже? Может, стоит как-то изменить логику движка? Дублирование — нехорошо.

Предлагаешь завести один список на все языки?

Зато в списке нет популярных на некоторых форумах «ага», «угу» и «мну».

Себе добавлю wink

Offline

#3 2010-11-05 06:57:30

artoodetoo
Admin by chance
Зарегистрирован: 2008-09-09
Сообщений: 887
Сайт

Re: Шумовые слова (stop words)

Хорошо, что поднял эту тему. Поиск один на все языки и непонятно почему индексатор использует stopwords для текущего пользователя. Я пишу по русски, но ведь могу процитировать английский текст. Помоему логично было бы использовать объеденённый массив слов всех языков в системе.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Offline

#4 2010-11-05 07:39:16

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Шумовые слова (stop words)

artoodetoo пишет:

могу процитировать английский текст

И не только английский. Не знаю, мож боятся, что шумовое слово в одном языке будет значащим в другом? Первое что приходит в голову — английский и немецкий die. С другой стороны, если на форуме установлен некоторый набор языков, подразумевается наличие их носителей. Такое сообщество должно с пониманием отнестись к тому, что die не ищется.

Опять же, это можно сделать галкой в настройках.

По-моему, ещё не все разработчики осознали качественные последствия перехода к единой кодировке. Заметил, что на FluxBB.org есть арабы и много китайцев. Представить, что их слова будут друг с другом пересекаться, смешно. Уж мы-то, русские, это знаем. И никого не интересуют их внутренние европейские проблемы. tongue

Offline

#5 2010-11-05 21:20:03

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Шумовые слова (stop words)

По первому пункту завёл баг на FluxBB.org.

Второй вопрос повторю ещё раз: почему числа и направления считаются шумом? А если это форум туристов или ремонтников?

Offline

#6 2010-11-06 08:46:30

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

Freeman, данный словарь составляет админ форума, а не разработчики.
Во всяком случае русский словарь wink

Offline

#7 2010-11-06 11:51:05

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Шумовые слова (stop words)

А все ли админы его составляют? Английский stopwords.txt в оригинале Flux непустой. Значит, и русский должен быть заполнен. Иначе льём воду на мельницу невероятной глючности русифицированных программ. sad

Offline

#8 2010-11-06 12:55:08

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

Freeman, тогда предлагаю сообща составить stopwords.txt для русского языка!

Offline

#9 2010-11-06 14:16:31

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Шумовые слова (stop words)

Слава богу, дошло! smile

Тогда я временно бросаю stopwords.txt, заканчиваю админку, после чего уже в альфе-бете перевода будем допиливать.

Offline

#10 2010-11-06 16:06:27

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

Ну что.
За основу для русского языка берем это:

без
более
был
была
были
было
быть
вам
вас
весь
вот
все
всего
всех
где
даже
для
его
если
есть
ещё
здесь
или
как
когда
кто
либо
мне
может
надо
наш
него
нее
неё
нет
нибудь
них
однако
она
они
оно
очень
под
при
так
также
такой
там
тем
того
тоже
той
только
том
уже
хотя
чего
чей
чем
что
чтобы
чьё
чья
эта
эти
это

Добавляем это:

ага
мну
угу

И вот это я предлагаю:

будет
буду
ваш
ваще
всю
ему
кем
кому
кроме
миня
меня
многа
нету
ним
нуно
оных
тожа
тош
тут
чаво
чему
чём
чтоб
чье
этого
этой
этому
эту

Что из них может считаться шумовыми словами, а что нет?

Offline

#11 2010-11-06 20:25:28

Freeman
Участник
Из Санкт-Петербург
Зарегистрирован: 2010-07-31
Сообщений: 128
Сайт

Re: Шумовые слова (stop words)

Фух, вроде наколбасил. Внушительный список получился. На форуме выкладывать бессмысленно, допиливать будем уже бету через SVN, как писал выше.

Попутно выяснились две вещи:

  • Лексический анализатор выкидывает из слов дефисы, и слова становятся слитными: ктото, когданибудь. Поскольку частицу «то» можно добавить ко многим словам, список почти удваивается. Ничего не поделаешь. Велик и могуч, как говорится. smile

  • Не распознаётся Unicode-пунктуация, вроде «русских кавычек».

Offline

#12 2010-11-07 10:22:09

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

Freeman, выложи пожалуйста свой список wink

Offline

#13 2010-11-08 18:14:44

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Шумовые слова (stop words)

По поводу единого словаря для всех языков.
В файле search_idx.php меняем блок

        if (file_exists(PUN_ROOT.'lang/'.$language.'/stopwords.txt'))
        {
            $stopwords = file(PUN_ROOT.'lang/'.$language.'/stopwords.txt');

на

        if (file_exists(PUN_ROOT.'lang/stopwords.txt'))
        {
            $stopwords = file(PUN_ROOT.'lang/stopwords.txt');

и ложим общий файл stopwords.txt в папку lang форума.

Offline

#14 2013-08-19 01:54:17

adsh
Участник
Из Киев
Зарегистрирован: 2013-08-18
Сообщений: 61

Re: Шумовые слова (stop words)

По поводу методики составления словаря. Ещё на форуме PunBB предлагалось выполнить в базе тематического форума вот такой запрос:

SELECT sw.word, COUNT(sm.post_id) AS hits FROM search_words AS sw INNER JOIN search_matches AS sm ON sw.id = sm.word_id GROUP BY sw.id ORDER BY hits DESC LIMIT 100;

(осторожно - грузит базу по полной, лимит подобрать по вкусу)

Вот, что получается у меня (форум по радиотехнике):

+---------------+-------+
| word          | hits  |
+---------------+-------+
| можно         | 10068 |
| просто        |  5962 |
| лучше         |  5125 |
| раз           |  4966 |
| нужно         |  4627 |
| про           |  4331 |
| больше        |  4179 |
| вообще        |  3920 |
| один          |  3830 |
| через         |  3460 |
| вопрос        |  3442 |
| после         |  3339 |
| кстати        |  3282 |
| этот          |  3222 |
| тогда         |  3197 |
| потом         |  3095 |
| стоит         |  2995 |
| время         |  2914 |
| думаю         |  2907 |
| сделать       |  2901 |
| именно        |  2882 |
| конечно       |  2873 |
| например      |  2827 |
| усилитель     |  2792 |
| ток           |  2769 |
| много         |  2751 |
| случае        |  2729 |
| тока          |  2638 |
| хорошо        |  2614 |
| работает      |  2576 |
| делать        |  2562 |
| усилителя     |  2464 |
| что-то        |  2375 |
| умзч          |  2348 |
| знаю          |  2342 |
| звук          |  2317 |
| питания       |  2288 |
| дело          |  2284 |
| 100           |  2256 |
| меньше        |  2254 |
| которые       |  2215 |
| два           |  2199 |
| выходе        |  2171 |
| могу          |  2156 |
| несколько     |  2135 |
| нас           |  2117 |
| имеет         |  2108 |
| схема         |  2040 |
| ведь          |  2031 |
| правда        |  2008 |
| оос           |  2006 |
| теперь        |  1978 |
| интересно     |  1969 |
| схему         |  1951 |
| другой        |  1948 |
| между         |  1945 |
| выше          |  1937 |
| напряжения    |  1921 |
| сигнала       |  1903 |
| правильно     |  1870 |
| схеме         |  1856 |
| достаточно    |  1840 |
| лет           |  1806 |
| себя          |  1791 |
| понял         |  1758 |
| точно         |  1754 |
| возможно      |  1752 |
| себе          |  1746 |
| сколько       |  1737 |
| напряжение    |  1735 |
| схемы         |  1726 |
| получается    |  1703 |
| сигнал        |  1699 |
| мощности      |  1626 |
| сказать       |  1623 |
| jpg           |  1592 |
| сильно        |  1589 |
| html          |  1579 |
| сразу         |  1569 |
| работы        |  1553 |
| php           |  1541 |
| около         |  1540 |
| сопротивление |  1533 |
| звука         |  1525 |
| поводу        |  1508 |
| действительно |  1463 |
| должен        |  1449 |
| мало          |  1445 |
| давно         |  1429 |
| вполне        |  1427 |
| тех           |  1402 |
| найти         |  1401 |
| немного       |  1391 |
| вместо        |  1386 |
| такого        |  1371 |
| проблема      |  1370 |
| транзисторы   |  1365 |
| времени       |  1364 |
| одной         |  1355 |
| платы         |  1354 |
+---------------+-------+
100 rows in set (3 min 52.10 sec)

Это и будет основой для списка исключений данного конкретного форума. Разумеется из него нужно убрать некоторые специфические тематические термины.

Offline

#15 2013-08-19 17:35:42

artoodetoo
Admin by chance
Зарегистрирован: 2008-09-09
Сообщений: 887
Сайт

Re: Шумовые слова (stop words)

полезно


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens