Бесплатный дамп базы английских ключевых слов

[Удален]
#31

База будет без мусора (повторы, символы на разных языках в слове, различные символы перед/после ключей)? Или "как есть"?

Bukvarix
На сайте с 27.02.2013
Offline
134
#32
Сергей Брин:
База будет без мусора (повторы, символы на разных языках в слове, различные символы перед/после ключей)? Или "как есть"?

Все базы мы чистим от мусора, алгоритмы чистки - на основе алгоритмов чистки базы Букварикса (с поправкой на английский язык).

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

Дополнительно добавим, что мы фильтруем попадание в базу символов других алфавитов, например чтобы в английской базе не было русских/китайских и т.д. слов.

Но, например, если фраза состоит исключительно из символов, допустимых в английском языке, то мы такую фразу не фильтруем.

Поэтому в базу могут попадать и слова на других языках, например, латынь, испанский, итальянский, если там использована исключительно латиница английского алфавита - впрочем, это проблема всех баз, не только наших.

Как всегда, если заметите в базе мусор и есть идеи как его отфильтровать алгоритмически - пишите, в следующих апдейтах баз дополнительно почистим.

A
На сайте с 19.07.2010
Offline
130
#33
Bukvarix:
Как всегда, если заметите в базе мусор и есть идеи как его отфильтровать алгоритмически - пишите, в следующих апдейтах баз дополнительно почистим.

проще всего отфильтровывать при помощи частоупотребимых не английских слов, например предлогов.

фильтрация только одного предлога убрала 1.2 гига.

grep -v " de " EnglishKeywordsExtended.txt >result.txt

достаточно просто глазами просмотреть файл, чтобы найти дургие признаки для фильтрации, например: das, el, la и т.д.

.............
A
На сайте с 19.07.2010
Offline
130
#34

Если кому нужно, то за пару часов набросал фильтр для зачистки от не английских ключевиков

grep -v -E "\b(de|das|wie|des|dar|mit|uhr|las|les|zu|el|en|la|le|il|tu|te|va|vo|du|di|da|mi|ma|et|em|si|cu|ki|um|es|ou|sus|sua|para|eme|cie|que|una|hai|por|esta|frei)\b" EnglishKeywordsExtended.txt >result.txt

даже при таком хаотичном составлении фильтра, подбиралось и анализировалось глазами, результирующий файл полегчал на 2.7 гига.

посмотреть/сохранить отфильтрованное:

grep -E "\b(de|das|wie|des|dar|mit|uhr|las|les|zu|el|en|la|le|il|tu|te|va|vo|du|di|da|mi|ma|et|em|si|cu|ki|um|es|ou|sus|sua|para|eme|cie|que|una|hai|por|esta|frei)\b" EnglishKeywordsExtended.txt >filtred.txt

метод фильтрации - рабочий, можно автоматизировать поиск признаков и создание фильтра на основе подсчета часточности, но это нужно уже писать небольшой код. :)

если копнуть глубже, то можно и по разным языкам разбирать ключевики.

Bukvarix
На сайте с 27.02.2013
Offline
134
#35

Аdmak, идея хорошая, большое спасибо за предложение. Пока мы анализировали, описывали результаты и готовили ответ, вы уже свое решение выложили :)

На 99% включения испанских, французских, португальских, голландских, немецких, польских и прочих слов - это неанглийские фразы, часть их можно отфильтровать, использовав список наиболее часто употребляемых неанглийских слов - в основном, это предлоги, артикли, местоимения, союзы, а также существительные и глаголы, имеющие отношение к деятельности в интернете, к поиску, например, но есть достаточно много названий компаний, торговых сетей, отелей, ресторанов, различных торговых марок и брендов, которые содержат в своих названиях неанглийские слова. Сделать хотя бы мало-мальски удовлетворительный список таких компаний, чтобы их оставить, а остальное убрать, для нас нереально по трудозатратам. С другой стороны, нужны такие названия или нет, решать все-таки не нам.

Вот небольшая иллюстрация проблемы.

Полностью удалив "de", мы потеряем очень даже коммерческие словосочетания, включающие de luxe, торговые марки de beers, de longhi, а также tour de france, менее известные de novo hairstyle, De Fonseca и многие другие названия.

Не всегда целесообразным выглядит и удаление высокочастотных испанских san, los, la, las, el, del - они встречаются в названиях американских городов, других населенных пунктов, например, San Diego, San Francisco, San Jose, San Andreas, Los Angeles, Los Altos, Los Olivos, Los Santos, La Mirada, La Habra, Las Vegas, Las Cruces, El Monte, El Dorado, Del Mar, Del Rey. То же касается названий гостиниц, ресторанов и т.п.

Если удалить van, то вместе с ним мы удалим Van Buren (названия округов в двух штатах США), торговую марку Van Cleef, Van Damme (актера), Van Halen (который Eddie), да и Van Helsing тоже.

Все это вполне хорошие слова, которые кому-то будут нужны.

Т.е. на автомате поудалять словосочетания с артиклями, предлогами и союзами из других языков не нам бы не хотелось - можно потерять города, торговые марки и т.д. Что делать с двухбуквенными словами, если это не что-то устойчивое, а, возможно, аббревиатуры или часть каких-то марок, серий, кодов товара, тоже не совсем понятно. Например, va - это аббревиатура штата Вирджиния, ma - Массачусетса, а la - устойчивае сокращение Los Angeles.

Решили сделать так: база для закачивания будет по прежнему полная, но у тех, кому важно сэкономить место на диске, будет возможность выполнить команду для дополнительной очистки.

Мы также обновим инструкцию - добавим пункт, как дополнительно почистить базу от артиклей, предлогов и т.д. других языков. Список, который мы даем, не исчерпывающий, это те слова, которые встречались наиболее часто (мы посчитали количество употреблений уникальных слов, сейчас обрабатываем результаты).

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

Аdmak, еще раз спасибо за то, что поделились результатами своей работы :)

P.S. Обновленную инструкцию со списком ВЧ неанглийских слов и максимальную базу выложим во вторник. Чуть позже сегодня список слов, которые могут пригодиться - с оговорками выше - для фильтрации.

---------- Добавлено 20.03.2016 в 19:49 ----------

Мы подготовили список неанглийских слов (среди них есть слова, имеющие также значение в английском языке, но у которых большинство случаев употребления в составе других языков, например, слово "les" - это имя (сокращенное от Leslie) , а также сокращение от "lesbian" в английском и одновременно это определенный артикль для существительных женского рода и множ. числа во французском. Еще похожий пример - слово "pour" - это английское словарное слово со значением "наливать", но чаще попадаются фразы, в которых слово "pour" - это француский предлог "для". Хотя для тех, кто будет составлять ядро для кулинарного сайта английское значение "pour" критично).

Также мы оставили в списке аббревиатуры штатов США и коды стран. Если делать строгую фильтрацию, то, возможно, вы ими также готовы пожертвовать.

Список слов для фильтров можно скачать: https://yadi.sk/i/Sv1B0af9qLZyt

A
На сайте с 19.07.2010
Offline
130
#36

Bukvarix, я с Вами полностью согласен и понимаю, что под фильтр может попасть и нужное. для себя я планирую разделить базу на две: основную и дополнительную, т.е. все что попадает под фильтр не удалять, а перемещать в дополнительную базу. нужно еще подумать над исключениями, как Вы правильно написали выше.

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

<?php


$ff = fopen("EnglishKeywordsExtended.txt_filter2", "r");
if($ff) {
$out = array();
$in = '';
while( !feof($ff) ){
$in .= fread($ff, 10000000);
preg_match('%^(.*[\r\n]+)(.*)$%s', $in, $nn);
$in = @$nn[2];
if( preg_match_all('%\b([a-z]{2,4})\b%is', @$nn[1], $mm) ){
foreach( $mm[1] as $m ){
@$out[$m]++;
}
}
}
fclose($ff);

arsort($out);
foreach( $out as $key=>$d ){
if( $d>20 ){
echo "$key\t$d\n";
}
}
}

утилитка читает файл блоками по 10мег (если памяти мало, то нужно уменьшить этот параметр), результат выводит в STDOUT (лень было в файл писать :) поэтому запускать ее нужно строкой:

php wordcount.php >result.txt

результат будет в таком виде

de      39932486

en 9224777
la 8895811
para 6559805
el 5666458
di 4774974
da 2784597
que 2754323
le 2245602
del 2224840
como 2096231
los 1741199
mi 1593713
es 1583503
las 1577259
em 1457229
les 1370048
il 1319501
du 1306539
un 1236686
con 1216415
te 1119701
si 1034427
tu 1009043

наибольший эффект получается при запуске утилитки на уже отфильтрованном файле, она позволяет найти и дополнить признаки фильтрации.

при запуске на всей базе придется сильно чистить результат.

Bukvarix
На сайте с 27.02.2013
Offline
134
#37

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

[Удален]
#38

Позволю себе проанонсировать новость о возможности загрузки полной базы :) А то зашёл в тему, не увидел новости про обещанный вторник, перешёл на сайт и очень приятно удивился.

Вопрос: Для обновления баз, в частности русского букварикса, нужно каждый раз перекачивать все тонны гигабайтов? Нет возможности докачивать обновления?

P.S. У меня ещё пока что самая первая версия.

Bukvarix
На сайте с 27.02.2013
Offline
134
#39
Сергей Брин:
Позволю себе проанонсировать новость о возможности загрузки полной базы :) А то зашёл в тему, не увидел новости про обещанный вторник, перешёл на сайт и очень приятно удивился.

Вопрос: Для обновления баз, в частности русского букварикса, нужно каждый раз перекачивать все тонны гигабайтов? Нет возможности докачивать обновления?
P.S. У меня ещё пока что самая первая версия.

Спасибо за анонс :) вы нас чуть опередили. Вчера не успели выложить, база оказалась слишком большой, долго формировалась.

Дорабатывать удобные обновления десктопа не стали, решили потратить усилия на разработку онлайн-версии.

Теперь наш анонс :)

___________________

Сегодня мы выкладываем максимальную версию базы английских ключевых слов, которая - без преувеличения - является максимальной как среди бесплатных, так и среди платных баз английских слов, собранных с помощью поисковых подсказок. База состоит из 3 млрд. 421 млн. ключевых слов (архив занимает 40,2 Гб, 102 Гб в распакованном виде). Поэтому мы советуем качать эту базу через торрент (хотя мы залили ее на облачные сервисы тоже) и просим оставаться на раздаче.

Ссылка на страницу загрузки:

http://www.bukvarix.com/english-keywords.html

Также дополнена и расширена инструкция по работе с английской базой в PostgreSQL: добавлены примеры запросов для объединения результатов поиска разных слов, для вывода количества слов и знаков в словосочетаниях, сортировки, получения уникального списка слов. Даны примеры выборок при работе с другими базами. Ссылки на разделы иструкции также можно найти по вышеупомянутому адресу.

den78ru
На сайте с 12.04.2006
Offline
396
#40

Качнул

Расширенная база
Количество слов: 846 303 699
После вбивки основных 4-х слов темы осталось 1,8 млн. Даже после поверхностного просмотра по уточняющим фильтрам можно сделать вывод - ключей более чем достаточно.

Юзал Penguin. Первоначальный отсев занял часов 5. В фоновом режиме жрёт 15-18% ЦП и ... 5 Мб оперативы.

А с базой в 1,8 мнл. работает с любыми фильтрами за 5-10 сек.

Авторам спасибо. Обоим. :)

Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий