Pull to refresh
154
0
Александр Пак @Irokez

User

Send message
Возможно, вы правы. В таком случае, такой подход действительно может сработать.
К счастью, я не помню ни номера карты, ни ПИН-код.
Потому что будет overfitting — признаки становятся слишком специфичны для обучаемой коллекции данных.
Это очень легко проверить экспериментально :) если есть желание можно устроить, если у вас есть размеченные твиты. Хотя я согласен, что, возможно, это более критично для коротких текстов вроде твитов, но в отзывах фильмов, думаю результаты не будут отличаться.
Да, прошу прощения. Нужно будет добавить README. Я использовал requests, BeautifulSoup, sqlite3.
Да, тестовая коллекция была оценена двумя экспертами.
Да, я использовал LIBLINEAR, библиотеку для линейных SVM. У меня нет особого опыта в конфигурации SVM, поэтому я обычно использую его «из коробки», т.к. меня в основном интересует выбор признаков и обработка текста, нежели конфигурация параметров и ядер у классификаторов.

Обучения без учителя я в основном применял лишь для уменьшения размерности и последующей визуализации данных только чтобы визуально оценить коллекцию.
Спасибо за развернутый комментарий. В принципе, я согласен по всем пунктам :)

1. Количество классов, действительно может быть больше. Это зависит либо от задачи либо от применяемой модели. То, что вы описали (две шкалы: субъективность и полярность) широко используется, например в базах SentiWordNet и ANEW. Но существует и куча других моделей, например, модели эмоций, там где вообще до 8 шкал.

На мой взгляд, для анализа тональности двух классов вполне хватает (позитивный, негативный). Определение же содержит ли текст мнение — это уже другая задача, анализ субъективности (subjectivity analysis).

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

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

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

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

6. Согласен, но тут сложно сказать, от чего именно зависит производительность того или иного классификатора. Я еще не видел исследований на эту тему. Мы участвовали в соревновании по классификации эмоций, где было 26 команд-участников. Все участники применяли различные алгоритмы классификации, в основном те, с которыми у них был больший опыт. Так вот, примерно одинаковые результаты удалось получить разными командами и с SVM, и с MaxEnt, и прочими классификаторами.
Да, конечно. Ирония и сарказм являются одной из проблем при анализе мнений. Вот несколько статей на эту тему:
  • Carvalho, Paula; Sarmento, Luís; Silva, Mário J.; and de Oliveira,Eugénio. 2009. Clues for detecting irony in user-generated contents:oh...!!! it’s «so easy» ;-)
  • Reyes, Antonio and Rosso, Paolo. 2011. Mining subjective knowl-edge from customer reviews: a specific case of irony detection
  • Davidov, Dmitry; Tsur, Oren; and Rappoport, Ari. 2010. Semi-supervised recognition of sarcastic sentences in Twitter and Amazon
  • González-Ibáñez, Roberto; Muresan, Smaranda; and Wacholder,Nina. 2011. Identifying sarcasm in Twitter: a closer look
Смотря что вы имеете в виду под «реальным использованием». Я лишь принимал участие в исследовательских проектах. В частности, наша система на РОМИП в этом году занимала 1-е место по классификации тональности на 5 классов. Если вы имеете в виду коммерческое применение, то таких данных у меня к сожалению нет.
«Данный велосипед» даже если и изобретается с 50х годов, но даже и его нет для русского языка в свободном доступе. Хотя я тут описывал не грамматику составляющих, которая вписывается в модель Хомского, а грамматику связей, которая больше вписывается в теорию Мельчука и ко.
Я бы с удовольствием, но, к сожалению, я не в России.
могу добавить преобразование из тегов MULTEXT :)
Теги СинТагРус конвертировались в англ. версию (S ЕД МУЖ ИМ НЕОД -> S.m.nom.sg) (это было необязательно. но мне почему-то было так удобнее) примерно так: github.com/irokez/Pyrus/blob/master/src/syntagrus.py

Теги TreeTagger конвертировались тоже в англ. версию (Ncmsnn -> S.m.nom.sg) так: gist.github.com/cc9db95069b267a1d79f

НКРЯ в СинТагРус не конвертил. Собственно из всего НКРЯ я использовал только СинТагРус.
неплохо! на основе АОТ?
Там был немного запутанный конвеер. Тексты сначала прогонялись через TreeTagger (http://corpus.leeds.ac.uk/mocky/)? затем теги конвертировались в теги НКРЯ (писал скрипт для конвертации) и прогонялись через MaltParser. Собственный POS-тэггер не использовал, т.к. не успел сделать сегментацию на предложения и слова. АОТ пробовал использовать для лемматизации, но там почти никакого эффекта не было для классификации тональности.
Ошибок много, согласен. Но это не грустно, это просто нужно улучшать. Главное, что основа есть.
MaltParser использует морф. характеристики. Но я при обучении задавал составные теги (типа «сущ.ед.муж»), т.е. морфология как бы учитывается, но наверное не так, как вы предлагаете. В принципе, я с вами согласен. Для русского нужно учитывать морфологию более искусным путем.
К сожалению, никогда не пробовал писать на прологе. Но скорее всего вы делали пытались формализовать естественный язык на прологе, что эквивалентно написанию правил. Я здесь описываю статистический подход — парсер сам обучается на основе уже размеченных данных.
Мне дали добро на распространение обученной модели для некоммерческих целей. Единственная загвоздка — модель бесполезна без морфологического анализатора. Как только приведу в порядок исходный код, то смогу распространять модель.

Information

Rating
Does not participate
Location
Швейцария
Date of birth
Registered
Activity