1

Тема: Аналіз українських текстів

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

2

Re: Аналіз українських текстів

GROUND07 написав:

максимально можливу статистику

Га?

3

Re: Аналіз українських текстів

koala написав:
GROUND07 написав:

максимально можливу статистику

Га?

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

4

Re: Аналіз українських текстів

У чому полягає специфіка статистики для українського тексту порівняно, наприклад, з англійським? «Кількість слів» — мається на увазі кількість нероздільних груп літер (речення  «Кіт котові — кіт» має 3 слова), кількість унікальних словоформ (у тому ж прикладі — 2 слова), кількість унікальних слів (у тому ж прикладі — 1 слово; утім, в ряді випадків складно або й неможливо визначити, якому слову належить словоформа (напр., «коти» — це або множина від «кіт», або наказова форма від «котити»), тому задача нетривіальна)?

5

Re: Аналіз українських текстів

я б регулярками робив, бо то весело
https://regex101.com/r/4z2K28/1/

6

Re: Аналіз українських текстів

FakiNyan написав:

я б регулярками робив, бо то весело
https://regex101.com/r/4z2K28/1/

  А як це використати у С?

7

Re: Аналіз українських текстів

P.Y. написав:

У чому полягає специфіка статистики для українського тексту порівняно, наприклад, з англійським?

В тому, що користувач вводить український текст в консоль, а вже з неї те все зчитується в програму. Але ж українських літер немає в ASCII таблиці, що тоді робити? Як мати змогу оперувати з тими даними?

8

Re: Аналіз українських текстів

осьо тут перша відповідь про regex в C
https://stackoverflow.com/questions/108 … c-examples

9

Re: Аналіз українських текстів

GROUND07 написав:
P.Y. написав:

У чому полягає специфіка статистики для українського тексту порівняно, наприклад, з англійським?

В тому, що користувач вводить український текст в консоль, а вже з неї те все зчитується в програму. Але ж українських літер немає в ASCII таблиці, що тоді робити? Як мати змогу оперувати з тими даними?

В базовому ASCII немає, але в кириличних кодуваннях є. Якщо це вінда, то в консолі за замовчуванням використовується CP866 (включає всі українські літери, крім І(можна замінити латинською) та крім Ґ), або ж його можна перемкнути на CP1251 (містить усі українські літери). Також є можливість отримувати ввід у вигляді безпосередньо юнікодівських символів (що технічно дещо складніше, ніж у випадку 8-бітних кодувань, описаних вище).

Подякували: leofun011

10

Re: Аналіз українських текстів

Гаразд, але як найоптимальніше записувати той текст? В динамічну пам'ять, а вже звідти по реченню витягувати в окремі масиви?

11

Re: Аналіз українських текстів

Якщо треба порахувати кількість символів та слів без пошуку однакових слів, то можна взагалі не заморочуватися зі зберіганням тексту в пам'яті, а просто читати вхідний потік посимвольно й збільшувати лічильники в залежності від категорії поточного та попереднього символа.

Подякували: leofun01, GROUND07, koala3

12

Re: Аналіз українських текстів

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

Подякували: leofun01, GROUND07, P.Y.3