feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets
This commit is contained in:
@@ -0,0 +1,973 @@
|
||||
import json
|
||||
import re
|
||||
|
||||
LEXICON_JSON = 'oracle_enricher/data/lexicon.json'
|
||||
FAMILIES_JSON = 'oracle_enricher/data/families.json'
|
||||
KB_ASSET_JSON = 'assets/data/oracle_kb.json'
|
||||
KB_OUT_JSON = 'oracle_enricher/out/oracle_kb.json'
|
||||
WORDS_DATA_DART = 'lib/data/words_data.dart'
|
||||
WORDS_TXT = 'words_alphabetical.txt'
|
||||
WORDS_MD = 'words_alphabetical.md'
|
||||
VIEWER_HTML = 'lexicon_viewer.html'
|
||||
|
||||
EXPLICIT_EMOJIS = {
|
||||
# 1. 12 Zodiac signs & Constellations
|
||||
'овен': '♈ 🐏',
|
||||
'телец': '♉ 🐂',
|
||||
'близнецы': '♊ 👥',
|
||||
'рак': '♋ 🦀',
|
||||
'лев': '♌ 🦁',
|
||||
'дева': '♍ 🌾',
|
||||
'весы': '♎ ⚖️',
|
||||
'скорпион': '♏ 🦂',
|
||||
'стрелец': '♐ 🏹',
|
||||
'козерог': '♑ 🐐',
|
||||
'водолей': '♒ 🏺',
|
||||
'рыбы': '♓ 🐟',
|
||||
|
||||
# 2. 7 Planets & Cosmos
|
||||
'солнце': '☀️ 👑',
|
||||
'луна': '🌙 🌊',
|
||||
'меркурий': '☿️ 📜',
|
||||
'венера': '♀️ 🌹',
|
||||
'марс': '♂️ ⚔️',
|
||||
'юпитер': '♃ ⚡',
|
||||
'сатурн': '♄ ⏳',
|
||||
'космос': '🌌 🪐',
|
||||
|
||||
# 3. 7 Alchemical Metals
|
||||
'золото': '🪙 ☀️',
|
||||
'серебро': '🥈 🌙',
|
||||
'медь': '🥉 ♀️',
|
||||
'железо': '⚙️ ⚔️',
|
||||
'олово': '🪞 ⚡',
|
||||
'свинец': '🧱 ⏳',
|
||||
'ртуть': '💧 ⚗️',
|
||||
|
||||
# 4. 7 Virtues
|
||||
'мудрость': '🦉 📜',
|
||||
'мужество': '🦁 🛡️',
|
||||
'умеренность': '⚖️ 🌿',
|
||||
'справедливость': '⚔️ ⚖️',
|
||||
'вера': '🕯️ ✝️',
|
||||
'надежда': '🕊️ ⚓',
|
||||
'любовь': '❤️ 🕊️',
|
||||
|
||||
# 5. 7 Deadly Sins
|
||||
'гордыня': '👑 🪞',
|
||||
'зависть': '🐍 👁️',
|
||||
'гнев': '🔥 ⚡',
|
||||
'уныние': '🌧️ 🥀',
|
||||
'алчность': '💰 🪙',
|
||||
'чревоугодие': '🍞 🍷',
|
||||
'похоть': '💋 🔥',
|
||||
|
||||
# 6. 14 Musical Terms & Acoustics
|
||||
'до': '🎵 🔔',
|
||||
'ре': '🎶 🌊',
|
||||
'ми': '🎼 🌿',
|
||||
'фа': '🎺 ☀️',
|
||||
'соль': '🧂 ☀️',
|
||||
'ля': '🎻 🕊️',
|
||||
'си': '🪕 ✨',
|
||||
'диез': '♯ 🔺',
|
||||
'бемоль': '♭ 🔻',
|
||||
'звук': '🔊 🌊',
|
||||
'тишина': '🤫 🌌',
|
||||
'эхо': '📢 🏔️',
|
||||
'ритм': '🥁 💓',
|
||||
'мелодия': '🎼 🎶',
|
||||
|
||||
# 7. 14 Colors
|
||||
'красный': '🔴 🔥',
|
||||
'оранжевый': '🟠 🌅',
|
||||
'жёлтый': '🟡 ☀️',
|
||||
'зелёный': '🟢 🌿',
|
||||
'зеленый': '🟢 🌿',
|
||||
'голубой': '💠 🩵',
|
||||
'синий': '🔵 🌊',
|
||||
'фиолетовый': '🟣 🔮',
|
||||
'белый': '⚪ 🕊️',
|
||||
'чёрный': '⚫ 🌑',
|
||||
'черный': '⚫ 🌑',
|
||||
'серый': '🔘 🌫️',
|
||||
'розовый': '🌸 💖',
|
||||
'пурпурный': '👑 🪻',
|
||||
'коричневый': '🟤 🪵',
|
||||
'прозрачный': '💎 🪟',
|
||||
|
||||
# 8. 14 Senses, Tastes & Smells
|
||||
'сладкий': '🍯 🍓',
|
||||
'горький': '☕ 🌿',
|
||||
'кислый': '🍋 ⚡',
|
||||
'солёный': '🧂 🌊',
|
||||
'острый': '🌶️ 🗡️',
|
||||
'вяжущий': '🍂 🪵',
|
||||
'пресный': '💧 ⚪',
|
||||
'аромат': '🌸 🪔',
|
||||
'вонь': '🦨 ☣️',
|
||||
'свежесть': '🍃 ❄️',
|
||||
'пряный': '🌿 🌰',
|
||||
'терпкий': '🍇 🍷',
|
||||
'гниль': '🍄 🍂',
|
||||
'гарь': '🌋 💨',
|
||||
|
||||
# 9. 14 Bodily Senses & Tactility
|
||||
'зрение': '👁️ 🌅',
|
||||
'слух': '👂 🔔',
|
||||
'осязание': '✋ 🪶',
|
||||
'вкус': '👅 🍯',
|
||||
'обоняние': '👃 🌸',
|
||||
'равновесие': '⚖️ 🧘',
|
||||
'чутьё': '🐺 🧭',
|
||||
'мягкий': '🪶 ☁️',
|
||||
'твёрдый': '🪨 💎',
|
||||
'пушистый': '🐱 ☁️',
|
||||
'гладкий': '🧊 🪞',
|
||||
'шершавый': '🪵 🧗',
|
||||
'горячий': '♨️ 🔥',
|
||||
'холодный': '❄️ 🧊',
|
||||
|
||||
# 10. Daily Cycle
|
||||
'полночь': '🕛 🌑',
|
||||
'заря': '🌄 ✨',
|
||||
'рассвет': '🌅 ☀️',
|
||||
'утро': '☕ 🌅',
|
||||
'день': '☀️ 🏙️',
|
||||
'полдень': '🕛 ☀️',
|
||||
'вечер': '🌇 🍷',
|
||||
'закат': '🌆 🌅',
|
||||
'сумерки': '🌃 🌫️',
|
||||
'ночь': '🌙 🌌',
|
||||
|
||||
# 11. Fundamental Elements
|
||||
'огонь': '🔥 ⚡',
|
||||
'вода': '💧 🌊',
|
||||
'воздух': '💨 🍃',
|
||||
'земля': '🌍 ⛰️',
|
||||
'свет': '✨ ☀️',
|
||||
'тьма': '🌑 🖤',
|
||||
'лёд': '❄️ 🧊',
|
||||
'пламя': '🔥 🕯️',
|
||||
'искра': '⚡ ✨',
|
||||
'пепел': '🌫️ ⚱️',
|
||||
'дым': '💨 🌫️',
|
||||
'пар': '♨️ 🌫️',
|
||||
'тень': '👤 🌑',
|
||||
'луч': '☀️ ⚡',
|
||||
'сияние': '✨ 🌟',
|
||||
'мрак': '🌑 🖤',
|
||||
'зима': '❄️ 🌨️',
|
||||
'весна': '🌱 🌸',
|
||||
'осень': '🍂 🍁',
|
||||
'лето': '☀️ 🌻',
|
||||
'молния': '⚡ 🌩️',
|
||||
'гром': '🌩️ 🔊',
|
||||
'дождь': '🌧️ 💧',
|
||||
'туман': '🌫️ 🌁',
|
||||
'роса': '💧 🍃',
|
||||
'иней': '❄️ 🌾',
|
||||
'буря': '🌪️ ⚡',
|
||||
'ветер': '💨 🍃',
|
||||
'волна': '🌊 🌊',
|
||||
'прилив': '🌊 🌕',
|
||||
'отлив': '🌊 🌑',
|
||||
'лава': '🌋 🔥',
|
||||
'радуга': '🌈 ✨',
|
||||
'снег': '❄️ 🌨️',
|
||||
'жар': '🔥 🌡️',
|
||||
'холод': '❄️ 🧊',
|
||||
'небо': '🌌 ☁️',
|
||||
'бездна': '🕳️ 🌌',
|
||||
'верх': '⬆️ 🏔️',
|
||||
'низ': '⬇️ 🕳️',
|
||||
'высота': '🏔️ 🦅',
|
||||
'глубина': '🌊 ⚓',
|
||||
'север': '❄️ 🧭',
|
||||
'юг': '☀️ 🧭',
|
||||
'восток': '🌅 🧭',
|
||||
'запад': '🌇 🧭',
|
||||
|
||||
# 12. Actions / Verbs (all 109 verbs)
|
||||
'бежать': '🏃 💨',
|
||||
'бояться': '😨 🌑',
|
||||
'бросить': '🤾 💨',
|
||||
'быть': '🕯️ 👁️',
|
||||
'верить': '🕯️ ✝️',
|
||||
'вернуться': '🔄 🏠',
|
||||
'вести': '🧭 🚶',
|
||||
'взять': '🤲 ✊',
|
||||
'видеть': '👁️ ✨',
|
||||
'возникнуть': '✨ 🌱',
|
||||
'войти': '🚪 ➡️',
|
||||
'вспомнить': '🧠 💡',
|
||||
'встать': '🧍 ⬆️',
|
||||
'выглядеть': '🪞 👁️',
|
||||
'вызвать': '📯 ⚡',
|
||||
'выйти': '🚪 🌅',
|
||||
'дать': '🤲 🎁',
|
||||
'действовать': '⚡ 🔨',
|
||||
'делать': '🛠️ 🧱',
|
||||
'держать': '✊ 🔒',
|
||||
'думать': '🧠 💭',
|
||||
'ехать': '🏇 🛤️',
|
||||
'ждать': '⏳ 👁️',
|
||||
'желать': '🌟 💫',
|
||||
'жить': '🌿 💓',
|
||||
'забыть': '🌫️ 🍂',
|
||||
'заметить': '👁️ ⚡',
|
||||
'звать': '📢 📯',
|
||||
'знать': '📜 💡',
|
||||
'значить': '🗝️ 📖',
|
||||
'играть': '🎭 🎲',
|
||||
'идти': '🚶 🛤️',
|
||||
'иметь': '💼 🔑',
|
||||
'искать': '🧭 🔍',
|
||||
'казаться': '🌫️ 🪞',
|
||||
'касаться': '✋ ✨',
|
||||
'кричать': '📢 ⚡',
|
||||
'лежать': '🛏️ 🧘',
|
||||
'любить': '❤️ 🕊️',
|
||||
'молчать': '🤫 🤐',
|
||||
'мочь': '⚡ ✊',
|
||||
'надеяться': '🕊️ ⚓',
|
||||
'назвать': '🗣️ 🏷️',
|
||||
'найти': '🗝️ 💎',
|
||||
'находиться': '📍 🧭',
|
||||
'начать': '🏁 🌱',
|
||||
'нести': '🎒 🚶',
|
||||
'нравиться': '✨ 💖',
|
||||
'обнаружить': '🔍 💡',
|
||||
'объяснить': '📜 🗣️',
|
||||
'оставить': '🥀 🚪',
|
||||
'остаться': '⚓ 🏛️',
|
||||
'ответить': '🗣️ ✉️',
|
||||
'открыть': '🔓 🚪',
|
||||
'передать': '🤝 📜',
|
||||
'петь': '🎤 🎶',
|
||||
'писать': '✍️ 📜',
|
||||
'пить': '🍷 💧',
|
||||
'поднять': '⬆️ 🤲',
|
||||
'позволить': '🕊️ 🔓',
|
||||
'показать': '👆 👁️',
|
||||
'получить': '🎁 🤲',
|
||||
'помнить': '🧠 🏛️',
|
||||
'помочь': '🤝 🛡️',
|
||||
'понимать': '💡 🧠',
|
||||
'попасть': '🎯 🏹',
|
||||
'потерять': '🍂 🕳️',
|
||||
'появиться': '✨ 🌅',
|
||||
'предложить': '🤲 📜',
|
||||
'прийти': '🚪 🚶',
|
||||
'принести': '🎁 🚶',
|
||||
'принять': '🤲 🤍',
|
||||
'продолжать': '⏳ ➡️',
|
||||
'просить': '🙏 🕯️',
|
||||
'пытаться': '🧗 ⚡',
|
||||
'рассказать': '🗣️ 📜',
|
||||
'расти': '🌱 🌳',
|
||||
'решить': '⚖️ 🗡️',
|
||||
'связать': '🪢 🔗',
|
||||
'сидеть': '🪑 🧘',
|
||||
'сказать': '🗣️ 💬',
|
||||
'служить': '🛡️ 🕯️',
|
||||
'случиться': '⚡ 🎲',
|
||||
'слушать': '👂 🔔',
|
||||
'слышать': '👂 🌊',
|
||||
'смотреть': '👁️ 🔭',
|
||||
'снять': '🎭 ⬇️',
|
||||
'собираться': '🎒 🧭',
|
||||
'согласиться': '🤝 🕊️',
|
||||
'создать': '🏛️ ✨',
|
||||
'спать': '💤 🌙',
|
||||
'спросить': '❓ 🗣️',
|
||||
'ставить': '🧱 📍',
|
||||
'стараться': '🧗 🔨',
|
||||
'стать': '⚡ 👑',
|
||||
'стоить': '🪙 ⚖️',
|
||||
'стоять': '🧍 ⚓',
|
||||
'существовать': '🌌 🕯️',
|
||||
'убить': '⚔️ 💀',
|
||||
'уйти': '🚪 🚶',
|
||||
'умереть': '💀 ⏳',
|
||||
'уметь': '🛠️ 💡',
|
||||
'успеть': '⏳ ⚡',
|
||||
'учиться': '📖 🧙',
|
||||
'хватать': '✊ 🦅',
|
||||
'ходить': '🚶 🐾',
|
||||
'хотеть': '🔥 💭',
|
||||
'читать': '📖 👓',
|
||||
'чувствовать': '💓 🌊',
|
||||
|
||||
# 13. Adjectives (all remaining)
|
||||
'близкий': '🫂 📍',
|
||||
'большой': '🐘 🏔️',
|
||||
'великий': '👑 🏛️',
|
||||
'влажный': '💧 🌿',
|
||||
'внешний': '🌐 🪟',
|
||||
'внутренний': '🧘 🗝️',
|
||||
'высокий': '🏔️ 🦅',
|
||||
'глубокий': '🌊 ⚓',
|
||||
'готовый': '🏁 ⚡',
|
||||
'далекий': '🔭 🌌',
|
||||
'длинный': '📏 🛤️',
|
||||
'добрый': '☀️ 🤍',
|
||||
'долгий': '⏳ 📜',
|
||||
'дорогой': '💎 🪙',
|
||||
'единый': '⭕ 🔗',
|
||||
'живой': '🌱 💓',
|
||||
'знакомый': '🤝 💡',
|
||||
'знаменитый': '🌟 👑',
|
||||
'интересный': '🔍 ✨',
|
||||
'короткий': '✂️ ⏱️',
|
||||
'легкий': '🪶 💨',
|
||||
'личный': '🗝️ 👤',
|
||||
'любимый': '💖 🌹',
|
||||
'малый': '🔬 🔹',
|
||||
'молодой': '🌱 👶',
|
||||
'настоящий': '💎 ⚖️',
|
||||
'низкий': '⬇️ 🕳️',
|
||||
'новый': '✨ 🌅',
|
||||
'открытый': '🔓 🚪',
|
||||
'плохой': '🥀 🌑',
|
||||
'поздний': '🦉 🌙',
|
||||
'полный': '🌕 🏺',
|
||||
'последний': '🔚 ⏳',
|
||||
'похожий': '🪞 👥',
|
||||
'правый': '⚖️ ➡️',
|
||||
'прекрасный': '🌺 ✨',
|
||||
'простой': '🪵 ⚪',
|
||||
'прошлый': '🏛️ 📜',
|
||||
'прямой': '📏 🏹',
|
||||
'пустой': '🫙 💨',
|
||||
'равный': '⚖️ 🟰',
|
||||
'разный': '🔀 🎭',
|
||||
'ранний': '🌅 🐓',
|
||||
'свободный': '🦅 🕊️',
|
||||
'серьезный': '🗿 ⚖️',
|
||||
'сильный': '🦁 💪',
|
||||
'сложный': '🧩 🌀',
|
||||
'старый': '👴 ⏳',
|
||||
'странный': '🌀 👁️',
|
||||
'страшный': '👹 ⚡',
|
||||
'сухой': '🏜️ 🍂',
|
||||
'темный': '🌑 🖤',
|
||||
'тяжелый': '🪨 ⚖️',
|
||||
'хороший': '🌟 👍',
|
||||
'целый': '🌕 🛡️',
|
||||
'чистый': '💧 🕊️',
|
||||
'чужой': '👤 🚪',
|
||||
'широкий': '🌊 ↔️',
|
||||
|
||||
# 14. Grammar Particles, Pronouns, Numerals
|
||||
'а': '⚖️ ⚡',
|
||||
'без': '🚫 🫙',
|
||||
'более': '📈 ➕',
|
||||
'больше': '📈 ➕',
|
||||
'будто': '🪞 ✨',
|
||||
'бы': '💭 🔮',
|
||||
'быстро': '⚡ 💨',
|
||||
'в': '📥 📍',
|
||||
'ваш': '🛡️ 👥',
|
||||
'вдруг': '⚡ 💥',
|
||||
'ведь': '💡 🗣️',
|
||||
'весь': '🌐 ⭕',
|
||||
'вместе': '🤝 👥',
|
||||
'вместо': '🔀 🪑',
|
||||
'во': '📥 📍',
|
||||
'возможно': '🎲 ✨',
|
||||
'вокруг': '🔄 🌐',
|
||||
'вообще': '🌐 🌊',
|
||||
'вот': '👉 ⚡',
|
||||
'впервые': '🌱 1️⃣',
|
||||
'вперед': '➡️ 🏹',
|
||||
'все': '🌐 👥',
|
||||
'все-таки': '⚖️ ⚡',
|
||||
'всегда': '♾️ ⏳',
|
||||
'всего': '🌐 ▫️',
|
||||
'вчера': '🏛️ 📜',
|
||||
'вы': '👥 👑',
|
||||
'где': '📍 ❓',
|
||||
'где-то': '📍 🌫️',
|
||||
'да': '🟢 ✔️',
|
||||
'давно': '⏳ 🏛️',
|
||||
'даже': '⚡ ❗',
|
||||
'далеко': '🔭 🌌',
|
||||
'два': '2️⃣ 👥',
|
||||
'двадцать': '2️⃣0️⃣ ⏳',
|
||||
'десять': '🔟 🏛️',
|
||||
'для': '🎯 🎁',
|
||||
'долго': '⏳ 📜',
|
||||
'домой': '🏠 🚶',
|
||||
'другой': '🔀 🎭',
|
||||
'его': '👤 🗝️',
|
||||
'едва': '🤏 ⏱️',
|
||||
'ее': '👩 🗝️',
|
||||
'если': '🔀 ❓',
|
||||
'еще': '⏳ ➕',
|
||||
'ж': '⚡ 💥',
|
||||
'же': '⚡ 💥',
|
||||
'за': '🚪 🛡️',
|
||||
'завтра': '🌅 🔮',
|
||||
'затем': '➡️ ⏳',
|
||||
'зато': '⚖️ 🌿',
|
||||
'здесь': '📍 ⚓',
|
||||
'и': '➕ 🔗',
|
||||
'ибо': '📜 💡',
|
||||
'из': '📤 🏞️',
|
||||
'из-за': '⛈️ ⚡',
|
||||
'или': '⚖️ 🔀',
|
||||
'именно': '🎯 📍',
|
||||
'иначе': '🔀 ⚡',
|
||||
'иногда': '🎲 ⏳',
|
||||
'иной': '🔀 🎭',
|
||||
'их': '👥 🗝️',
|
||||
'к': '➡️ 📍',
|
||||
'как': '🪞 ❓',
|
||||
'как-то': '🌫️ ❓',
|
||||
'какой': '❓ 🔍',
|
||||
'какой-то': '🌫️ ❓',
|
||||
'ко': '➡️ 📍',
|
||||
'когда': '⏳ ❓',
|
||||
'который': '👉 🗝️',
|
||||
'кроме': '🚫 ✂️',
|
||||
'кто': '❓ 👤',
|
||||
'кто-то': '👤 🌫️',
|
||||
'куда': '🧭 ❓',
|
||||
'легко': '🪶 💨',
|
||||
'ли': '❓ ⚖️',
|
||||
'либо': '🔀 🎲',
|
||||
'лишь': '🎯 ▫️',
|
||||
'мало': '💧 ▫️',
|
||||
'между': '↔️ ⚖️',
|
||||
'многий': '🌊 👥',
|
||||
'много': '🌊 ➕',
|
||||
'можно': '🟢 🕊️',
|
||||
'мой': '🗝️ 👤',
|
||||
'мы': '👥 🤝',
|
||||
'на': '🔝 📍',
|
||||
'над': '☁️ ⬆️',
|
||||
'надо': '⚠️ 🔨',
|
||||
'назад': '⬅️ ⏳',
|
||||
'наконец': '🏁 ⏳',
|
||||
'наш': '🛡️ 👥',
|
||||
'не': '🚫 🛡️',
|
||||
'недавно': '⏱️ 🌿',
|
||||
'некий': '🌫️ ✨',
|
||||
'нельзя': '🔴 🚫',
|
||||
'немного': '🤏 💧',
|
||||
'нет': '🔴 ✖️',
|
||||
'ни': '🚫 ⚪',
|
||||
'никак': '🚫 ⚡',
|
||||
'никогда': '🚫 ⏳',
|
||||
'никто': '🚫 👤',
|
||||
'ничто': '🚫 🕳️',
|
||||
'но': '🛡️ ⚡',
|
||||
'ну': '🗣️ ⚡',
|
||||
'нужно': '⚠️ 🔨',
|
||||
'о': '💭 🗣️',
|
||||
'об': '💭 🗣️',
|
||||
'оба': '👥 🟰',
|
||||
'один': '1️⃣ ☝️',
|
||||
'однажды': '🌟 📖',
|
||||
'однако': '🛡️ ⚡',
|
||||
'около': '🔄 📍',
|
||||
'он': '👨 👤',
|
||||
'она': '👩 👤',
|
||||
'они': '👥 🌐',
|
||||
'оно': '⚪ 🔮',
|
||||
'от': '⬅️ 📍',
|
||||
'откуда': '🏛️ ❓',
|
||||
'очень': '🔥 ❗',
|
||||
'перед': '🚪 👁️',
|
||||
'плохо': '👎 🥀',
|
||||
'по': '🛤️ ➡️',
|
||||
'под': '⬇️ 🛡️',
|
||||
'пока': '⏳ ⏳',
|
||||
'поскольку': '📜 💡',
|
||||
'после': '🔚 ➡️',
|
||||
'потом': '➡️ ⏳',
|
||||
'потому': '💡 🗝️',
|
||||
'почему': '❓ 💡',
|
||||
'почему-то': '❓ 🌫️',
|
||||
'почти': '🤏 🎯',
|
||||
'поэтому': '➡️ 💡',
|
||||
'правда': '💎 ⚖️',
|
||||
'прежде': '⬅️ 📜',
|
||||
'при': '🤝 📍',
|
||||
'причем': '➕ 📜',
|
||||
'про': '📖 💭',
|
||||
'против': '⚔️ 🛡️',
|
||||
'прямо': '📏 ➡️',
|
||||
'пусть': '🕊️ ✨',
|
||||
'пять': '5️⃣ ⭐',
|
||||
'рано': '🌅 🐓',
|
||||
'рядом': '🫂 📍',
|
||||
'с': '🤝 📍',
|
||||
'сам': '👤 ⚡',
|
||||
'самый': '🔝 ⭐',
|
||||
'свой': '🗝️ 🤍',
|
||||
'себя': '🪞 👤',
|
||||
'сегодня': '☀️ 📅',
|
||||
'сей': '👉 📍',
|
||||
'сейчас': '⏱️ ⚡',
|
||||
'сильно': '💪 ⚡',
|
||||
'сколько': '❓ 🔢',
|
||||
'скоро': '⚡ ⏳',
|
||||
'слишком': '🌊 ⚠️',
|
||||
'словно': '🪞 ✨',
|
||||
'сначала': '🏁 1️⃣',
|
||||
'снова': '🔄 🔁',
|
||||
'со': '🤝 📍',
|
||||
'совсем': '💯 ⭕',
|
||||
'сразу': '⚡ ⏱️',
|
||||
'среди': '👥 🌾',
|
||||
'сто': '💯 🏛️',
|
||||
'столь': '📈 ⚡',
|
||||
'сюда': '↙️ 📍',
|
||||
'так': '👉 ✔️',
|
||||
'такой': '🪞 ▫️',
|
||||
'там': '📍 🔭',
|
||||
'твой': '🗝️ 🫵',
|
||||
'теперь': '⏳ 📍',
|
||||
'тихо': '🤫 🍃',
|
||||
'то': '👉 📍',
|
||||
'тогда': '⏳ ⚡',
|
||||
'только': '🎯 ▫️',
|
||||
'тот': '👈 🔭',
|
||||
'точно': '🎯 📐',
|
||||
'три': '3️⃣ 🔺',
|
||||
'трудно': '🪨 🧗',
|
||||
'туда': '↗️ 🧭',
|
||||
'ты': '🫵 👤',
|
||||
'у': '📍 🏡',
|
||||
'уж': '⏳ ⚡',
|
||||
'уже': '⌛ ⚡',
|
||||
'хорошо': '👍 ✨',
|
||||
'хоть': '🌧️ ☀️',
|
||||
'хотя': '🌧️ ☀️',
|
||||
'часто': '🌊 🌊',
|
||||
'чем': '⚖️ ❓',
|
||||
'через': '🌉 ➡️',
|
||||
'четыре': '4️⃣ 🟩',
|
||||
'что': '❓ 🔮',
|
||||
'что-то': '🔮 🌫️',
|
||||
'чтоб': '🎯 🏹',
|
||||
'чтобы': '🎯 🏹',
|
||||
'шесть': '6️⃣ 🔯',
|
||||
'это': '👆 📍',
|
||||
'этот': '👉 📍',
|
||||
'я': '👁️ 👤',
|
||||
'ясно': '☀️ 💡',
|
||||
|
||||
# 15. Nouns (specific archetypal pairs)
|
||||
'бдение': '🕯️ 👁️',
|
||||
'благодать': '✨ 🕊️',
|
||||
'благословение': '🤲 ✨',
|
||||
'болезнь': '🥀 🩹',
|
||||
'борьба': '🤼 ⚔️',
|
||||
'брат': '👦 🤝',
|
||||
'будущее': '🌅 🔮',
|
||||
'буря': '🌪️ ⚡',
|
||||
'вдова': '🖤 🥀',
|
||||
'ведьма': '🧙♀️ 🌙',
|
||||
'век': '🏛️ ⏳',
|
||||
'верёвка': '🪢 🧵',
|
||||
'вестник': '📯 🕊️',
|
||||
'вещь': '📦 🏺',
|
||||
'взгляд': '👁️ 🎯',
|
||||
'вид': '🏞️ 👁️',
|
||||
'вина': '⛓️ 😔',
|
||||
'вино': '🍷 🍇',
|
||||
'власть': '👑 ⚡',
|
||||
'внимание': '🎯 👁️',
|
||||
'война': '⚔️ 🛡️',
|
||||
'волос': '💇 🌾',
|
||||
'воля': '⚡ ✊',
|
||||
'встреча': '🤝 👥',
|
||||
'вуаль': '🕸️ 👰',
|
||||
'вход': '🚪 🔑',
|
||||
'высота': '🏔️ 🦅',
|
||||
'выход': '🚪 🌅',
|
||||
'глаз': '👁️ ✨',
|
||||
'год': '📅 ⏳',
|
||||
'голова': '👤 🧠',
|
||||
'голос': '🗣️ 🎶',
|
||||
'гримуар': '📖 🔮',
|
||||
'грудь': '🫁 🛡️',
|
||||
'дверь': '🚪 🗝️',
|
||||
'движение': '🏃 ➡️',
|
||||
'двойник': '👥 🪞',
|
||||
'двор': '🏡 🌿',
|
||||
'дворец': '🏰 👑',
|
||||
'дельфин': '🐬 🌊',
|
||||
'деревня': '🏘️ 🌾',
|
||||
'долина': '🏞️ 🌾',
|
||||
'дорога': '🛤️ 🧭',
|
||||
'дочь': '👧 🌸',
|
||||
'древо': '🌳 🪵',
|
||||
'дубрава': '🌳 🌿',
|
||||
'дух': '🕊️ ✨',
|
||||
'душа': '🕯️ 💖',
|
||||
'дым': '💨 🌫️',
|
||||
'дыхание': '🫁 💨',
|
||||
'единорог': '🦄 ✨',
|
||||
'желание': '🌟 💫',
|
||||
'жена': '👰 💍',
|
||||
'жрица': '🔮 🌙',
|
||||
'журавль': '🪿 🌾',
|
||||
'завеса': '🎭 🌫️',
|
||||
'закон': '📜 ⚖️',
|
||||
'зал': '🏛️ 🕯️',
|
||||
'защита': '🛡️ 🏰',
|
||||
'заяц': '🐇 🐾',
|
||||
'знамение': '☄️ 📜',
|
||||
'знание': '💡 📖',
|
||||
'зов': '📯 📢',
|
||||
'ива': '🌿 💧',
|
||||
'игра': '🎭 🎲',
|
||||
'идея': '💡 ⚡',
|
||||
'идол': '🗿 🕯️',
|
||||
'изгнанник': '🚶 🌑',
|
||||
'изобилие': '🌾 🍇',
|
||||
'имя': '🏷️ 📜',
|
||||
'интерес': '🔍 ✨',
|
||||
'искупление': '🕊️ 🕯️',
|
||||
'искусство': '🎨 🏛️',
|
||||
'искушение': '🍎 🐍',
|
||||
'история': '📜 ⏳',
|
||||
'источник': '⛲ 💧',
|
||||
'итог': '🏁 ⚖️',
|
||||
'кабан': '🐗 🌲',
|
||||
'кадило': '🪔 💨',
|
||||
'кадуцей': '⚕️ 🐍',
|
||||
'капище': '🗿 🔥',
|
||||
'карма': '☸️ 🔄',
|
||||
'карта': '🗺️ 🧭',
|
||||
'картина': '🖼️ 🎨',
|
||||
'катакомбы': '🏛️ 💀',
|
||||
'кедр': '🌲 🏔️',
|
||||
'кинжал': '🗡️ ⚡',
|
||||
'кипарис': '🌲 🏛️',
|
||||
'кит': '🐋 🌊',
|
||||
'кладбище': '🪦 🥀',
|
||||
'коза': '🐐 🌾',
|
||||
'компас': '🧭 ⭐',
|
||||
'копьё': '🗡️ 🛡️',
|
||||
'король': '👑 🏰',
|
||||
'кость': '🦴 💀',
|
||||
'костёр': '🔥 🪵',
|
||||
'котёл': '🫕 ⚗️',
|
||||
'край': '⛰️ 🌅',
|
||||
'крик': '📢 ⚡',
|
||||
'кристалл': '💎 🔮',
|
||||
'кровь': '🩸 💓',
|
||||
'круг': '⭕ 🔄',
|
||||
'купель': '🏺 💧',
|
||||
'лавр': '🌿 👑',
|
||||
'ласточка': '🐦 🌅',
|
||||
'лебедь': '🦢 💧',
|
||||
'линия': '📏 〰️',
|
||||
'лира': '🎻 🎶',
|
||||
'лицо': '👤 🎭',
|
||||
'мальчик': '👦 🌱',
|
||||
'мандала': '☸️ 🌸',
|
||||
'маяк': '🗼 💡',
|
||||
'мера': '⚖️ 📏',
|
||||
'место': '📍 🏛️',
|
||||
'месть': '🗡️ 🔥',
|
||||
'месяц': '🌙 ⭐',
|
||||
'мир': '🕊️ 🌿',
|
||||
'момент': '⏱️ ⚡',
|
||||
'мудрец': '🧙 📜',
|
||||
'муж': '👨 💍',
|
||||
'мужик': '🧔 🪵',
|
||||
'музыка': '🎼 🎶',
|
||||
'муравей': '🐜 🌿',
|
||||
'мысль': '🧠 💭',
|
||||
'название': '🏷️ 📖',
|
||||
'направление': '🧭 ➡️',
|
||||
'народ': '👥 🏛️',
|
||||
'нектар': '🍯 🌺',
|
||||
'ненависть': '🔥 🗡️',
|
||||
'нищета': '🏚️ 🥀',
|
||||
'нищий': '🤲 🍂',
|
||||
'нога': '🦵 👣',
|
||||
'нос': '👃 🌬️',
|
||||
'обет': '📜 🕯️',
|
||||
'обитель': '🏡 🕊️',
|
||||
'образ': '🪞 👤',
|
||||
'обрыв': '🧗 🕳️',
|
||||
'опыт': '🧠 ⏳',
|
||||
'оружие': '⚔️ 🏹',
|
||||
'основа': '🏛️ 🧱',
|
||||
'основание': '🏛️ 🧱',
|
||||
'ось': '🌐 📍',
|
||||
'ответ': '✉️ 🗣️',
|
||||
'откровение': '📜 ⚡',
|
||||
'отношение': '🤝 🪢',
|
||||
'отсутствие': '🫙 💨',
|
||||
'отчаяние': '🌧️ 😔',
|
||||
'отшельник': '🧙 🏔️',
|
||||
'охотник': '🏹 🌲',
|
||||
'палач': '🪓 🖤',
|
||||
'палец': '☝️ 🖐️',
|
||||
'пантера': '🐆 🌑',
|
||||
'пара': '👥 🤍',
|
||||
'перевал': '🏔️ 🛤️',
|
||||
'перекресток': '➕ 🧭',
|
||||
'песня': '🎤 🎶',
|
||||
'петух': '🐓 🌅',
|
||||
'печаль': '😢 🌧️',
|
||||
'пилигрим': '🚶 🧭',
|
||||
'пир': '🍷 🍖',
|
||||
'письмо': '✉️ 📜',
|
||||
'плач': '😭 💧',
|
||||
'плечо': '🦾 🛡️',
|
||||
'плющ': '🌿 🏛️',
|
||||
'подземелье': '🕳️ 🗝️',
|
||||
'пол': '🪵 🏛️',
|
||||
'поле': '🌾 🌻',
|
||||
'половина': '🌓 ✂️',
|
||||
'помощь': '🤝 🛡️',
|
||||
'пора': '⏳ 🌾',
|
||||
'посвящение': '🕯️ 👑',
|
||||
'пост': '🍞 🧘',
|
||||
'поэт': '🪶 📜',
|
||||
'правило': '📜 📏',
|
||||
'право': '⚖️ 📜',
|
||||
'принцип': '🏛️ ⚖️',
|
||||
'природа': '🌿 🌲',
|
||||
'пристань': '⚓ ⛵',
|
||||
'причина': '🗝️ 💡',
|
||||
'проклятие': '☠️ ⚡',
|
||||
'пропасть': '🕳️ 🧗',
|
||||
'пророчество': '📜 👁️',
|
||||
'пространство': '🌌 📐',
|
||||
'прощение': '🕊️ 🤲',
|
||||
'радость': '☀️ 😄',
|
||||
'раз': '1️⃣ ⚡',
|
||||
'развитие': '🌱 📈',
|
||||
'рассказ': '📖 🗣️',
|
||||
'ребята': '🧒 👧',
|
||||
'реликвия': '🏺 ✨',
|
||||
'речь': '🗣️ 💬',
|
||||
'решение': '⚖️ 🗡️',
|
||||
'рисунок': '🎨 📜',
|
||||
'рог': '📯 🦏',
|
||||
'род': '🌳 🩸',
|
||||
'родитель': '👨👩👧 🕊️',
|
||||
'родник': '💧 🌿',
|
||||
'рок': '⚡ ⏳',
|
||||
'роман': '📖 ❤️',
|
||||
'рост': '🌱 ⬆️',
|
||||
'рот': '👄 🗣️',
|
||||
'роща': '🌳 🍃',
|
||||
'рука': '✋ 🤲',
|
||||
'ручей': '🏞️ 💧',
|
||||
'рысь': '🐾 🌲',
|
||||
'связь': '🪢 🔗',
|
||||
'святилище': '🏛️ 🕯️',
|
||||
'семья': '👨👩👧 🏡',
|
||||
'семя': '🌱 🌰',
|
||||
'сердце': '❤️ 💓',
|
||||
'сестра': '👧 🌸',
|
||||
'сирота': '🥀 🧒',
|
||||
'скала': '⛰️ 🪨',
|
||||
'скверна': '☣️ 🖤',
|
||||
'скит': '🛖 🌲',
|
||||
'скорбь': '🥀 🖤',
|
||||
'скрижаль': '📜 🪨',
|
||||
'слабость': '🥀 ⏳',
|
||||
'слово': '💬 🪶',
|
||||
'случай': '🎲 ⚡',
|
||||
'смех': '😄 ✨',
|
||||
'смирение': '🙇 🕊️',
|
||||
'смысл': '💡 🗝️',
|
||||
'событие': '⚡ 📅',
|
||||
'совет': '🗣️ 📜',
|
||||
'создание': '🏛️ ✨',
|
||||
'сознание': '🧠 ✨',
|
||||
'солдат': '🪖 ⚔️',
|
||||
'сомнение': '❓ ⚖️',
|
||||
'состояние': '🌊 🧘',
|
||||
'сосуд': '🏺 🫙',
|
||||
'спаситель': '🕊️ 👑',
|
||||
'спина': '👤 🛡️',
|
||||
'спираль': '🌀 🐚',
|
||||
'спутник': '🛰️ 🌙',
|
||||
'среда': '🌿 🌐',
|
||||
'стихи': '📜 🪶',
|
||||
'сторона': '🧭 ↔️',
|
||||
'страсть': '🔥 ❤️',
|
||||
'стыд': '😳 🥀',
|
||||
'суд': '⚖️ 🏛️',
|
||||
'сцена': '🎭 🏛️',
|
||||
'счастье': '🍀 ☀️',
|
||||
'сын': '👦 🏹',
|
||||
'талисман': '🧿 🪙',
|
||||
'танец': '💃 🎶',
|
||||
'творец': '🏛️ ✨',
|
||||
'тело': '👤 🩸',
|
||||
'театр': '🎭 🏛️',
|
||||
'течение': '🌊 ➡️',
|
||||
'тигр': '🐅 🐾',
|
||||
'тотем': '🐾 🪵',
|
||||
'точка': '📍 ⚫',
|
||||
'тревога': '⚡ 😟',
|
||||
'тропа': '🛤️ 🌲',
|
||||
'труд': '🔨 🌾',
|
||||
'тысяча': '1️⃣0️⃣0️⃣0️⃣ 🏛️',
|
||||
'угасание': '🕯️ 💨',
|
||||
'угол': '📐 🏛️',
|
||||
'удар': '💥 ⚡',
|
||||
'улица': '🏙️ 🛤️',
|
||||
'ум': '🧠 💡',
|
||||
'успех': '🏆 🌟',
|
||||
'ухо': '👂 🔔',
|
||||
'ущелье': '🏞️ 🧗',
|
||||
'филин': '🦉 🌲',
|
||||
'фонарь': '🏮 💡',
|
||||
'форма': '🔷 📐',
|
||||
'характер': '🗿 ⚡',
|
||||
'хижина': '🛖 🌲',
|
||||
'хлеб': '🍞 🌾',
|
||||
'ход': '♟️ ➡️',
|
||||
'хозяин': '👑 🔑',
|
||||
'хранитель': '🗝️ 🛡️',
|
||||
'художник': '🎨 🖌️',
|
||||
'цвет': '🎨 🌈',
|
||||
'цель': '🎯 🏹',
|
||||
'центр': '🎯 ⭕',
|
||||
'церковь': '⛪ 🕊️',
|
||||
'цикл': '🔄 ⏳',
|
||||
'часть': '🧩 ▫️',
|
||||
'чаща': '🌲 🌳',
|
||||
'человек': '👤 🕯️',
|
||||
'чертог': '🏛️ 👑',
|
||||
'чувство': '💓 🌊',
|
||||
'чудо': '✨ 🌟',
|
||||
'шаг': '👣 🚶',
|
||||
'шаман': '🪶 🥁',
|
||||
'шатёр': '⛺ 🌌',
|
||||
'шрам': '⚡ 🩹',
|
||||
'шёпот': '🤫 🍃',
|
||||
'эпоха': '🏛️ ⏳',
|
||||
'явь': '👁️ ☀️',
|
||||
'яд': '🧪 ☠️',
|
||||
'язык': '👅 🗣️',
|
||||
'яйцо': '🥚 🐣',
|
||||
'якорь': '⚓ 🌊',
|
||||
}
|
||||
|
||||
def resolve_emoji(word, current_emoji, pos, category):
|
||||
w = word.lower().strip()
|
||||
if w in EXPLICIT_EMOJIS:
|
||||
return EXPLICIT_EMOJIS[w]
|
||||
if current_emoji and current_emoji not in ('🔮 ✨', '⚡ ➡️', '🧭 🏹', '✨ 🎨', '🏛️ 🧭', '🪢 🔗', '🔮 📜', '✨ 🏺', '👤 ✨', '🐾 ✨'):
|
||||
return current_emoji
|
||||
return '✨ 🔮'
|
||||
|
||||
def main():
|
||||
print('=== ASSIGNING RICH EMOJIS TO ALL 1000 WORDS ===')
|
||||
|
||||
with open(LEXICON_JSON, 'r', encoding='utf-8') as f:
|
||||
lexicon = json.load(f)
|
||||
|
||||
assert len(lexicon) == 1000, f'Expected 1000 items, got {len(lexicon)}'
|
||||
|
||||
word_to_emoji = {}
|
||||
missing_count = 0
|
||||
for item in lexicon:
|
||||
w = item['word']
|
||||
em = resolve_emoji(w, item.get('emoji', ''), item.get('pos', ''), item.get('category', ''))
|
||||
item['emoji'] = em
|
||||
word_to_emoji[w] = em
|
||||
if em == '✨ 🔮':
|
||||
missing_count += 1
|
||||
print(f'Warning: unmapped word: {w}')
|
||||
|
||||
print(f'Assigned emojis. Unmapped count: {missing_count}')
|
||||
|
||||
# Save lexicon.json
|
||||
with open(LEXICON_JSON, 'w', encoding='utf-8') as f:
|
||||
json.dump(lexicon, f, ensure_ascii=False, indent=2)
|
||||
print(f'Updated {LEXICON_JSON}')
|
||||
|
||||
# Update families.json
|
||||
try:
|
||||
with open(FAMILIES_JSON, 'r', encoding='utf-8') as f:
|
||||
families = json.load(f)
|
||||
for w, entry in families.items():
|
||||
if w in word_to_emoji and isinstance(entry, dict):
|
||||
entry['emoji'] = word_to_emoji[w]
|
||||
with open(FAMILIES_JSON, 'w', encoding='utf-8') as f:
|
||||
json.dump(families, f, ensure_ascii=False, indent=2)
|
||||
print(f'Updated {FAMILIES_JSON}')
|
||||
except Exception as e:
|
||||
print(f'Error updating families.json: {e}')
|
||||
|
||||
# Update KB asset & out
|
||||
for kb_path in (KB_ASSET_JSON, KB_OUT_JSON):
|
||||
try:
|
||||
with open(kb_path, 'r', encoding='utf-8') as f:
|
||||
kb = json.load(f)
|
||||
for k, entry in kb.items():
|
||||
w_name = entry.get('word', '')
|
||||
if w_name in word_to_emoji:
|
||||
entry['emoji'] = word_to_emoji[w_name]
|
||||
with open(kb_path, 'w', encoding='utf-8') as f:
|
||||
json.dump(kb, f, ensure_ascii=False, indent=2)
|
||||
print(f'Updated {kb_path}')
|
||||
except Exception as e:
|
||||
print(f'Error updating {kb_path}: {e}')
|
||||
|
||||
# Update lib/data/words_data.dart
|
||||
with open(WORDS_DATA_DART, 'r', encoding='utf-8') as f:
|
||||
dart_lines = f.readlines()
|
||||
|
||||
updated_dart_lines = []
|
||||
current_w = None
|
||||
for line in dart_lines:
|
||||
m_word = re.search(r'word:\s*"([^"]+)"', line)
|
||||
if m_word:
|
||||
current_w = m_word.group(1)
|
||||
m_emoji = re.search(r'emoji:\s*"([^"]*)"', line)
|
||||
if m_emoji and current_w and current_w in word_to_emoji:
|
||||
line = re.sub(r'emoji:\s*"[^"]*"', f'emoji: "{word_to_emoji[current_w]}"', line)
|
||||
updated_dart_lines.append(line)
|
||||
|
||||
with open(WORDS_DATA_DART, 'w', encoding='utf-8') as f:
|
||||
f.writelines(updated_dart_lines)
|
||||
print(f'Updated {WORDS_DATA_DART}')
|
||||
|
||||
# Update words_alphabetical.txt and .md
|
||||
alpha_items = sorted(lexicon, key=lambda x: x['word'])
|
||||
with open(WORDS_TXT, 'w', encoding='utf-8') as f:
|
||||
for it in alpha_items:
|
||||
f.write("#%03d %s %s" % (it["id"], it["word"], it["emoji"]) + chr(10))
|
||||
print(f"Updated {WORDS_TXT}")
|
||||
with open(WORDS_MD, "w", encoding="utf-8") as f:
|
||||
f.write("# Алфавитный указатель Оракула 999" + chr(10) + chr(10))
|
||||
f.write("| № | Слово | Иконка | Категория | Ч. речи |" + chr(10))
|
||||
f.write("|---|---|---|---|---|" + chr(10))
|
||||
for it in alpha_items:
|
||||
f.write(("| #%03d | **%s** | %s | %s | %s |" % (it["id"], it["word"], it["emoji"], it["category"], it["pos"])) + chr(10))
|
||||
print(f"Updated {WORDS_MD}")
|
||||
print(f'Updated {WORDS_MD}')
|
||||
|
||||
# Update lexicon_viewer.html
|
||||
with open(VIEWER_HTML, 'r', encoding='utf-8') as f:
|
||||
html_content = f.read()
|
||||
|
||||
escaped_lexicon = json.dumps(lexicon, ensure_ascii=False)
|
||||
if 'const rawLexicon = ' in html_content:
|
||||
html_content = re.sub(r'const rawLexicon = \[.*?\];', f'const rawLexicon = {escaped_lexicon};', html_content, flags=re.DOTALL)
|
||||
with open(VIEWER_HTML, 'w', encoding='utf-8') as f:
|
||||
f.write(html_content)
|
||||
print(f'Updated embedded rawLexicon in {VIEWER_HTML}')
|
||||
|
||||
print('=== ALL 1000 WORDS RICHLY EMOJI-MAPPED SUCCESSFULLY ===')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user