Previous Entry Share Next Entry
Языкоиды (28) Нейронная сеть?
PUSH
metanymous wrote in metapractice
http://metapractice.livejournal.com/418185.html

--Я понял, что для языка в целом тривиальных мощностей недостаточно.
--мощностей достаточно, только вот они не очень доступны). на обычном компьютере обучение языковых задач может длится порядка нескольких месяцев - года. для экспериментов это слишком долго.
--Но, для ограниченного корпуса слов типа конкретного языкоида, кажется, это будет работать.
--тогда нужно обсуждать конкретные пожелания/требования к задаче.
http://metanymous.livejournal.com/1177013.html?thread=3366325#t3366325



  • 1
метод работает следующим образом:

1. строим обучающий корпус. это фразы размеченные по категориям.

категории формируем в виде списка ("А", "Б", "В", ...)

далее

всем/части словам приписывается категория
всем/части группам слов приписывается категория

получаем фразу в следующем виде:

"мама"(категория 1) + "мыла"(категория 2)
              \ /
                 * (категория 3) + "раму" (категория 1)
                                      \ /
                                    * (категория 4)


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

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

2. провести обучение приложения на обучающем корпусе.
3. предъявляем фразу

далее приложение ищет наиболее возможное разбиение (для формирования дерева) и определяет категории на каждой из вершин полученного разбиения. также разбиение можно будет задавать.

Edited at 2014-09-26 01:38 pm (UTC)

Пробуем привести в соответствие

Хм.

В языкоиде мы различаем:

(а) лингвистические (лексические и грамматические или же паралингвистические) "сигналы". Типичное число сигналов в конкретном языкоиде равно 2. В другом крайнем случае число сигналов около 10.

(б) собственно конкретные "семантики" языкоида в ограниченном числе, типично равном 2 "семантикам". Ну, и "семантик" может быть до 10 штук.

Получается, для установления/обучения нейросети на языкоид мы должны указать:

--список и признаки языкоидных сигналов. Как они будут сделаны размеченными в виде категорий?

--список и обучающие примеры семантик. Эти, вроде, маркируются категориями как указал ты

Так?



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

1) необходимо создавать приложение и пользовательский интерфейс для:
1.1) создания категорий;
1.2) просмотра/редактирования разметки текста, т.е. отнесения слов и групп слов к разным категориям;
1.3) задания фразы, задания разбиения на дерево (или автоматическое разбиение) и просмотр категорий данной фразы;
2) необходимо ядро, с которым бы мог бы работать неспециалист.

вопросы:

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

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

Edited at 2014-09-26 01:54 pm (UTC)

Примерно так

1. подпадает ли частная задача по языкоидам под рассмотренную выше схему (или схема немного другая)?

Пока ответ на этот вопрос я не знаю. Кажется и да, и нет.

фактически, какая на данный момент информация создаётся в разметке текстов? т.е. на каких данных можно будет базироваться.

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

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

Ну, мне кажется, годится любой текстовый редактор.

В нем разметка типа цветом.

Возможность просмотра отдельно:

--разметки
--текста + разметки

альтернативная схема работы данного метода может быть следующей:

допустим, есть фраза: Но, для ограниченного корпуса слов типа конкретного языкоида, кажется, это будет работать
и мы берём фрагменты этой фразы:
* "Но" -- категория 1
* "Но, для" -- категория 2
* "Но, для ограниченного" -- категория 3
* "Но, для ограниченного корпуса" -- категория 1
* ...
* "корпуса слов типа" -- категория 2
...


Пока не понимаю.

альтернативная схема работы данного метода может быть следующей:
допустим, есть фраза: Но, для ограниченного корпуса слов типа конкретного языкоида, кажется, это будет работать
и мы берём фрагменты этой фразы:
* "Но" -- категория 1
* "Но, для" -- категория 2
* "Но, для ограниченного" -- категория 3
* "Но, для ограниченного корпуса" -- категория 1
* ...
* "корпуса слов типа" -- категория 2


Этого я пока не понимаю.

Есть Google Prediction API. Оно хорошо тем, что позволяет обрабатывать достаточно большие объемы данных (быстро и эффективно) и, в принципе, подходит для одного частного решения рассматриваемой в посте задачи. Пока программой для исследования языкоидов я заняться не могу, у меня все ещё подготовка к курсу у студентов. Смогу ближе к концу зимы, к весне, когда более или менее освобожусь.

У меня есть затруднение в понимании сущности языкоидов. До сих пор я не мог сформулировать понимание того, какой интерфейс программы (и в дальнейшем подход по выбору алгоритмов) нужен/оптимален для решения задачи анализа языкоидов с помощью машинного обучения. Пару разборов текста для анализа языкоидов я наблюдал, но желательно больший набор текстов для поиска языкоидов. Если можно, то хотя бы по одному разбору для всех видов языкоидов, которые известны на данных момент. (Можно просто ссылками на уже существующие разборы ну или подсказкой по тому, где их можно искать, такие разборы текстов.) Это нужно для формулирования понимания того, какой интерфейс нужно реализовать для программы по анализу языкодов.

Хотя, т.к. Google Prediction API заточено под решение определённого класса задач, то в общем, частично с интерфейсом для программы поиска языкоидов я более или менее определился (есть ограничения на алгоритмы в Google Prediction API). Но на этапе проектирования программы неплохо было бы понимать, что она сможет сделать, а что скорее всего нет (из-за ограничений по алгоритмам).

Фактически, программа по анализу языкоидов будет способна на выделение определённых закономерностей для слов, групп слов, фрагментов текстов. Как у человека формируется метанойя, так и программа (с использованием Google Prediction API) будет обобщать некоторые данные и давать возможность получить предсказание на основе обучаемого набора данных.

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

Самая сложная задача в использовании данной программы -- это подготовка достаточного объема входных данных. Т.к. всеже алгоритмы банально находят некоторые закономерности только при достаточном количестве данных. Поэтому есть смысл планировать уже сейчас обработку достаточно больших объемов текстов. Со своей сторорны я постараюсь реализовать программу (интерфейс программы) так, чтобы максимально упростить обработку больших объемов текстов, так чтобы подготовка обучающих данных была максимально простой, быстрой и эффективной.

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

P.S. Google Prediction API в принципе позволяет обрабатывать достаточно большие объемы данных, достаточно быстро, что скорее всего, позволит обойти ограничения по сложности (как если бы мы использовали собственные вычислительные средства). Все же задачи по обработке текста весьма ресурсоёмки. Предполагаю, что Google Prediction API позволит решить проблемы ограниченности собственных вычислительных ресурсов. К примеру, свести машинное обучение для одного эксперимента от недельного срока, к меньшему времени. Для свободного использования Google Prediction API есть ограничения, но думаю, это не самые сложные вопросы, учитывая преимущества по вычислительным мощностям.

языкоиды. как может помочь машинное обучение.

если мы говорим о текстовых языкоидах. поправляйте, если не прав!

Языкоиды

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

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

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

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

Машинное обучение

Одна из классических задач машинного обучения в анализе текстов -- это, например, определение является ли текст спамом или нет.

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

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


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

Одна из формулировок задачи анализа языкоидов, например, такова.

Для фрагментов текстов мы определяем некоторые категории.

Человеческий ввод:
Берём тексты. Прописываем для фрагментов этих текстов категории.

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

Происходит обучение на основе обучающего множества.

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

Данный разбор обученной системой может подсказать исследователю те или иные закономерности, на основании которых он может сформулировать определённые правила/законы о языкоидах.

(К сожалению, Google Prediction API не позвоялет непосредственно выделить "знания" об атрибутах связаных с теми или иными языкоидами. Эта возможность просто не реализована в API Google-а).

Edited at 2014-12-31 09:52 am (UTC)

  • 1
?

Log in

No account? Create an account