Визуализация информации в текстовых документах план-конспект урока по информатике и икт (7 класс) на тему. Конспект урока по информатике " визуализация информации в текстовых документах" Визуализация информации в текстовых документах сообщение

17.11.2023 Программы

В русскоязычном секторе интернета очень мало учебных практических примеров (а с примером кода ещё меньше) анализа текстовых сообщений на русском языке. Поэтому я решил собрать данные воедино и рассмотреть пример кластеризации, так как не требуется подготовка данных для обучения.

Большинство используемых библиотек уже есть в дистрибутиве Anaconda 3 , поэтому советую использовать его. Недостающие модули/библиотеки можно установить стандартно через pip install «название пакета».
Подключаем следующие библиотеки:

Import numpy as np import pandas as pd import nltk import re import os import codecs from sklearn import feature_extraction import mpld3 import matplotlib.pyplot as plt import matplotlib as mpl
Для анализа можно взять любые данные. Мне на глаза тогда попала данная задача: Статистика поисковых запросов проекта Госзатраты . Им нужно было разбить данные на три группы: частные, государственные и коммерческие организации. Придумывать экстраординарное ничего не хотелось, поэтому решил проверить, как поведет кластеризация в данном случае (забегая наперед - не очень). Но можно выкачать данные из VK какого-нибудь паблика:

Import vk #передаешь id сессии session = vk.Session(access_token="") # URL для получения access_token, вместо tvoi_id вставляете id созданного приложения Вк: # https://oauth.vk.com/authorize?client_id=tvoi_id&scope=friends,pages,groups,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.21&response_type=token api = vk.API(session) poss= id_pab=-59229916 #id пабликов начинаются с минуса, id стены пользователя без минуса info=api.wall.get(owner_id=id_pab, offset=0, count=1) kolvo = (info//100)+1 shag=100 sdvig=0 h=0 import time while h70): print(h) #не обязательное условие, просто для контроля примерного окончания процесса pubpost=api.wall.get(owner_id=id_pab, offset=sdvig, count=100) i=1 while i < len(pubpost): b=pubpost[i]["text"] poss.append(b) i=i+1 h=h+1 sdvig=sdvig+shag time.sleep(1) len(poss) import io with io.open("public.txt", "w", encoding="utf-8", errors="ignore") as file: for line in poss: file.write("%s\n" % line) file.close() titles = open("public.txt", encoding="utf-8", errors="ignore").read().split("\n") print(str(len(titles)) + " постов считано") import re posti= #удалим все знаки препинания и цифры for line in titles: chis = re.sub(r"(\<(/?[^>]+)>)", " ", line) #chis = re.sub() chis = re.sub("[^а-яА-Я ]", "", chis) posti.append(chis)
Я буду использовать данные поисковых запросов чтобы показать, как плохо кластеризуются короткие текстовые данные. Я заранее очистил от спецсимволов и знаков препинания текст плюс провел замену сокращений (например, ИП – индивидуальный предприниматель). Получился текст, где в каждой строке находился один поисковый запрос.

Считываем данные в массив и приступаем к нормализации – приведению слова к начальной форме. Это можно сделать несколькими способами, используя стеммер Портера, стеммер MyStem и PyMorphy2. Хочу предупредить – MyStem работает через wrapper, поэтому скорость выполнения операций очень медленная. Остановимся на стеммере Портера, хотя никто не мешает использовать другие и комбинировать их с друг другом (например, пройтись PyMorphy2, а после стеммером Портера).

Titles = open("material4.csv", "r", encoding="utf-8", errors="ignore").read().split("\n") print(str(len(titles)) + " запросов считано") from nltk.stem.snowball import SnowballStemmer stemmer = SnowballStemmer("russian") def token_and_stem(text): tokens = filtered_tokens = for token in tokens: if re.search("[а-яА-Я]", token): filtered_tokens.append(token) stems = return stems def token_only(text): tokens = filtered_tokens = for token in tokens: if re.search("[а-яА-Я]", token): filtered_tokens.append(token) return filtered_tokens #Создаем словари (массивы) из полученных основ totalvocab_stem = totalvocab_token = for i in titles: allwords_stemmed = token_and_stem(i) #print(allwords_stemmed) totalvocab_stem.extend(allwords_stemmed) allwords_tokenized = token_only(i) totalvocab_token.extend(allwords_tokenized)

Pymorphy2

import pymorphy2 morph = pymorphy2.MorphAnalyzer() G= for i in titles: h=i.split(" ") #print(h) s="" for k in h: #print(k) p = morph.parse(k).normal_form #print(p) s+=" " s += p #print(s) #G.append(p) #print(s) G.append(s) pymof = open("pymof_pod.txt", "w", encoding="utf-8", errors="ignore") pymofcsv = open("pymofcsv_pod.csv", "w", encoding="utf-8", errors="ignore") for item in G: pymof.write("%s\n" % item) pymofcsv.write("%s\n" % item) pymof.close() pymofcsv.close()


pymystem3

Исполняемые файлы анализатора для текущей операционной системы будут автоматически загружены и установлены при первом использовании библиотеки.

From pymystem3 import Mystem m = Mystem() A = for i in titles: #print(i) lemmas = m.lemmatize(i) A.append(lemmas) #Этот массив можно сохранить в файл либо "забэкапить" import pickle with open("mystem.pkl", "wb") as handle: pickle.dump(A, handle)


Создадим матрицу весов TF-IDF. Будем считать каждый поисковой запрос за документ (так делают при анализе постов в Twitter, где каждый твит – это документ). tfidf_vectorizer мы возьмем из пакета sklearn, а стоп-слова мы возьмем из корпуса ntlk (изначально придется скачать через nltk.download()). Параметры можно подстроить как вы считаете нужным – от верхней и нижней границы до количества n-gram (в данном случае возьмем 3).

Stopwords = nltk.corpus.stopwords.words("russian") #можно расширить список стоп-слов stopwords.extend(["что", "это", "так", "вот", "быть", "как", "в", "к", "на"]) from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer n_featur=200000 tfidf_vectorizer = TfidfVectorizer(max_df=0.8, max_features=10000, min_df=0.01, stop_words=stopwords, use_idf=True, tokenizer=token_and_stem, ngram_range=(1,3)) get_ipython().magic("time tfidf_matrix = tfidf_vectorizer.fit_transform(titles)") print(tfidf_matrix.shape)
Над полученной матрицей начинаем применять различные методы кластеризации:

Num_clusters = 5 # Метод к-средних - KMeans from sklearn.cluster import KMeans km = KMeans(n_clusters=num_clusters) get_ipython().magic("time km.fit(tfidf_matrix)") idx = km.fit(tfidf_matrix) clusters = km.labels_.tolist() print(clusters) print (km.labels_) # MiniBatchKMeans from sklearn.cluster import MiniBatchKMeans mbk = MiniBatchKMeans(init="random", n_clusters=num_clusters) #(init="k-means++", ‘random’ or an ndarray) mbk.fit_transform(tfidf_matrix) %time mbk.fit(tfidf_matrix) miniclusters = mbk.labels_.tolist() print (mbk.labels_) # DBSCAN from sklearn.cluster import DBSCAN get_ipython().magic("time db = DBSCAN(eps=0.3, min_samples=10).fit(tfidf_matrix)") labels = db.labels_ labels.shape print(labels) # Аггломеративная класстеризация from sklearn.cluster import AgglomerativeClustering agglo1 = AgglomerativeClustering(n_clusters=num_clusters, affinity="euclidean") #affinity можно выбрать любое или попробовать все по очереди: cosine, l1, l2, manhattan get_ipython().magic("time answer = agglo1.fit_predict(tfidf_matrix.toarray())") answer.shape
Полученные данные можно сгруппировать в dataframe и посчитать количество запросов, попавших в каждый кластер.

#k-means clusterkm = km.labels_.tolist() #minikmeans clustermbk = mbk.labels_.tolist() #dbscan clusters3 = labels #agglo #clusters4 = answer.tolist() frame = pd.DataFrame(titles, index = ) #k-means out = { "title": titles, "cluster": clusterkm } frame1 = pd.DataFrame(out, index = , columns = ["title", "cluster"]) #mini out = { "title": titles, "cluster": clustermbk } frame_minik = pd.DataFrame(out, index = , columns = ["title", "cluster"]) frame1["cluster"].value_counts() frame_minik["cluster"].value_counts()
Из-за большого количества запросов не совсем удобно смотреть таблицы и хотелось бы больше интерактивности для понимания. Поэтому сделаем графики взаимного расположения запросов относительного друг друга.

Сначала необходимо вычислить расстояние между векторами. Для этого будет применяться косинусовое расстояние. В статьях предлагают использовать вычитание из единицы, чтобы не было отрицательных значений и находилось в пределах от 0 до 1, поэтому сделаем так же:

From sklearn.metrics.pairwise import cosine_similarity dist = 1 - cosine_similarity(tfidf_matrix) dist.shape
Так как графики будут двух-, трехмерные, а исходная матрица расстояний n-мерная, то придется применять алгоритмы снижения размерности. На выбор есть много алгоритмов (MDS, PCA, t-SNE), но остановим выбор на Incremental PCA. Этот выбор сделан в следствии практического применения – я пробовал MDS и PCA, но оперативной памяти мне не хватало (8 гигабайт) и когда начинал использоваться файл подкачки, то можно было сразу уводить компьютер на перезагрузку.

Алгоритм Incremental PCA используется в качестве замены метода главных компонентов (PCA), когда набор данных, подлежащий разложению, слишком велик, чтобы разместиться в оперативной памяти. IPCA создает низкоуровневое приближение для входных данных, используя объем памяти, который не зависит от количества входных выборок данных.

# Метод главных компонент - PCA from sklearn.decomposition import IncrementalPCA icpa = IncrementalPCA(n_components=2, batch_size=16) get_ipython().magic("time icpa.fit(dist) #demo =") get_ipython().magic("time demo2 = icpa.transform(dist)") xs, ys = demo2[:, 0], demo2[:, 1] # PCA 3D from sklearn.decomposition import IncrementalPCA icpa = IncrementalPCA(n_components=3, batch_size=16) get_ipython().magic("time icpa.fit(dist) #demo =") get_ipython().magic("time ddd = icpa.transform(dist)") xs, ys, zs = ddd[:, 0], ddd[:, 1], ddd[:, 2] #Можно сразу примерно посмотреть, что получится в итоге #from mpl_toolkits.mplot3d import Axes3D #fig = plt.figure() #ax = fig.add_subplot(111, projection="3d") #ax.scatter(xs, ys, zs) #ax.set_xlabel("X") #ax.set_ylabel("Y") #ax.set_zlabel("Z") #plt.show()
Перейдем непосредственно к самой визуализации:

From matplotlib import rc #включаем русские символы на графике font = {"family" : "Verdana"}#, "weigth": "normal"} rc("font", **font) #можно сгенерировать цвета для кластеров import random def generate_colors(n): color_list = for c in range(0,n): r = lambda: random.randint(0,255) color_list.append("#%02X%02X%02X" % (r(),r(),r())) return color_list #устанавливаем цвета cluster_colors = {0: "#ff0000", 1: "#ff0066", 2: "#ff0099", 3: "#ff00cc", 4: "#ff00ff",} #даем имена кластерам, но из-за рандома пусть будут просто 01234 cluster_names = {0: "0", 1: "1", 2: "2", 3: "3", 4: "4",} #matplotlib inline #создаем data frame, который содержит координаты (из PCA) + номера кластеров и сами запросы df = pd.DataFrame(dict(x=xs, y=ys, label=clusterkm, title=titles)) #группируем по кластерам groups = df.groupby("label") fig, ax = plt.subplots(figsize=(72, 36)) #figsize подбирается под ваш вкус for name, group in groups: ax.plot(group.x, group.y, marker="o", linestyle="", ms=12, label=cluster_names, color=cluster_colors, mec="none") ax.set_aspect("auto") ax.tick_params(axis= "x", which="both", bottom="off", top="off", labelbottom="off") ax.tick_params(axis= "y", which="both", left="off", top="off", labelleft="off") ax.legend(numpoints=1) #показать легенду только 1 точки #добавляем метки/названия в х,у позиции с поисковым запросом #for i in range(len(df)): # ax.text(df.ix[i]["x"], df.ix[i]["y"], df.ix[i]["title"], size=6) #показать график plt.show() plt.close()
Если раскомментировать строку с добавлением названий, то выглядеть это будет примерно так:

Пример с 10 кластерами


Не совсем то, что хотелось бы ожидать. Воспользуемся mpld3 для перевода рисунка в интерактивный график.

# Plot fig, ax = plt.subplots(figsize=(25,27)) ax.margins(0.03) for name, group in groups_mbk: points = ax.plot(group.x, group.y, marker="o", linestyle="", ms=12, #ms=18 label=cluster_names, mec="none", color=cluster_colors) ax.set_aspect("auto") labels = tooltip = mpld3.plugins.PointHTMLTooltip(points, labels, voffset=10, hoffset=10, #css=css) mpld3.plugins.connect(fig, tooltip) # , TopToolbar() ax.axes.get_xaxis().set_ticks() ax.axes.get_yaxis().set_ticks() #ax.axes.get_xaxis().set_visible(False) #ax.axes.get_yaxis().set_visible(False) ax.set_title("Mini K-Means", size=20) #groups_mbk ax.legend(numpoints=1) mpld3.disable_notebook() #mpld3.display() mpld3.save_html(fig, "mbk.html") mpld3.show() #mpld3.save_json(fig, "vivod.json") #mpld3.fig_to_html(fig) fig, ax = plt.subplots(figsize=(51,25)) scatter = ax.scatter(np.random.normal(size=N), np.random.normal(size=N), c=np.random.random(size=N), s=1000 * np.random.random(size=N), alpha=0.3, cmap=plt.cm.jet) ax.grid(color="white", linestyle="solid") ax.set_title("Кластеры", size=20) fig, ax = plt.subplots(figsize=(51,25)) labels = ["point {0}".format(i + 1) for i in range(N)] tooltip = mpld3.plugins.PointLabelTooltip(scatter, labels=labels) mpld3.plugins.connect(fig, tooltip) mpld3.show()fig, ax = plt.subplots(figsize=(72,36)) for name, group in groups: points = ax.plot(group.x, group.y, marker="o", linestyle="", ms=18, label=cluster_names, mec="none", color=cluster_colors) ax.set_aspect("auto") labels = tooltip = mpld3.plugins.PointLabelTooltip(points, labels=labels) mpld3.plugins.connect(fig, tooltip) ax.set_title("K-means", size=20) mpld3.display()
Теперь при наведении на любую точку графика всплывает текст с соотвествующим поисковым запросом. Пример готового html файла можно посмотреть здесь: Mini K-Means

Если хочется в 3D и с изменяемым масштабом, то существует сервис Plotly , который имеет плагин для Python.

Plotly 3D

#для примера просто 3D график из полученных значений import plotly plotly.__version__ import plotly.plotly as py import plotly.graph_objs as go trace1 = go.Scatter3d(x=xs, y=ys, z=zs, mode="markers", marker=dict(size=12, line=dict(color="rgba(217, 217, 217, 0.14)", width=0.5), opacity=0.8)) data = layout = go.Layout(margin=dict(l=0, r=0, b=0, t=0)) fig = go.Figure(data=data, layout=layout) py.iplot(fig, filename="cluster-3d-plot")


Результаты можно увидеть здесь: Пример

И заключительным пунктом выполним иерархическую (аггломеративную) кластеризацию по методу Уорда для создания дендограммы.

In : from scipy.cluster.hierarchy import ward, dendrogram linkage_matrix = ward(dist) fig, ax = plt.subplots(figsize=(15, 20)) ax = dendrogram(linkage_matrix, orientation="right", labels=titles); plt.tick_params(\ axis= "x", which="both", bottom="off", top="off", labelbottom="off") plt.tight_layout() #сохраним рисунок plt.savefig("ward_clusters2.png", dpi=200)
Выводы

К сожалению, в области исследования естественного языка очень много нерешённых вопросов и не все данные легко и просто сгруппировать в конкретные группы. Но надеюсь, что данное руководство усилит интерес к данной теме и даст базис для дальнейших экспериментов.

6-8 классы.

Ключевые понятия:

  • визуализация информации в текстовых документах;
  • форматирование символов, абзацев, страниц;
  • колонтитулы;
  • нумерованные списки, маркированные списки, многоуровневые списки;
  • таблица;
  • графические изображения в тексте;
  • формат файла текстового документа.

Для проведения урока необходимы:

ноутбук (2–3 шт. на группу из 5–7 учащихся), фотоаппарат (1–2 шт. на группу из 5–7 учащихся), USB-шнур для копирования фотографий на компьютер, можно использовать мобильные телефоны или планшеты учащихся с функцией фотографирования, возможно использование Bluetooth.

Место проведения урока:

двор школы или ближайшего жилого дома (желательно с детской площадкой, зелёными насаждениями и иными объектами, которые могут стать предметами для описания).

Памятные даты:

День города – ежегодный общегородской праздник. Отмечается в Москве в первую субботу сентября . В этот день по всему городу проходят народные гуляния и концерты. Традиционные места основных торжеств: Тверская улица, Красная площадь, Васильевский спуск, Поклонная гора и Воробьёвы горы. Завершает День города праздничный салют.

Форма проведения урока:

практическая работа на местности. Данный урок можно провести в урочное время в рамках расписания, так как он не требует затрат времени на дорогу.

Дополнительно: при проведении данного урока обучающихся следует познакомить с геоинформационным порталом «Наш город» http://gorod.mos.ru/ .

Галерея изображений:

Свободное описание урока:

  • Урок является заключительным уроком при изучении темы «Обработка текстовой информации».
  • Учащиеся разрабатывают буклет (листовку) на две страницы о школе и его пришкольной территории или о близлежащем жилом доме и его дворе.
  • Это практическая работа, выполняемая на местности. Для выполнения данной работы учащиеся делятся на две группы, каждая из которых выполняет свою часть работы.
  • Описываемая территория должна содержать достаточное количество объектов, которые можно было бы разделить на 2 разные категории (по количеству групп). Например, описание школы (дома) и инфраструктуры – одна категория, которую описывает одна группа. Вторая категория объектов – объекты, имеющиеся на школьном дворе (во дворе дома): детские и спортивные площадки, малые архитектурные формы и т.д., которую описывает вторая группа.
  • Буклет (листовка) должна включать структурные элементы текстового редактора (процессора), которые были изучены на уроках.
  • Состав структурных элементов определяется учителем исходя из пройденного материала. Их список выдаётся учащимся как обязательные элемент практической работы.

Технологическая карта урока

класс: 7 «А»

УМК: Информатика: учебник для 7 класса /Л.Л. Босова, А.Ю. Босова. – 5-е изд. - М. : БИНОМ. Лаборатория знаний, 2016. - 224 с. : ил.

Тема: Визуализация информации в текстовых документах.

Цель урока: Формирование представлений о разнообразии и целесообразности визуализации информации в текстовых процессорах.

Задачи урока:

1. Предметные

Познакомить обучающихся со средствами структурирования и визуализации текстовой информации;

Сформировать представление о способах создания списков и возможностях их использования в текстовых документах;

Сформировать представление о способах создания таблиц и возможностях их использования в текстовых документах;

Научить составлять разноуровневые нумерованные и маркированные списки.

Сформировать потребность в знаниях по предмету;

Научить выбирать средства информационных и коммуникационных технологий для создания текстовых документов;

Сформировать навыки рационального использования имеющихся инструментов.

3. Личностные

Сформировать у учащихся готовность и способность к самообразованию на основе мотивации к обучению и познанию;

Сформировать потребность в самовыражении и самореализации;

Привить навык самоконтроля и самооценки.

1. Организационный момент (инициация )

Приветствует учащихся, проверяет готовность к учебному занятию, организует внимание детей.

Приветствуют учителя, проверяют наличие учебного материала на столах, организует свое рабочее место.

Коммуникативные: планирование учебного сотрудничества со сверстниками

Личностные : психологическая готовность учащихся к уроку, самоопределение

2. Проверка домашнего задания

Проверка домашней работы (в парах, взаимопроверка)

Проверяют домашнюю работу (в парах, выборочно)

Познавательные: структурирование знаний, рефлексия способов и условий действий, контроль и оценка процесса и результатов деятельности

Личностные : умение работать в парах

3. Актуализация знаний и формулирование темы и целей урока

На прошлом уроке Вы познакомились с новым понятием "форматирование" текста. Что это?

Что можно изменять в процессе форматирования символов?

Абзацев?

Какие параметры страницы можно задать для рабочего листа текстового редактора?

Чтобы узнать тему нашего урока, давайте посмотрим на слайды 1 (на слайде текст с перечислением устройства компьютера через запятую и оформленный в списке; на слай де

список микрорайонов города Ставрополя, диаграмма, фрагмент классного журнала с отметками).

Какую информацию нам легче воспринимать?

К какому виду информации по способу восприятия можно отнести списки, диаграммы, таблицы?

Попробуйте сформулировать тему нашего урока.

Отвечают на вопросы:

Оформление текста

Шрифт, размер шрифта, начертание, цвет;

Выравнивание, отступ первой строки, междустрочный интервал, отступы слева и справа, интервалы перед и после;

Поля, ориентация, размер бумаги.

Список, диаграмма, таблица;

зрительная (визуальная).

Формулируют тему урока "Визуализация информации в текстовых документах".

Познавательные: структурирование знаний, рефлексия способов и условий действий, контроль и оценка процесса и результатов деятельности Регулятивные: развитие умения формулировать тему и цель урока в соответствии с задачами и нормами русского языка

Коммуникативные: Ориентация на партнера по общению, умение слушать собеседника, умение аргументировать свое мнение, убеждать и уступать

Личностные: развитие логического мышления, знание основных моральных норм

4. Усвоение новых знаний

Известно, что текстовая информация воспринимается человеком лучше, если она визуализирована - организована в виде списков, диаграмм, таблиц, сопровождается графическими изображениями (рисунки, фото). По способу оформления различают нумерованные и маркированные списки (на слайде 2 пример).

По структуре: одноуровневые и многоуровневые .

Для описания ряда объектов, обладающих одинаковыми наборами свойств, наиболее часто

используются таблицы , состоящие из строк и столбцов (на слайде 3 структура таблицы).

В таблицах могут размещены тексты, числа, изображения (на слайде 4 пример таблицы содержащий и тексты, и числа, и изображения). Рисунки можно создавать самостоятельно в графических редакторах, можно использовать уже созданные или найденные в сети Интернет. Во многих текстовых процессорах можно создавать изображения из автофигур (на слайде 5 пример графических примитивов в Word).

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

Познавательные: развитие познавательной активности

Регулятивные: планирование своей деятельности для решения поставленной задачи, контроль полученного результата, коррекция полученного результата

Личностные: развитие памяти, внимания, зрительной и слуховой памяти, возможность самостоятельно осуществлять деятельность обучения

Коммуникативные: развитие диалогической речи

5. Первичное закрепление материала

А для закрепления знаний по данной теме, я предлагаю Вам выполнить тест по вариантам. (Приложение 1)

Выполняют тест (по вариантам) и сдают учителю на проверку.

Познавательные: выбор наиболее эффективных способов выполнения задания

Личностные: формирования умения достигать цели и оценивать результаты своего труда

Коммуникативные: умение работать в группах, развитие диалогической речи

6. Компьютерный практикум

Для закрепления полученных знаний предлагаю выполнить практическую работу на компьютере (Приложение 2)

Выполняют практическую работу на компьютере.

Личностные: формирования умения достигать цели и оценивать результаты своего труда; формирование и развитие

аналитического мышления

7. Итоги урока, рефлексия

Оценка практической работы учащихся (отметки выставляются в журнал).

Рефлексия:

Подведите итог своей работы.

Дайте эмоциональную оценку своей работе, выбрав соответствующий рисунок (на карточках) и изобразите его на полях своей рабочей тетради напротив темы урока.

Представляют педагогу выполненные практические работы.

Проводят психоэмоциональную оценку своей работе, рисуют пиктограммы, соответствующие эмоциям в рабочей тетради напротив темы урока.

Познавательные: построение речевого высказывания в устной форме, контроль и оценка процесса и результатов деятельности

Регулятивные: контроль и оценка своей деятельности в рамках урока

Коммуникативные : умение слушать и вступать в диалог, формулирование и аргументация своего мнения

Личностные: рефлексия способов и условий действия, контроль и оценка процесса и результатов деятельности

Приложение 1

1 вариант

1. Нумерованный список следует использовать при:



3) описании объектов в комнате
4) перечислении оборудования в классе

2. Свойства данных в ячейках определяются:

1) свойствами границ
2) размером кегля
3) размерами ячейки
4) типом числовых данных в ячейках

3. Готовые графические изображения можно редактировать с помощью текстовых процессоров:

1) изменяя яркость
2) создавая новые слои
3) изменяя цвета растровых изображений
4) создавая анимацию

4. Для распознавания текста с печатного носителя и ввода его в память компьютера для редактирования целесообразно использовать:

1) видеокамеру
2) клавиатуру
3) сканер
4) микрофон

5.

Автоматическое устройство перекодировало сообщение на русском языке из 8-битного кода в 4-битный код. При этом объем перекодированного сообщения уменьшился на 128 байтов. Длина исходного сообщения в символах равна _____ символов.

6. Выполните вычисления и впишите числовое значение.

Информационный объем слова из 24 символов в кодировке Unicode равен _____ байт.

2 вариант

1. Маркированный список следует использовать при:

1) составлении алгоритма действий
2) перечислении видов цветов на клумбе
3) описании последовательности действий работы с прибором
4) описании любой последовательности

2. Внешний вид таблицы определяет(ют):

3. Средствами текстового процессора в готовом изображении нельзя:

1) изменять яркость
2) изменять размер изображения
3) изменять контрастность
4) вводить новые слои

4. Для автоматического перевода текстовых документов применяют:

1) сканер
2) текстовый процессор
3) сканер
4) программы-переводчики

5. Выполните вычисления и впишите числовое значение.

Автоматическое устройство перекодировало сообщение на русском языке из 16-битного кода в 8-битный код. При этом объем перекодированного сообщения уменьшился на 128 байтов. Длина исходного сообщения в символах равна _____ символов.

6. Выполните вычисления и впишите числовое значение.

Информационный объем слова из 16 символов в кодировке Unicode равен _____ байт.

Приложение 2

Визуализация информации: работа с таблицей

Задание 1: создайте таблицу

Расписание уроков:

Ход работы:

    Воспользуйтесь вкладкой «вставка»

    Выберите таблицу (4 строки, 5 столбцов). Заполните таблицу данными (шрифт – Times New Roman , кегль 12) , используя копирование (Tab – Ctrl + Ins Shift + Ins ):

    Вставьте столбец справа в таблицу (пятница), заполните и его.

    Добавьте строку «день недели», щёлкнув правой кнопкой мыши в любой ячейке первой строки.

    1. Выберите команду «вставить», «вставить строки сверху»

    1. В появившейся строке выделите ячейки, расположенные над днями недели:

    1. Щёлкните правой кнопкой мыши в любой из выделенных ячеек и выберите команду «объединить ячейки».

    1. Впечатайте словосочетание «день недели».

Существует два понимания понятия “визуализация текстов” . В первом понимании, визуализация текстов – это генерация изображений по входному тексту. В приводится такой пример: по тексту, представленному на Рис. 1 требуется построить изображение. При этом, система, генерирующая изображение, должна понимать, что компьютер может стоять только на столе и автоматически добавлять стол на изображение. Среди русскоязычных работ этого направления отметим работу .

Другое понимание понятие “визуализация текстов” предполагает изображение либо элементов текста, либо структур, извлеченных из текста, для образовательных или аналитических нужд. В этом понимании можно выделить несколько различных подходов.

Исторически первый – так называемое облако тегов (tag cloud) . Облако тегов представляет собой множество ключевых слов или словосочетаний – тегов, извлеченных из текста, изображенных на плоскости. Размер каждого тега зависит от частоты или любой другой частотной характеристики тега. Облако тегов может иметь любую форму: действительно облака или, например, звездочки.



Рис. 2, источник: https://uniqons.wordpress.com

Иногда цветом на облаке тегов отмечают какие-нибудь важные характеристики, например, авторство. На Рис. 3 голубым отображены слова из предвыборной программы Обамы, коричневым – Маккейна. Облака тегов позволяют получить общее представление о содержании текста или коллекции текстов. Например, в облака тегов используются для визуализации частых слов в позитивных или негативных твитах, посвященных предвыборной кампании 2012 г. в США. Одно из развитий идеи облака тегов представлено в : облака Вена , которые используются для демонстрации контраста между двумя коллекциями текстов.



Рис. 3, источник: http://www.planetizen.com/


Рис. 4, Три примера облаков Вена. В левой части частые слова из твитов, содержащих слово “Orioles” (бейсбольная команда), в правой – “Nationals”. По середине расположены общие для обеих коллекций слова.

Второй подход к визуализации текстов – это визуализация элементов текстов и теоретико-множественных, алгебраических или статистических отношений между ними. Как правило, в рамках этого подхода текст или коллекция текстов представляется графом, в котором вершины – ключевые слова или словосочетания или понятия, выделенные из текстов, соединенные ребрами по каким-то принципам. Например, в составляется панорама тем – графом из трех соединенных компонент (см. Рис. 5), каждая доля соответствует одному источнику, узлы подписаны ключевыми словами или словосочетаниям. В графе есть два типа ребер: внутри одной компоненты, соответствующей одному источнику, узлы соединены в соответствии с взаимной встречаемостью. Второй тип ребер соединяет похожие узлы из разных источников. В строится карта метро (Рис. 6) – визуализация динамических кластеров ключевых слов и словосочетаний.



Рис. 5


Рис. 6

Третий подход к визуализации текстов – это визуализация моделей скрытых тем (latent topics) . Система Serendip выделяет скрытые темы в тексте и подсвечивает слова во входном тексте цветом (Рис. 7). У каждой скрытой темы свой цвет, интенсивность цвета зависит от степени вхождения слова в тему. В скрытые темы представлены в виде облаков тегов (Рис. 8).


Рис. 7

Рис. 8

Наша работа по построению графа референций принадлежит ко второму подходу. В графе референций узлы – это ключевые слова или словосочетания, а направленные ребра вида A->B задают отношение вида “если встречается A, то встречается B”, то есть, “B встречается в контексте A”.

  1. Chang, Angel X., Manolis Savva, and Christopher D. Manning. "Semantic parsing for text to 3d scene generation." ACL 2014 (2014): 17.
  2. Усталов, Дмитрий, и Александр Кудрявцев. "Применение онтологии при синтезе изображения по тексту." Доклады всероссийской научно–практической конференции Анализ Изображений, Сетей и Текстов. М.: Национальный Открытый Университет ИНТУИТ. 2012
  3. Coupland D. (1996), Microserfs, Flamingo
  4. Wang, H., Can, D., Kazemzadeh, A., Bar, F., & Narayanan, S. (2012, July). A system for real-time twitter sentiment analysis of 2012 us presidential election cycle. In Proceedings of the ACL 2012 System Demonstrations (pp. 115-120). Association for Computational Linguistics.
  5. Coppersmith, G., & Kelly, E. (2014). Dynamic Wordclouds and Vennclouds for Exploratory Data Analysis. Sponsor: Idibon, 22.
  6. Liu, S., Wang, X., Chen, J., Zhu, J., & Guo, B. (2014, October). TopicPanorama: A full picture of relevant topics. In Visual Analytics Science and Technology (VAST), 2014 IEEE Conference on (pp. 183-192). IEEE.
  7. Shahaf, D., Yang, J., Suen, C., Jacobs, J., Wang, H., & Leskovec, J. (2013, August). Information cartography: creating zoomable, large-scale maps of information. In Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 1097-1105). ACM.
  8. Alexander, E., Kohlmann, J., Valenza, R., Witmore, M., & Gleicher, M. (2014, October). Serendip: Topic model-driven visual exploration of text corpora. In Visual Analytics Science and Technology (VAST), 2014 IEEE Conference on (pp. 173-182). IEEE.
  9. Smith, A., Chuang, J., Hu, Y., Boyd-Graber, J., & Findlater, L. (2014). Concurrent Visualization of Relationships between Words and Topics in Topic Models. Sponsor: Idibon, 79.