Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
511 / 143 / 27
Регистрация: 18.04.2015
Сообщений: 1,863
Записей в блоге: 15
1

Нейросеть из книги

02.02.2020, 19:32. Просмотров 601. Ответов 10
Метки нет (Все метки)


Есть книга.

Нужно создать энциклопедию по книге.

С чего начать? Обсудим?

Добавлено через 21 минуту
===
В задачах классификации (например определение спам-сообщений) активационная функция должна иметь характеристику "включателя". Иными словами, если вход больше, чем некоторое значение, то выход должен изменять состояние, например с 0 на 1 или -1 на 1

===
Выход одних нейронов является входом для других нейронов. Мы можем представить такие сети в виде соединенных слоев с узлами. Каждый узел принимает взвешенный вход, активирует активационную функцию для суммы входов и генерирует выход.

===
Когда ИИ, оперируя большими базами данных, получает информацию (например, вашу фотографию, введенную фразу или только что нарисованное изображение), он сравнивает входящие данные с теми, что у него уже есть.


=================
но как быть - если у меня есть книга -
и нужно на выходе получить все термины этой книги
и потом эффективно искать всю нужную информацию

например, Война и Мир
вводим Наташа Ростова - и
нужно получить всю информацию в один текст ........ где упоминается

Мне сложно объяснить, я понимаю объем работы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2020, 19:32
Ответы с готовыми решениями:

Сравнить ФИО из книги 1 и книги 2, и если совпадают, то в столбец А книги 1, подставить данные из столбца В книги 2
Добрый день! Подскажите, как сделать-есть 2 книги. Нужно сравнить фамилии из книги 1 и книги 2 и...

Описать структуру Bibliotec, содержащую следующие поля: автор книги, инвентарный номер книги, название книги
Описать структуру BIBLIOTEC содержащий следующие поля: автор книги , инвентарный номер книги ,...

Нейросеть
Народ, как подать данные на нейросеть если они текстового вида. Пишу программу которая должна...

Нейросеть
using System; using System.IO; using System.Runtime.InteropServices; namespace...

10
486 / 395 / 40
Регистрация: 17.07.2013
Сообщений: 2,044
04.02.2020, 14:40 2
Цитата Сообщение от IRIP Посмотреть сообщение
и нужно на выходе получить все термины этой книги
и потом эффективно искать всю нужную информацию
Вы уверены, что нс - это самый эффективный алгоритм для решения?
0
511 / 143 / 27
Регистрация: 18.04.2015
Сообщений: 1,863
Записей в блоге: 15
16.02.2020, 17:32  [ТС] 3
Цитата Сообщение от Nick07 Посмотреть сообщение
нс
Какие есть варианты?
0
Эксперт Python
4390 / 3252 / 1054
Регистрация: 28.10.2013
Сообщений: 8,375
Записей в блоге: 1
16.02.2020, 17:45 4
Цитата Сообщение от IRIP Посмотреть сообщение
Какие есть варианты?
Множество. И все не про нейросети. (Они тут вообще непонятно зачем).
Но вы так и не сказали чего хотите.
Если глубоко не копать фразу
Цитата Сообщение от IRIP Посмотреть сообщение
эффективно искать всю нужную информацию
то это задача инфо\fulltext поиска, решаемая на уровне БД.
0
511 / 143 / 27
Регистрация: 18.04.2015
Сообщений: 1,863
Записей в блоге: 15
16.02.2020, 17:55  [ТС] 5
Garry Galler, цель - чтобы создать индекс ключевых слов текста (кники)
и по каждому индексу - ключевым фигурам, терминам и так далее
формировать отдельные "страницы" с полезной информацией

а в тексте, ключ помечать
0
Эксперт Python
4390 / 3252 / 1054
Регистрация: 28.10.2013
Сообщений: 8,375
Записей в блоге: 1
16.02.2020, 19:26 6
А причем тут нейросеть из какой-то книги...?
Хотите создать индекс - гуглите методы создания индекса.
0
511 / 143 / 27
Регистрация: 18.04.2015
Сообщений: 1,863
Записей в блоге: 15
16.02.2020, 20:45  [ТС] 7
Цитата Сообщение от Garry Galler Посмотреть сообщение
А причем тут нейросеть из какой-то книги...?
Книга, тут образное, собирательное понятие,
пример (аналогия) может служить Большая Советская Энциклопедия
или большой блог по объемам не меньшим БСЭ
который ведут с 2004 года

Добавлено через 19 минут
Если все материалы разделены на страницы - на отдельные файлы - то механизм довольно понятен
те же роботы/алгоритмы яндекса, гугла и другие (еще старые) когда мы их закачивали к себе на хостинг

но если всё в одном файле...
всё одной лентой на многие десятки мегабайт текста
миллионы строк
0
289 / 256 / 49
Регистрация: 09.01.2018
Сообщений: 878
17.02.2020, 16:55 8
Цитата Сообщение от IRIP Посмотреть сообщение
но если всё в одном файле...
всё одной лентой на многие десятки мегабайт текста
миллионы строк
Если это обоснование необходимости применения нейросети, то ответ не засчитывается, потому как он тут абсолютно ни при чем. Кстати несколько десятков мегабайт текста это весьма небольшой документ.

Если исходить из вот этого вашего фрагмента

но как быть - если у меня есть книга -
и нужно на выходе получить все термины этой книги
и потом эффективно искать всю нужную информацию
например, Война и Мир
вводим Наташа Ростова - и
нужно получить всю информацию в один текст ........ где упоминается
То, во-первых, тот-же Гуугл великолепно проиндексирует Войну и Мир, заданную в виде одного файла.
Во-вторых, "получить все термины этой книги" - это элементарный просмотр всего текста, составление индекса всех его слов-терминов (за исключением стоп-слов) с указанием страниц (или предложений), где данный термин встретился.
В-третьих, что значит "эффективно искать всю нужную информацию"? В чем вы будете измерять эффективность? И насколько можно считать поиск Гуугл (или аналогичный ему) эффективным?
В-четвертых, "нужно получить всю информацию в один текст ........ где упоминается" - в каком виде? Если перечень страниц, или - например - перечень предложений, где встречается нужный вам термин, то можно-ли такой поиск считать эффективным? А если нет - то какой вывод от своей системы вы в идеале ожидаете?

Но это все не требует применения нейросетей от слова абсолютно.

В-пятых, совсем загадочно. Что такое "энциклопедия по книге"? Ну например, есть Энциклопедия романа "два капитана" Так это отдельное литературное произведение. Да современные нейросети "пробуют" писать некие произведения. Но это - составление сочинение на заданную тему - отдельная задача, к индексации исходного текста имеющая крайне малое отношение. И вряд-ли нейросети смогут писать что-либо достойное в ближайшее время. А уж создание таких сетей - точно не задача для любителя-одиночки.

Пока вы даете какую-то обрывочную и сильно противоречивую информацию о том, что вы хотите сделать и о том, почему известные механизмы индексации вас не устраивают. Пока вы сами не разберетесь в этом и не изложите свою задачу четко вряд-ли кто-либо сможет вам помочь.
0
511 / 143 / 27
Регистрация: 18.04.2015
Сообщений: 1,863
Записей в блоге: 15
17.02.2020, 21:35  [ТС] 9
Цитата Сообщение от passant Посмотреть сообщение
То, во-первых, тот-же Гуугл великолепно проиндексирует Войну и Мир, заданную в виде одного файла.
Совершенно верно.
Ну а мне с этого, что?
Гугл меня, как крымчанина, забанил в большинстве своих сервисов


Цитата Сообщение от passant Посмотреть сообщение
В-пятых, совсем загадочно. Что такое "энциклопедия по книге"? Ну например, есть Энциклопедия романа "два капитана" Так это отдельное литературное произведение. Да современные нейросети "пробуют" писать некие произведения. Но это - составление сочинение на заданную тему - отдельная задача, к индексации исходного текста имеющая крайне малое отношение. И вряд-ли нейросети смогут писать что-либо достойное в ближайшее время. А уж создание таких сетей - точно не задача для любителя-одиночки.
да, это очень близко


Цитата Сообщение от passant Посмотреть сообщение
что вы хотите сделать
Понять принцип создания и действия (работы) программы, способной разложить информацию на молекулы и пересобрать
в едином объеме
чтобы в дальнейшем, можно было получать по любому ключу (в локальной программе)
всю имеющуюся информацию из заданного объема
0
1068 / 979 / 145
Регистрация: 19.02.2010
Сообщений: 3,016
18.02.2020, 00:08 10
Цитата Сообщение от IRIP Посмотреть сообщение
Понять принцип создания и действия (работы) программы, способной разложить информацию на молекулы и пересобрать
в едином объеме
чтобы в дальнейшем, можно было получать по любому ключу (в локальной программе)
всю имеющуюся информацию из заданного объема
Банальное кодирование n-грамм (для любого нужного n) через word2vec, затем (при поиске) поиск ближайших к ключу.

Арифм. операции "+" и "-" над кодирующими векторами, дабы "прибавлять" и "вычитать" смыслы из слов. "Париж" минус "Франция" плюс "Россия" должно давать "Москва". И "столица" должна быть при этом тоже рядом.

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

"Заданный объём" (последняя строка цитаты) можно при желании/необходимости ограничивать нужным кластером. Т.е. результаты запроса искать уже не в пространстве исходного корпуса текстов - а внутри некоторой условной семантической либо онтологической "единицы", связанной с ним / выделенной из него.
Но это потребует иного способа сравнения/анализа (не поиска ближайшего/ближайших векторов - ибо с ближайшими же очевидно, что ближайший результат найдётся именно внутри того кластера, внутрь которого попадёт запрос, даже при поиске по всему пространству без ограничения кластером).
Т.е. тут, скорее, нужно будет искать на границах кластера (искать противоречия, антонимы), и/или искать цепочки арифм.действий (условных "рассуждений"), проходящих через запросную=ограничивающую точку, либо таких, для которых запросная точка является стартовой либо конечной. Если запросная точка предполагается именно центральной - то тоже что-то типа противоречий/антонимов может найтись, условно "симметричных" относительно неё.
1
Эксперт Python
4390 / 3252 / 1054
Регистрация: 28.10.2013
Сообщений: 8,375
Записей в блоге: 1
19.02.2020, 02:22 11
Цитата Сообщение от IRIP Посмотреть сообщение
Понять принцип создания и действия (работы) программы, способной разложить информацию на молекулы и пересобрать
в едином объеме
Чтобы понять принцип - нужно сначала понять свою задачу. Молекул в тексте нет. В тексте есть токены, слова, термины, леммы, энграммы, грамматические группы, коллокации, фразовые единства, предложения, абзацы и т.д.
-------------------------------------------------------------------
Вот, например, для своих задач я написал библиотеку, которая дает мне представление о тексте:

Python
1
2
3
4
5
6
7
8
9
10
11
# создаем корпус из документов или загружаем уже обработанные доки
source = os.path.abspath(os.path.join(nlptk.MODULEDIR,r'corpus\en'))
corpus = Corpus(Path(source,"*.txt"), prep, clean, filters)
 
texts = []
 
for text in corpus:
    texts.append(text)
 
# смотрим на объект корпуса    
print(repr(corpus))
Код
Corpus(
	names=['Austin Pride and Prejudice.txt', 'bronte_jane_txt.txt',...],
	ndocs=21,
	nwords=1927580,
	nlemmas=44991,
	nhapaxes=18047)
Python
1
2
# получаем обзор документов в корпусе
[(txt.filename,txt.nwords) for txt in texts]
Кликните здесь для просмотра всего текста
Код
[('Austin Pride and Prejudice.txt', 122447),
 ('bronte_jane_txt.txt', 186971),
 ('bronte_wuthering_txt.txt', 118794),
 ('doyle_the_adventures.txt', 105136),
 ('dreiser_sister.txt', 156304),
 ('Edgar Allan Poe The Cask of Amontillado.txt', 2335),
 ('Edgar Allan Poe The Masque of the Red Death.txt', 2419),
 ('Edgar Allan Poe The Tell-Tale Heart.txt', 2126),
 ('fitzgerald_great_gatsby_txt.txt', 48484),
 ('Franz Kafka - Metamorphosis.txt', 22335),
 ('John Steinbeck - Of Mice and Men.txt', 31025),
 ('kipling_jungle_book_txt.txt', 51737),
 ('london_white_txt.txt', 72830),
 ('stevenson_treasure_island_txt.txt', 69728),
 ('Stivenson_Fall-or-Dodge-in-Hell_RuLit_Me.txt', 316418),
 ('stoker_dracula_txt.txt', 161394),
 ('twain_tom_sawyer_txt.txt', 72935),
 ('walter_scott_ivanhoe_txt.txt', 194098),
 ('wells_invisible_man_txt.txt', 49693),
 ('wells_war_of_the_worlds_txt.txt', 60577),
 ('wilde_picture_of_dorian_gray_txt.txt', 79794)]


Python
1
2
#  выбираем конкретный текст
texts[3]
Код
Text(
	name='doyle_the_adventures',
	encoding='unknown',
	nsents=6810,
	nwords=105136,
	nlemmas=6627
)
Python
1
2
3
4
# узнаем в какие предложения входит слово crime
# trie это перфиксное дерево, которое у меня работает еще и индексом всех слов
occurrences = texts[3].trie('crime')
occurrences
Кликните здесь для просмотра всего текста
Код
[(27, 11),
 (448, 19),
 (702, 37),
 (703, 21),
 (1055, 2),
 (1290, 13),
 (1571, 18),
 (1630, 5),
 (1630, 7),
 (1688, 6),
 (1837, 21),
 (2301, 14),
 (2591, 23),
 (2948, 12),
 (2958, 56),
 (3270, 13),
 (3271, 1),
 (3351, 39),
 (3353, 1),
 (3357, 26),
 (3454, 19),
 (3528, 9),
 (3804, 23),
 (4325, 14),
 (4398, 12),
 (5895, 24),
 (6197, 10),
 (6203, 58),
 (6420, 24),
 (6423, 3),
 (6429, 58)]


Python
1
2
# получаем тексты предложений в которые входит искомое слово
[(nsent, texts[3].sents(nsent).raw) for nsent,_ in occurrences]
Код
[(27,
  'He was still as ever deeply attracted by the study of crime and occupied his immense faculties and extraordinary powers of observation in following out those clues and clearing up those mysteries which had been abandoned as hopeless by the official police'),
 (448,
  'The stage lost a fine actor even as science lost an acute reasoner when he became a spe******t in crime'),
 (702,
  'You have heard me remark that the strangest and most unique things are very often connected not with the larger but with the smaller crimes and occasionally indeed where there is room for doubt whether any positive crime has been committed'),
 (703,
  'As far as I have heard it is impossible for me to say whether the present case is an instance of crime or not but the course of events is certainly among the most singular that I have ever listened to'),
 (1055, 'A considerable crime is in contemplation'),
 ...
Python
1
2
3
# Можно получить частотные словари по любой части речи
verbs = texts[3].postags("VERB")
verbs
Код
FreqDist({'be': 4422, 'have': 2082, 'say': 603, 'do': 537, 'come': 340, 'see': 322, 'know': 267, 'go': 248, 'think': 236, 'take': 214, ...})
Python
1
2
# отсортировать по убыванию частоты
texts[3].postags("VERB", sort=-1)[:10]
Код
[('be', 4422),
 ('have', 2082),
 ('say', 603),
 ('do', 537),
 ('come', 340),
 ('see', 322),
 ('know', 267),
 ('go', 248),
 ('think', 236),
 ('take', 214)]

Python
1
2
# получить тегированное по частям речи представление предложения
texts[3].sents(1)
Код
TaggedSentence(
	'A⁄DT⁄A Scandal⁄NNP⁄Scandal in⁄IN⁄in Bohemia⁄NNP⁄Bohemia II⁄NNP⁄Ii',
	 n=1
)
И т.д. Библиотека имеет еще много возможностей, типа получения всех глаголов или всех существительных, разнообразные счетчики вхождений, нахождение слов начинающихся с определенного префикса, получение ngram, skipgram, ключевых слов, суммаризации текста и т.д.
Но для всего этого никакой нейросети вовсе не нужно. Всего лишь хорошее знание nltk и понимание базовых задач Natural Language Processing.
P.S. Само собой, отфильтрованый и трансформированный в соответствующую форму, результат работы библиотеки может служить и входом для какой-нибудь нейросети. Но это уже совсем другая история и совсем другие задачи...
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2020, 02:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

Простая нейросеть
Доброго времени суток! Передо мной стоит задача создать простую нейросеть. Вот начальный код: ...

Нейросеть Хопфилда
Всем привет, не знаю в какую тему писать, поэтому сюда. Ищу доступную информацию по реализации сети...

Не обучается нейросеть
Пытаюсь написать многослойный перцептрон для решения задачи XOR. Структура простейшая 2 нейрона...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.