Машиночитаемый Викисловарь/Импорт дампа обработанного Викисловаря в MySQL

Материал из Викиверситета

Запуск MySQL сервера через MariaDB[править]

Для запуска MySQL сервера на MacOS необходимо прописать в терминал:

mysql.server start

Для запуска MySQL в терминале, прописываем:

mysql

Импорт дампа обработанного Викисловаря в MySQL[править]

Импорт дампа[править]

  • Для начала необходимо создать базу данных, для этого прописываем:
CREATE DATABASE НАЗВАНИЕ_БД;
  • Заходим в созданную БД, для этого прописываем:
USE НАЗВАНИЕ_БД;
  • Импортируем дамп Викисловаря, для этого вводим команду
SOURCE /путь_до_скаченного_дампа/ruwikt20230901_parsed.sql 
  • Меняем кодировку импортированной БД, командой (Необходимо использовать после каждого перезахода в MySQL):
SET NAMES latin1;

Проверка импортированного дампа Викисловаря[править]

Проверка импортированных таблиц:[править]

  • Выведем список всех таблиц в базе данных, командой:
SHOW TABLES;

В терминал должно вывестись 1157 строк

Проверка кодировки:[править]

  • Выведем первые 10 строк из таблицы page и убедимся, что слова читабельны.

Для этого введем команду:

SELECT * FROM PAGE LIMIT 10;

Запросы к БД[править]

В этом разделе даются примеры запросов к базе данных ruwikt20230901_parsed.

Вывод заголовков русских слов[править]

Получим список названий словарных статей (заголовков) Викисловаря для русских слов.

SELECT DISTINCTROW page.id, page_title FROM lang_pos, page, lang 
WHERE lang.id=809 and lang.id=lang_pos.lang_id and lang_pos.page_id=page.id
LIMIT 100;

У многих русских слов в Викисловаре существует несколько значений. Для вывода только уникальных строк в текущем запросе воспользуемся предикатом "DISTINCTROW"

Вывод словарных помет[править]

Получим список словарных помет, которые встречаются в базе данных больше 10 раз.

SELECT * FROM label 
WHERE counter > 10 
ORDER BY counter;

Вывод синонимов к слову "камень"[править]

Получим список синонимов к слову "камень" на основе дампа Викисловаря русских слов.

SELECT text FROM meaning, relation, wiki_text, lang_pos, page 
WHERE meaning.id=relation.meaning_id and relation.relation_type_id=9 
and relation.wiki_text_id=wiki_text.id and meaning.lang_pos_id=lang_pos.id 
and lang_pos.page_id=page.id and page.page_title="камень";

Вывод определений к слову "камень" со словарными пометами[править]

Получим все определения к слову "камень" с его пометами на основе дампа Викисловаря русских слов.

SELECT DISTINCT label.id, page_title, label.short_name, page.page_title, wiki_text.text FROM page,lang_pos,wiki_text,label, label_meaning, meaning 
WHERE page.id=lang_pos.page_id and lang_pos.lang_id=809 and lang_pos.id=meaning.lang_pos_id and meaning.wiki_text_id=wiki_text.id and label_meaning.label_id=label.id and label_meaning.meaning_id=meaning.id and wiki_text.id=meaning.wiki_text_id and page.page_title="камень";

Вывод заголовков русских слов c их частями речи[править]

Получим список из первых 100 заголовков с их частью речи.

SELECT DISTINCTROW page.id, page_title, part_of_speech.name FROM lang_pos, page, lang, part_of_speech 
WHERE lang.id=809 and lang.id=lang_pos.lang_id and lang_pos.page_id=page.id and lang_pos.pos_id=part_of_speech.id
LIMIT 100;

У многих русских слов в Викисловаре существует несколько значений. Каждое значение имеет свою часть речи.


w:MySQL