База русских слов (371 000 слов)
13-янв-2018, 14:28
SEO / Всё для XRumer. Статьи.
22 267
Работая в программе HREFER при подстановке дополнительных символов к вашему тематическому запросу используется дополнительная база Words database. Это обычный txt файл в котором построчно выводятся определённые символы.
Существуюут стандартные базы, которые идут в комплекте с программой Hrefer это базы, которые находятся в папке Words — 1 ENG.txt, 1 АБВ.txt, 123.txt, 1ENG.txt, 1АБВ.txt, ENG.txt, АБВ.txt из названий понятно что они состоят из русского, английского алфавитов, чисел и буквенно числовые комбинации.
Мы предлагаем Вам базу Русских слов, которая состоит из более 371 000 слов по состоянию на 1 января 2018 года.
Скачать можно с нашего сервера:
rus.zip [1.75 Mb] (cкачиваний: 9478)
Похожие новости
Все существительные русского языка в простом формате
Готового файла в нужном мне простейшем и удобном формате (простой текст, одно слово — одна строка) не нашёл, пришлось сделать самому.
Для начала я взял «все» слова русского языка с указанием части речи, числа, рода и падежа, то есть, морфологический словарь русского языка по Хагену, вот отсюда
(hagen-morph.rar). Развёрнутый файл .txt будет более 200 Мб, так что поосторожней с «Блокнотиками», если его скачаете
Потом я простенько отобрал оттуда существительные по формальному указанию файла словаря, вот код на PHP:
<?php function startsWith($haystack, $needle) { return (substr($haystack, 0, strlen($needle)) === $needle); } $f = fopen ('1.txt','r'); $r = fopen ('2.txt','w'); if (!f or !$r) halt ('File error'); $t1 = time (); $n = 0; while (!feof($f)) { $s = fgets($f); if (strlen(trim($s))<1 or $s[0]==' ') continue; $w = explode ('|',$s); if (count($w)<2) continue; if (startsWith(trim($w[1]),'сущ')==true) { fputs ($r,trim($w[0])."rn"); $n++; } } $t2 = time (); fclose ($r); fclose ($f); echo '<p>'.$n.' word(s) in '.($t2-$t1).' sec.</p>'; ?>
Предполагается, что развёрнутый словарь «лежит» под именем 1.txt
в папке скрипта, а вывод писался в файл 2.txt
.
Символы конца строк — CR/LF, то есть, в формате для Windows. Скрипт может выполняться до 10 секунд, но из-за нехватки памяти «зависать» не должен, так как не пытается засунуть весь файл в оперативку, а читает его построчно.
«Вытащить» только единственное число существительных пришлось вторым маленьким кодом:
<?php function endsWith ($haystack, $needle) { $length = strlen($needle); if ($length == 0) return true; return (substr($haystack,-$length) === $needle); } function pluralForm ($s1, $s2) { $s1len = strlen($s1); $s2len = strlen($s2); if (strncmp($s1,$s2,$s2len-1)==0 and ($s2len == $s1len or $s2len == $s1len+1)) return true; $suffix = array ( 'ек'=>'ки', 'ец'=>'цы', 'ец'=>'ьцы', 'ок'=>'ки', 'енок'=>'ята', // ''=>'', ); foreach ($suffix as $suf1=>$suf2) { if (endsWith($s1,$suf1) and endsWith($s2,$suf2)) return true; } return false; } $f = fopen ('2.txt','r'); $r = fopen ('3.txt','w'); if (!f or !$r) halt ('File error'); $t1 = time (); $n = 0; $s0 = ''; while (!feof($f)) { $s1 = trim(fgets($f)); if ($s1!=$s0 and pluralForm($s0,$s1)==false) { fputs ($r,$s1."rn"); $n++; } $s0 = $s1; } $t2 = time (); fclose ($r); fclose ($f); echo '<p>'.$n.' word(s) in '.($t2-$t1).' sec.</p>'; ?>
Качество отбора «единственного числа» здесь невысоко, скрипт выполнялся на локальном хосте «Денвер».
Можете исключить из получившегося второго словаря что-то ещё, это легко сделать даже с помощью функций startsWith
и endsWith
из приведённого кода. Например, вот так можно вывести все слова, заканчивающиеся на «ые»:
<?php function endsWith ($haystack, $needle) { $length = strlen($needle); if ($length == 0) return true; return (substr($haystack,-$length) === $needle); } $f = fopen ('3.txt','r'); if (!f) halt ('File error'); $n = 0; while (!feof($f)) { $s = trim(fgets($f)); if (endsWith($s,'ые')) echo '<br>'.++$n.' '.$s; } fclose ($f); ?>
В реальности исключать такие слова не стоит, ведь окончание «ие» или «ые» может означать не совсем «множественное число», а что-то вроде «русские как нация«, группа «Младшенькие» или отряд «Куриные».
В файлах, разумеется, нет имён, географических названий и т.п. Буквы «ё» тоже нигде нет, как и в исходном словаре.
Скачать файлы .txt в архиве .zip (перекодированы в кодировку utf-8 Юникода!)
Более 125 тысяч русских существительных в именительном падеже (единственное и множественное число, мужской и женский род) (413 Кб)
Более 67 тысяч русских существительных в именительном падеже (единственное число, мужской и женский род) (260 Кб)
Словарь с падежами .txt, примерно 1,5 млн словоформ и 35 Мб в кодировке utf-8
27.01.2017, 13:12 [24904 просмотра]
Поиск символов латиницы в русском тексте
Одна из типовых ситуаций, с которой все мы однажды сталкиваемся: кто-то (возможно даже мы сами) при наборе текстовой информации в ячейку, случайно использовал английские буквы (латиницу) вместо русских (кириллицы). Допустить такую ошибку достаточно легко, особенно если учесть изощренное расположение некоторых символов в стандартной раскладке клавиатуры. Ну какому идиоту, скажите мне, пришло в голову помещать на одну клавишу две одинаковых по написанию буквы (английская «си» и русская «эс»)? Да и с другими символами не лучше. Но, как говорится, «фарш невозможно провернуть назад» — текущая раскладка давно стала стандартом и никуда от этого не деться.
Использование символов латиницы в русском тексте порождает огромное количество проблем. От путаницы при банальной сортировке по алфавиту до некорректной консолидации данных при автоматическом объединении нескольких таблиц в одну.
Выискивать похожие по виду символы и проверять не являются ли они символами английской раскладки крайне муторно. Поэтому поищем более изящные варианты…
Способ 1. Шрифт без кириллицы
Выделите диапазон ячеек с проверяемым текстом и временно установите для него любой шрифт не содержащий кириллицу, например Albertus или любой аналогичный (находится методом тыка). Внешний вид символов кириллицы и латиницы станет отличаться и можно будет легко визуально локализовать некорректные символы:
Способ 2. Функция IsLatin на VBA
Создадим пользовательскую функцию (назовем ее, например, IsLatin), которая будет проверять — присутствуют ли в заданной ячейке символы английского алфавита и выдавать в качестве результата логическое значение ИСТИНА или ЛОЖЬ.
Откройте редактор Visual Basic сочетанием клавиш ALT+F11 или в старых версиях Excel — через меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставьте новый модуль (меню Insert — Module) и скопируйте туда текст этой функции:
Public Function IsLatin(str As String) str = LCase(str) LatinAlphbet = "*[abcdefghijklmnopqrstuvwxyz]*" If str Like LatinAlphbet Then IsLatin = True Else IsLatin = False End If End Function
Закройте редактор Visual Basic и вернитесь в Excel.
Теперь в Мастере функций в категории Определенные пользователем (User Defined) можно найти нашу функцию IsLatin и воспользоваться ей. Синтаксис функции следующий:
=IsLatin(A2)
где для примера А2 — это адрес ячейки, содержащей текст
Функция выдаст значение ИСТИНА (TRUE), если найдет в тексте А2 хотя бы один символ латиницы. В противном случае функция вернет значение ЛОЖЬ (FALSE):
Способ 3. Подсветка символов латиницы красным цветом шрифта
Откройте редактор Visual Basic сочетанием клавиш ALT+F11 или в старых версиях Excel — через меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставьте новый модуль (меню Insert — Module) и скопируйте туда текст этого макроса:
Sub ShowLatin() For Each c In Selection For i = 1 To Len(c) If (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _ (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 End If Next i Next c End Sub
Закройте редактор Visual Basic и вернитесь в Excel. Если теперь выделить интересующий диапазон ячеек (только не весь столбец или лист — а то считать до конца дня будет!) и запустить наш макрос с помощью сочетания клавиш ALT+F8 или через меню Сервис — Макрос — Макросы (Tools — Macro — Macros), то символы латиницы выделятся красным цветом шрифта:
Ссылки по теме
- Подсветка латиницы с помощью надстройки PLEX
- Что такое макросы, куда вставлять код макроса, как их использовать
В Excel 2010 вы можете создавать пользовательские словари для использования при проверке орфографии ваших рабочих листов. Вы используете кнопку «Добавить в словарь» в диалоговом окне «Правописание», чтобы добавить неизвестные слова в пользовательский словарь. По умолчанию Excel добавляет эти слова в пользовательский файл словаря CUSTOM. DIC, но вы можете создать новый пользовательский словарь для использования по умолчанию, если хотите.
1Щелкните вкладку «Файл» и выберите «Параметры».
Появится диалоговое окно «Параметры Excel».
2Щелкните вкладку «Доказательство» и затем нажмите кнопку «Пользовательские словари».
Excel открывает диалоговое окно «Пользовательские словари», в котором вы можете создать новый пользовательский словарь.
3Нажмите кнопку «Создать».
Excel открывает диалоговое окно «Создать пользовательский словарь».
4Введите имя для нового пользовательского словаря и нажмите кнопку «Сохранить».
Название пользовательского словаря, созданного вами, отображается под CUSTOM. DIC (по умолчанию) в поле «Список слов».
5 (Необязательно) Нажмите имя словаря в списке «Список словарей», а затем нажмите кнопку «Изменить по умолчанию».
Это делает новый пользовательский словарь стандартным словарем, в который сохраняются новые слова.
6Нажмите кнопку «Редактировать список слов».
Excel открывает диалоговое окно с алфавитным списком слов в этом пользовательском словаре. Если вы просто закроете словарь, он будет пустым.
7Введите слово, которое вы хотите добавить в свой пользовательский словарь в текстовом поле Word (s) и нажмите «Добавить».
Продолжайте делать это, пока не удовлетворитесь своим пользовательским словарем.
8Нажмите OK, пока вы не вернетесь на рабочий лист.
Теперь вы готовы вернуться к работе.
Домен ваш?
Срок регистрации вашего домена истек 18.03.2023. Для восстановления работы сайта необходимо продлить срок регистрации домена.
Продлить регистрацию
Домен не ваш?
Вы можете оформить предзаказ на регистрацию этого домена. В случае его освобождения будет произведена приоритетная перерегистрация на вас.
Оформить предзаказ
domain: ANGLONET.RU nserver: expired1.domainshop.ru. nserver: expired2.domainshop.ru. state: REGISTERED, DELEGATED, UNVERIFIED person: Private Person registrar: DOMAINSHOP-RU admin-contact: https://whois.domainshop.ru/?c=anglonet.ru created: 2022-03-18T14:03:16Z paid-till: 2023-03-18T14:03:16Z free-date: 2023-04-18 source: TCI Last updated on 2023-04-17T00:41:32Z
Связаться с администратором