неділя, 14 квітня 2024 р.

Переклад математичних текстів ( jpg,png -> latex)

Спеціалізований чат-бот "Переклад математичних текстів" створено для допомоги в перекладі математичних текстів та формул, які подані як зображення, з неукраїнської мови на українську, а також для конвертації математичних виразів на цьому зображенні у формат LaTeX. Основна здатність полягає у роботі з текстами і формулами, що містяться у зображеннях. Проводиться аналіз зображень, виявлення тексту та формул, після чого відбувається їх переклад з подальшим наданням готового до використання LaTeX коду.

Це може бути корисним для студентів, науковців та інженерів, які часто працюють з науковими публікаціями, лекційними матеріалами або науковими рукописами, що містять математичні формули та текст англійською мовою. Завдяки можливостям, користувачі можуть легко інтегрувати перекладені математичні терміни та формули у свої дослідницькі проекти, презентації та навчальні матеріали.

Порядок роботи такий - вирізаємо windows-ножицями частину сторінки тексту ( рекомендую не більше 1/3 сторінки), копіюємо і вставляємо у вікно чат бота. Він починає перекладати тест і писати формули. Звичайно він допускає помилки, але на 80-90% формули він набирає правильно, тому це все одно швидше ніж самому набирати з нуля.

Приклад виконання, ліворуч зображення частини тексту, праворуч його lаtex-код

" > \bf{Означення 2.1.1.} Якщо \( \mathbf{F}, \mathbf{F'} : \mathcal{C} \to \mathcal{D} \) є коваріантними функторами, \textbf{натуральне перетворення} \( \boldsymbol{\varphi} : \mathbf{F} \Rightarrow \mathbf{F'} \) призначає кожному об'єкту \( X \in \mathcal{C} \) таке відображення \( \boldsymbol{\varphi_X} : \mathbf{F}(X) \to \mathbf{F'}(X) \), що квадрат \[ \begin{array}{ccc} \mathbf{F}(X) & \xrightarrow{\boldsymbol{\varphi_X}} & \mathbf{F'}(X) \\ \downarrow^{\mathbf{F}(\alpha)} & & \downarrow^{\mathbf{F'}(\alpha)} \\ \mathbf{F}(Y) & \xrightarrow{\boldsymbol{\varphi_Y}} & \mathbf{F'}(Y) \end{array} \] \textbf{комутує} для кожного морфізму \( \alpha : X \to Y \) у \( \mathcal{C} \). Аналогічно, якщо \( \mathbf{F} \) та \( \mathbf{F'} \) є \textbf{контраваріантними}, означення є таким же, але з вертикальними стрілками у зворотному напрямку. Множина \textbf{натуральних перетворень} з \( \mathbf{F} \) до \( \mathbf{F'} \) позначається \( \textbf{Nat}(\mathbf{F}, \mathbf{F'}) \). \textbf{Природне перетворення} \( \boldsymbol{\varphi} : \mathbf{F} \Rightarrow \mathbf{F'} \) є \textbf{натуральним ізоморфізмом}, якщо \( \boldsymbol{\varphi_X} \) є ізоморфізмом для кожного \( X \in \mathcal{C} \).

Пишіть українською без помилок

«Пишіть без помилок» — це спеціалізований чат-бот , розроблений спеціально для обробки українських текстів з метою їхнього виправлення згідно з літературними нормами української мови. Він автоматично виявляє і коригує специфічні некоректні вирази, замінюючи їх на правильні форми. Цей інструмент є надзвичайно корисним для тих, хто прагне вдосконалити якість своїх текстів, забезпечуючи їх граматичну та стилістичну коректність без зайвих пояснень чи коментарів.
Завдяки цьому підходу користувачі можуть швидко адаптувати свої тексти до вимог української літературної мови, зробивши їх водночас точними та вишуканими. Це ідеальне рішення для підготовки статей, блогів, наукових робіт та інших видів письмової продукції, де важлива бездоганна мовна якість.
Користувачам, які бажають використовувати інструмент «Пишіть без помилок», достатньо ввести український текст, який вони хочуть виправити. Після введення тексту штучний інтелект автоматично проаналізує його на наявність помилок або неправильних висловів, які відомі заздалегідь. Якщо в тексті знайдені такі помилки, вони будуть автоматично замінені на коректні форми відповідно до зазначених правил української літературної мови. Цей процес дозволяє користувачам швидко отримати виправлений текст, що відповідає нормам літературної української мови, без необхідності вдаватися до ручного пошуку та корекції помилок. Таким чином, користувачі можуть заощадити час та зусилля, одночасно підвищуючи якість своїх текстів.
Ось список помилок (взято звідси) , які автоматично виправляюються в тексті
- ❌ Більше десяти — ✅ більш ніж десять, більш як десять, більше за десять, понад десять
- ❌ Більша половина — ✅ більша частина, більш як половина
- ❌ Більше того — ✅ ба більше, навіть більше
- ❌ В більшості випадків — ✅ здебільшого
- ❌ В дійсності — ✅ насправді
- ❌ В залежності від — ✅ залежно від
- ❌ В кінці кінців, кінець кінцем — ✅ врешті, зрештою
- ❌ В основному — ✅ переважно
- ❌ В розстрочку — ✅ на виплат
- ❌ В той же час — ✅ водночас
- ❌ В тому числі — ✅ зокрема, серед них
- ❌ В силу — ✅ через, з огляду на
- ❌ В цілому — ✅ загалом
- ❌ Вирішити проблему, питання, задачу, рівняння — ✅ розвʼязати проблему, питання, задачу, рівняння (але виконати завдання)
- ❌ Виходячи з — ✅ зважаючи на, з огляду на
- ❌ Відбитися на — ✅ позначитися на
- ❌ Відносно / по відношенню до / у цьому відношенні / на рахунок — ✅ щодо
- ❌ Відстоювати думку, позицію — ✅ обстоювати думку, позицію
- ❌ Вірніше сказати — ✅ точніше сказати
- ❌ Виключно — ✅ тільки, самий тільки, єдино тільки
- ❌ Включно / включаючи — ✅ серед них, також і
- ❌ Враховуючи — ✅ з огляду на
- ❌ Все рівно — ✅ все одно, однаково
- ❌ Головним чином — ✅ гóловно
- ❌ Даний — ✅ цей, такий
- ❌ Дійсно — ✅ справді
- ❌ До тих пір, поки — ✅ доти, доки
- ❌ З метою — ✅ для того, щоб
- ❌ З тих пір — ✅ відтоді
- ❌ З приводу святкування / роковин — ✅ з нагоди святкування / у роковини
- ❌ З цього приводу — ✅ щодо цього
- ❌ З точки зору — ✅ з погляду
- ❌ За браком часу — ✅ через брак часу
- ❌ За виключенням, без виключення — ✅ за винятком, без винятку
- ❌ За великим рахунком — ✅ узагалі ж
- ❌ За власний рахунок ✅ власним коштом
- ❌ Завірити документ — ✅ засвідчити документ
- ❌ Задати питання — ✅ поставити запитання
- ❌ За необхідності — ✅ за потреби
- ❌ Звичайно (вставне) — ✅ звісно, аякже, авжеж
- ❌ Згідно договору — ✅ згідно з договором, відповідно до договору
- ❌ Інша справа — ✅ інша річ
- ❌ Іншими словами — ✅ інакше кажучи
- ❌ Копія вірна — ✅ згідно з оригіналом
- ❌ Максимум, мінімум — ✅ щонайбільше, щонайменше
- ❌ Мати місце — ✅ бути, траплятися, відбуватися
- ❌ Мати / давати / отримати можливість — ✅ мати / давати / отримати змогу
- ❌ Мається на увазі — ✅ мають на увазі, мають на думці - ❌ Між тим — ✅ тим часом
- ❌ Мова йде про — ✅ йдеться про
- ❌ На даний момент — ✅ на цю мить
- ❌ На днях, у ці дні — ✅ днями, цими днями
- ❌ На рахунок / на цей рахунок — ✅ щодо / щодо цього
- ❌ На теперішній час / по теперішній час — ✅ натепер / дотепер
- ❌ Накладений платіж — ✅ післяплата
- ❌ Нанести збитки — ✅ завдати збитків
- ❌ Нанести шкоду — ✅ заподіяти / вчинити шкоду
- ❌ Не дивлячись на — ✅ попри, дарма що
- ❌ Не стільки... скільки — ✅ не так... як
- ❌ Ні в якому разі — ✅ у жодному разі
- ❌ Область знань, область тіла — ✅ галузь знань, ділянка тіла
- ❌ Отримати / одержати освіту, звання — ✅ здобути освіту, звання
- ❌ Отримати відмову, відсіч, поразку, догану, кулю — ✅ дістати відмову, відсіч, поразку, догану, кулю
- ❌ Отримати розголос — ✅ набути розголосу
- ❌ Перш за все / в першу чергу — ✅ передусім, насамперед
- ❌ Під цим розуміється — ✅ це витлумачують як
- ❌ Підняти питання / проблему — ✅ порушити питання / проблему
- ❌ По мірі можливостей — ✅ по змозі, у міру сил
- ❌ По нинішніх мірках — ✅ як на нинішні мірки
- ❌ Позбавитися від — ✅ позбутися когось, чогось
- ❌ Понад те — ✅ крім того, до того ж
- ❌ Порівняно з / у порівнянні з — ✅ як порівняти з, проти чогось / когось
- ❌ Приміром — ✅ наприклад
- ❌ Разом з тим — ✅ водночас
- ❌ Скоріше, краще (з більшою радістю) — ✅ радше
- ❌ Скоріше всього, скоріше за все, швидше за все — ✅ найпевніше
- ❌ Справа в тому — ✅ річ у тім
- ❌ Станом на зараз — ✅ нині
- ❌ Стільки ж — ✅ стільки само
- ❌ Сума складає — ✅ сума становить - ❌ Так, (відокремлене комою) — ✅ зокрема, наприклад
- ❌ Так як — ✅ оскільки, бо, через те що, тому що
- ❌ Такий як — ✅ як-от
- ❌ Таким чином / значить — ✅ отже
- ❌ Там же — ✅ там само
- ❌ Тим більше — ✅ тим паче, і того більше, і поготів
- ❌ Тим не менш — ✅ а втім, проте, однак
- ❌ Тим самим — ✅ у такий спосіб, таким способом, таким робом
- ❌ Той чи інший — ✅ той чи той
- ❌ Точка зору — ✅ думка
- ❌ У випадку — ✅ у разі
- ❌ У відповідності до — ✅ відповідно до
- ❌ У два етапи — ✅ двома етапами
- ❌ У подальшому — ✅ надалі
- ❌ У свою чергу / своєю чергою — ✅ так само, і собі
- ❌ У цьому відношенні — ✅ з цього погляду
- ❌ У якості — ✅ як
- ❌ Шляхом — ✅ у такий спосіб, через
- ❌ Як правило — ✅ зазвичай
- ❌ Як тільки — ✅ тільки-но, щойно

Текст з помилками Виправлений текст

На даний момент ми розглядаємо кілька варіантів, що можуть відбитися на якості проекту. Все рівно, основне наше завдання — забезпечити високий рівень задоволеності клієнта.

На цю мить ми розглядаємо кілька варіантів, що можуть позначитися на якості проекту. Все одно, основне наше завдання — забезпечити високий рівень задоволеності клієнта.


Для використання спеціалізовано чат-боту потрібно мати доступ до ChatGPT4.

пʼятниця, 20 січня 2023 р.

Збереження малюнку

Mathedemo
Малюнок можна зберегти у файлі
x = np.linspace(-1.4, 1.4, 30)
plt.plot(x, x**2)
plt.savefig("my_square_function.png", transparent=True) 

вівторок, 17 січня 2023 р.

Стиль ліній та колір

Mathedemo
За замовчуванням matplotlib малює лінію між послідовними точками.
plt.plot([0, 100, 100, 0, 0, 100, 50, 0, 100],
         [0, 0, 100, 100, 0, 100, 130, 100, 0])
plt.axis([-10, 110, -10, 140])
plt.show()  
Щоб змінити стиль і колір лінії потрібно перелати третій аргумент. Наприклад, «g--» означає «зелена пунктирна лінія».
plt.plot([0, 100, 100, 0, 0, 100, 50, 0, 100],
         [0, 0, 100, 100, 0, 100, 130, 100, 0],
         "g--")
plt.axis([-10, 110, -10, 140])
plt.show() 
Можна побудувати кілька ліній на одному графіку вказавши стиль кожної лінії так
plt.plot([0, 100, 100, 0, 0], [0, 0, 100, 100, 0], "r-",
         [0, 100, 50, 0, 100], [0, 100, 130, 100, 0], "g--")
plt.axis([-10, 110, -10, 140])
plt.show()  
або так
plt.plot([0, 100, 100, 0, 0], [0, 0, 100, 100, 0], "r-")
plt.plot([0, 100, 50, 0, 100], [0, 100, 130, 100, 0], "g--")
plt.axis([-10, 110, -10, 140])
plt.show() 
Можна малювати прості точки замість ліній. Приклад із зеленими рисками, червоною пунктирною лінією та синіми трикутниками.
x = np.linspace(-1.4, 1.4, 30)
plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')
plt.show() 
Функція plot повертає список об’єктів Line2D (по одному для кожної лінії). Для цих ліній можна встановити додаткові властивості, наприклад ширину лінії, стиль тире або рівень альфа. Перегляньте повний список властивостей у документації.
x = np.linspace(-1.4, 1.4, 30)
line1, line2, line3 = plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')
line1.set_linewidth(3.0)
line1.set_dash_capstyle("round")
line3.set_alpha(0.2)
plt.show() 
Стиль та колір ліній можна вказувати явно можна використати аргумент ключового слова linestyle або, коротше, ls:
x = np.linspace(-1.4, 1.4, 30)
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, linestyle = 'dotted')
plt.show() 
Основні стилі

понеділок, 16 січня 2023 р.

Перший графік

Mathedemo
Найпростіший графік

import matplotlib.pyplot as plt
plt.plot([1, 2, 4, 9, 5, 3])
plt.show()
  
Просто передаємо функції `plot` список з даними, а потім викликаємо функцію show! Якщо функції plot надано один масив даних, вона використовуватиме його як координати на вертикальній осі, а індекс кожної точки даних у масиві використовуватиме як горизонтальну координату. Також можете надати два масиви: один для горизонтальної осі x, а другий для вертикальної осі y:

plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])
plt.show()
  
Осі автоматично підлаштовуються під діапазон даних, але діапазон осей можна встановити вручну у форматі [xmin, xmax, ymin, ymax].
plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])
plt.axis([-4, 6, 0, 7])
plt.show()  
Щоб побудуємо графік явно заданої математичної функції $y=x^2$, створимо масив $x$ із 500 числами з плаваючою точкою в діапазоні від -2 до 2, а потім створюємо другий масив із квадратів елеементів масиву $x$
import numpy as np
x = np.linspace(-2, 2, 500)
y = x**2
plt.plot(x, y)
plt.show() 
Додамо назву, мітки осей і намалюємо сітку.

plt.plot(x, y)
plt.title("Графік функції")
plt.xlabel("x")
plt.ylabel("$y = x^2$")
plt.grid(True)
plt.show() 

неділя, 18 грудня 2022 р.

Спіральний датасет

Mathedemo

import numpy as np
from numpy import pi
import matplotlib.pyplot as plt

N = 400
theta = np.sqrt(np.random.rand(N))*2*pi # np.linspace(0,2*pi,100)

r_a = 2*theta + pi
data_a = np.array([np.cos(theta)*r_a, np.sin(theta)*r_a]).T
x_a = data_a + np.random.randn(N,2)

r_b = -2*theta - pi
data_b = np.array([np.cos(theta)*r_b, np.sin(theta)*r_b]).T
x_b = data_b + np.random.randn(N,2)

res_a = np.append(x_a, np.zeros((N,1)), axis=1)
res_b = np.append(x_b, np.ones((N,1)), axis=1)

res = np.append(res_a, res_b, axis=0)
np.random.shuffle(res)

np.savetxt("result.csv", res, delimiter=",", header="x,y,label", comments="", fmt='%.5f')

plt.scatter(x_a[:,0],x_a[:,1])
plt.scatter(x_b[:,0],x_b[:,1])
plt.show() 
  
Взято тут

пʼятниця, 11 лютого 2022 р.

Що таке машинне навчання

Машинне навчання це частина Штучного інтелекту, яка розробляє і досліджує алгоритми, які здатні навчатися на данних, зокрема на великій кількості відомих розв'язків задач. В процесі навчання вони отримують досвід і їхня ефективність збільшується.

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

Предметом машинного навчання є виділення контекстуально потрібних ознак об'єктів та побудова на їх основі моделей, придатних для вирішення правильно поставлених завдань. На відміну від класичних алгоритмів, алгоритми машинного навчання не передбачають дослідження природи предметної області та її формалізації.