Как стать автором
Обновить

Комментарии 7

Спасибо, может быть немного не в тему, но есть вопрос — каким образом можно рассчитать эмоциональную окраску текста?


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

С помощью нейронных сетей. На Kaggle были соревнования по этой задаче.

В этой части речь идет лишь о символах. Пока не очевидно и затруднительно заметить какие либо факторы, связывающие символьный контекст и эмоциональную окраску. Но интуитивно можно хотя бы предположить, что даже в символьном спектре есть отголоски эмоций, сопровождающих текст.
Текст можно представить себе как набор чисел. А все числа между собой имеют однозначные взаимоотношения. Это хорошо чувствуется, когда некоторое время изучаешь простые числа и то, как они формируют другие числа, выполняя роль их простых множителей. На тему простых чисел тоже можно углубиться так, что всего не озвучить. И все же кое-что полезное можно выразить в словах и формулах.
Нейросети позволяют «прочувствовать» свойства, которые наше привычное восприятие описывает как «слишком сложно, чтобы вдаваться в детали», тем не менее использовать их никто не мешает. Результат зависит от правильности внутренней организации нейросети под конкретные условия, представление входных данных и пр.
Существует уже множество более-менее универсальных типов нейросетей. Одним из ключевых факторов является качество «корма», которым вы свою нейросеть кормите. Это, кстати, относится и к нейросети реального мозга. В современном обществе люди не придают большого значения ни тому, что едят, ни тому, чем кормят мозг через свое восприятие. Результаты — печальны.
Я постараюсь затронуть в будущих статьях, когда речь пойдет о синтаксисе и словах, эту тему. Если не напрямую, то хотя бы косвенно.
На данный момент могу сказать, что, к примеру, по форме символьного спектра, можно сделать выводы насколько агрессивно настроен автор и стоит ли читать его текст. Все в данном случае, конечно, относительно и выражается вероятностью. Так что подобный фильтр может выступать как первая линия обороны на защите экологии сознания.
И взаимно благодарю вас за проявленный интерес к данной теме.

Спасибо

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

ЕМНИП, это называется «гистограмма» или «частотный анализ».
И нет, по гистограмме не получится хорошо определить язык, слишком уж она изменчива на коротких текстах (никакие нейросети тут не помогут). Для этого хорошо подходит метод н-грамм. Но и он хорошо работает только на языках с алфавитной письменностью. На иероглифах и слоговой письменности — лажает безбожно.

Данные для анализа текста у вас, конечно, прекрасные, но на больших текстовых корпусах вы быстренько исчерпаете всю память. У вас на каждый символ текста заводится целая структура — и не одна. Зачем вам это — абсолютно непонятно: класс символа (alpha/number/whitespace/punct) можно очень быстро установить просто по самому символу. Опять же, зачем хранить все позиции символа в тексте? Только чтобы была возможность полностью восстановить текст? Странное желание.
С практической точки зрения интересно, скажем, разобрать текст на символьные фрагменты (от 1 до n символов длиной) и посчитать их частоты. Так вы найдете наиболее употребимые морфемы и даже слова. Еще интересно посчитать цепи Маркова для цепочек символов разной длины (по факту это своится к определению вероятности появления символа N после некой цепочки символов XYZ).
Вы правы, на коротких текстах такие вещи не сработают. И все же с некоторого порога все тексты, например на русском языке очень схожи.
Структура данных такая всеобъемлющая потому что нет определенной цели, под которую следует что-то в ней оптимизировать. Я описал в ней моменты, с которыми в дальнейшем изложении соприкоснусь и отметил особенности, которые как минимум намерен в дальнейшем исследовать. Описанные вами интересные моменты дополняют этот список. Спасибо, когда хватит времени и внимания — к ним обязательно вернемся.
Когда задумываешься о возможности применения подобных вещей, то мысли очень быстро разбегаются во всех направлениях и приходится что-то выбирать.
И сначала хочется как можно меньше говорить об известных алгоритмах и фамилиях, чтобы иметь возможность не идти по уже натоптанным тропам. Это не значит, что я против их обсуждения, это значит, что я не успею поговорить обо всем. И для меня это все еще не профессиональное направление, я здесь как любитель-исследователь, которому все это очень интересно. Не судите строго, мне еще хотелось бы многое озвучить и я рад получать подобную обратную связь, чтобы иметь ссылки на уже известные направления и точки соприкосновения с ними.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории