Это очень легко проверить экспериментально :) если есть желание можно устроить, если у вас есть размеченные твиты. Хотя я согласен, что, возможно, это более критично для коротких текстов вроде твитов, но в отзывах фильмов, думаю результаты не будут отличаться.
Да, я использовал LIBLINEAR, библиотеку для линейных SVM. У меня нет особого опыта в конфигурации SVM, поэтому я обычно использую его «из коробки», т.к. меня в основном интересует выбор признаков и обработка текста, нежели конфигурация параметров и ядер у классификаторов.
Обучения без учителя я в основном применял лишь для уменьшения размерности и последующей визуализации данных только чтобы визуально оценить коллекцию.
Спасибо за развернутый комментарий. В принципе, я согласен по всем пунктам :)
1. Количество классов, действительно может быть больше. Это зависит либо от задачи либо от применяемой модели. То, что вы описали (две шкалы: субъективность и полярность) широко используется, например в базах SentiWordNet и ANEW. Но существует и куча других моделей, например, модели эмоций, там где вообще до 8 шкал.
На мой взгляд, для анализа тональности двух классов вполне хватает (позитивный, негативный). Определение же содержит ли текст мнение — это уже другая задача, анализ субъективности (subjectivity analysis).
2. Морфологическая информация, действительно, может быть хорошим признаком для классификации тональности. Не только время глаголов, но и лицо (личные сообщения пишут от первого лица, информационные — от третьего), сравнительная и превосходная степень прилагательных и наречий, наличие местоимений и междометий.
3. Анализ твитера заслуживает отдельной статьи. Там, действительно, очень важен препроцессинг сообщений. В основном проблему создают хештеги, т.к. они порой являются членами предложений, а в остальных случаях лишь метками.
4. На моем опыте, триграммы никогда не давали хороших результатов (и во французском, и в китайском). Возможно, мой корпус был недостаточно большим.
5. Несмотря на то, что многие исследователи пишут, что отрицания могут создавать помехи для классификации тональности, в реальных условиях это редко происходит, потому что если отзыв отрицательный, то в нем будет содержаться много других признаков отрицательной тональности. В общем, манипуляции с отрицаниями если и дают прирост в результатах, то очень небольшой.
6. Согласен, но тут сложно сказать, от чего именно зависит производительность того или иного классификатора. Я еще не видел исследований на эту тему. Мы участвовали в соревновании по классификации эмоций, где было 26 команд-участников. Все участники применяли различные алгоритмы классификации, в основном те, с которыми у них был больший опыт. Так вот, примерно одинаковые результаты удалось получить разными командами и с SVM, и с MaxEnt, и прочими классификаторами.
Смотря что вы имеете в виду под «реальным использованием». Я лишь принимал участие в исследовательских проектах. В частности, наша система на РОМИП в этом году занимала 1-е место по классификации тональности на 5 классов. Если вы имеете в виду коммерческое применение, то таких данных у меня к сожалению нет.
«Данный велосипед» даже если и изобретается с 50х годов, но даже и его нет для русского языка в свободном доступе. Хотя я тут описывал не грамматику составляющих, которая вписывается в модель Хомского, а грамматику связей, которая больше вписывается в теорию Мельчука и ко.
Там был немного запутанный конвеер. Тексты сначала прогонялись через TreeTagger (http://corpus.leeds.ac.uk/mocky/)? затем теги конвертировались в теги НКРЯ (писал скрипт для конвертации) и прогонялись через MaltParser. Собственный POS-тэггер не использовал, т.к. не успел сделать сегментацию на предложения и слова. АОТ пробовал использовать для лемматизации, но там почти никакого эффекта не было для классификации тональности.
MaltParser использует морф. характеристики. Но я при обучении задавал составные теги (типа «сущ.ед.муж»), т.е. морфология как бы учитывается, но наверное не так, как вы предлагаете. В принципе, я с вами согласен. Для русского нужно учитывать морфологию более искусным путем.
К сожалению, никогда не пробовал писать на прологе. Но скорее всего вы делали пытались формализовать естественный язык на прологе, что эквивалентно написанию правил. Я здесь описываю статистический подход — парсер сам обучается на основе уже размеченных данных.
Мне дали добро на распространение обученной модели для некоммерческих целей. Единственная загвоздка — модель бесполезна без морфологического анализатора. Как только приведу в порядок исходный код, то смогу распространять модель.
«Backdoor» для мозга уже создан!
«Backdoor» для мозга уже создан!
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучения без учителя я в основном применял лишь для уменьшения размерности и последующей визуализации данных только чтобы визуально оценить коллекцию.
Обучаем компьютер чувствам (sentiment analysis по-русски)
1. Количество классов, действительно может быть больше. Это зависит либо от задачи либо от применяемой модели. То, что вы описали (две шкалы: субъективность и полярность) широко используется, например в базах SentiWordNet и ANEW. Но существует и куча других моделей, например, модели эмоций, там где вообще до 8 шкал.
На мой взгляд, для анализа тональности двух классов вполне хватает (позитивный, негативный). Определение же содержит ли текст мнение — это уже другая задача, анализ субъективности (subjectivity analysis).
2. Морфологическая информация, действительно, может быть хорошим признаком для классификации тональности. Не только время глаголов, но и лицо (личные сообщения пишут от первого лица, информационные — от третьего), сравнительная и превосходная степень прилагательных и наречий, наличие местоимений и междометий.
3. Анализ твитера заслуживает отдельной статьи. Там, действительно, очень важен препроцессинг сообщений. В основном проблему создают хештеги, т.к. они порой являются членами предложений, а в остальных случаях лишь метками.
4. На моем опыте, триграммы никогда не давали хороших результатов (и во французском, и в китайском). Возможно, мой корпус был недостаточно большим.
5. Несмотря на то, что многие исследователи пишут, что отрицания могут создавать помехи для классификации тональности, в реальных условиях это редко происходит, потому что если отзыв отрицательный, то в нем будет содержаться много других признаков отрицательной тональности. В общем, манипуляции с отрицаниями если и дают прирост в результатах, то очень небольшой.
6. Согласен, но тут сложно сказать, от чего именно зависит производительность того или иного классификатора. Я еще не видел исследований на эту тему. Мы участвовали в соревновании по классификации эмоций, где было 26 команд-участников. Все участники применяли различные алгоритмы классификации, в основном те, с которыми у них был больший опыт. Так вот, примерно одинаковые результаты удалось получить разными командами и с SVM, и с MaxEnt, и прочими классификаторами.
Обучаем компьютер чувствам (sentiment analysis по-русски)
Обучаем компьютер чувствам (sentiment analysis по-русски)
Парсим русский язык
Парсим русский язык
Парсим русский язык
Парсим русский язык
Теги TreeTagger конвертировались тоже в англ. версию (Ncmsnn -> S.m.nom.sg) так: gist.github.com/cc9db95069b267a1d79f
НКРЯ в СинТагРус не конвертил. Собственно из всего НКРЯ я использовал только СинТагРус.
Парсим русский язык
Парсим русский язык
Парсим русский язык
Парсим русский язык
Парсим русский язык
Парсим русский язык