Лингвофорум

Теоретический раздел => Прикладная лингвистика => Компьютерная лингвистика => Тема начата: YaMolekula от декабря 24, 2010, 22:02

Название: алгоритм или метод, анализ на часть речи
Отправлено: YaMolekula от декабря 24, 2010, 22:02
Всем доброго времени суток! Я, в общем, пишу программку, которая должна выявлять из поступающего текста принадлежащие определённой части речи слова , в моём случае это имя прилагательное. Затем, проводить незамысловатый анализ найденного слова. Но, если с анализом слова проблем не возникло, то с выявлением прилагательного случилась просто беда. Сами прилагательные в программе ищутся путём сравнения "окончания" каждого слова с "окончаниями", которые обычно встречаются в прилагательном. Слово "окончание" я взял в кавычки, потому что там не только окончания, там вообще на что обычно прилагательное заканчивается (постфиксы и др.).  Но проблема в том, что, среди найденных слов, около половины - слова принадлежащие другим частям речи.
  Мне бы, в общем, любую идею или мануал какой-нить, чтобы хотя бы за что-то зацепиться  :wall:
 
Название: Программно узнать часть речи.
Отправлено: Bhudh от декабря 24, 2010, 22:05
Offtop
Батарея (http://lurkmore.ru/%D0%91%D0%B0%D1%82%D0%B0%D1%80%D0%B5%D1%8F)... ;D
Название: Анализ на часть речи, метод, алгоритм
Отправлено: RawonaM от декабря 24, 2010, 22:08
На каком языке надо-то? В обоих смыслах.
Название: алгоритм или метод, анализ на часть речи
Отправлено: YaMolekula от декабря 24, 2010, 22:18
Надо на русском. А стилистика ближе к литературному, программа проверяется на отрывке из современного или классического литературного произведения.
Название: Программно узнать часть речи.
Отправлено: YaMolekula от декабря 24, 2010, 22:27
Цитата: Bhudh от декабря 24, 2010, 22:05
Offtop
Батарея (http://lurkmore.ru/%D0%91%D0%B0%D1%82%D0%B0%D1%80%D0%B5%D1%8F)... ;D
Это конечно жёстко))
Но мне чтоб хотя бы до 30% погрешность уменьшить.
Название: алгоритм или метод, анализ на часть речи
Отправлено: RawonaM от декабря 24, 2010, 22:33
А на каком языке пишете?

Интересно, какой процент ошибочных предположений? Покажите результаты, посмотрим.

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

Самое простое — взять какой-то сносно работающий парсер и встроить его в вашу программу.
Название: алгоритм или метод, анализ на часть речи
Отправлено: Darkstar от декабря 25, 2010, 00:36
Какое открытие, автор первого поста! Вы никогда не слышали, что проблема семантики и многозначности в общем случае неразрешима?
Название: алгоритм или метод, анализ на часть речи
Отправлено: YaMolekula от декабря 25, 2010, 01:01
Я сейчас проверил программу на примере отрывка из "Мастер и Маргарита":

Она выдала следующий список слов как прилагательные:
Цитировать
0.рядом
1.пожелавший
2.своим
3.галстуком
4.совершеннейшую
5.грязную
6.него
7.какой
8.прозрачной
9.лафитный
10.чистый
11.праздничная
12.тесной
13.приближенных
14.утомительный

Попался более удачный текст, обычно прилагательных составляет где-то 40%.

Велосипед пришлось изобретать, после безуспешных попыток найти уже существующие методы. В известных мне учебниках по алгоритмам этому уделено, к сожалению, очень мало внимания.
Название: алгоритм или метод, анализ на часть речи
Отправлено: RawonaM от декабря 25, 2010, 01:06
Вам надо изучать вот это http://corpus.leeds.ac.uk/mocky/.

В национальном корпусе (http://ruscorpora.ru) использовали Мystem (http://company.yandex.ru/technology/mystem/help.xml) и Dialing (http://www.aot.ru/cgi-bin/search).

У последнего есть открытые исходники.

Пример майстема:
$./mystem -ig
Однажды в студеную зимнюю пору
Однажды{однажды=ADV=}в{в=PR=}студеную{студеный=A=вин,ед,жен}зимнюю{зимний=A=вин,ед,жен}пору{пора=S,жен,неод=вин,ед}


Mystem неплох, он в Яндексе склоняет незнакомые слова, поэтому, например (Yandex) вакерный (http://yandex.ua/yandsearch?text=%D0%B2%D0%B0%D0%BA%D0%B5%D1%80%D0%BD%D1%8B%D0%B9&sid=209611293231757009296&lid=v11.search&lr=143).
Не знаю что это такое, толкьо что придумал, но видите, что склоняет. А гугл не может: (Google) вакерный (http://www.google.com/search?client=ubuntu&channel=fs&q=%D0%B2%D0%B0%D0%BA%D0%B5%D1%80%D0%BD%D1%8B%D0%B9&ie=utf-8&oe=utf-8)

Может вам вообще можно взять все готовое с национального корпуса и не напрягаться :)
Название: алгоритм или метод, анализ на часть речи
Отправлено: RawonaM от декабря 25, 2010, 01:10
Аутпут из майстема:
Цитироватьрядом{ряд=S,муж,неод=твор,ед|рядом=ADV=}
пожелавший{пожелать=V,сов=(прош,им,ед,прич,муж|прош,вин,ед,прич,муж,неод)}
своим{свой=A=(дат,мн|твор,ед,муж|твор,ед,сред)|свое=S,ед,сред,неод=твор|свой=S,муж,од=(дат,мн|твор,ед)}
галстуком{галстук=S,муж,неод=твор,ед}
совершеннейшую{совершенный=A=вин,ед,прев,жен}
грязную{грязный=A=вин,ед,жен}
него{него=S,ед,муж,од=(род|вин)|него=S,ед,сред,од=(род|вин)|он=S,ед,муж,од=(род|вин)|оно=S,ед,сред,од=(род|вин)}
какой{какой=A=(им,ед,муж|род,ед,жен|дат,ед,жен|вин,ед,муж,неод|твор,ед,жен|пр,ед,жен)}
прозрачной{прозрачный=A=(род,ед,жен|дат,ед,жен|твор,ед,жен|пр,ед,жен)}
лафитный{лафитный=A=(им,ед,муж|вин,ед,муж,неод)}
чистый{чистый=A=(им,ед,муж|вин,ед,муж,неод)}
праздничная{праздничный=A=им,ед,жен}
тесной{тесный=A=(род,ед,жен|дат,ед,жен|твор,ед,жен|пр,ед,жен)}
приближенных{приближать=V=(прош,род,мн,прич,сов,страд|прош,вин,мн,прич,сов,страд,од|прош,пр,мн,прич,сов,страд)|приближенный=A=(род,мн|вин,мн,од|пр,мн)|приближенный=S,муж,од=(род,мн|вин,мн|пр,мн)|приближенная=S,жен,од=(род,мн|вин,мн|пр,мн)}

Короче я предлагаю велосипед не изобретать :)
Название: алгоритм или метод, анализ на часть речи
Отправлено: RawonaM от декабря 25, 2010, 01:21
Найдете что-нибудь интересное, давайте сюда или в более общую тему:
Компьютерная лингвистика (http://lingvoforum.net/index.php?topic=29965.0)
Название: алгоритм или метод, анализ на часть речи
Отправлено: YaMolekula от декабря 26, 2010, 13:14
Спасибо большое, RawonaM! С готовыми парсерами гораздо удобней и эффективней.
Название: алгоритм или метод, анализ на часть речи
Отправлено: RawonaM от декабря 26, 2010, 13:17
И вам спасибо за вопрос, мы сами много чего нового узнали :)
Название: алгоритм или метод, анализ на часть речи
Отправлено: myst от декабря 27, 2010, 17:28
mystem выручает, да. ;up:
Название: алгоритм или метод, анализ на часть речи
Отправлено: Bhudh от декабря 27, 2010, 20:10
mystem выручает μύστην.
Название: алгоритм или метод, анализ на часть речи
Отправлено: myst от декабря 27, 2010, 20:15
:negozhe:
Название: алгоритм или метод, анализ на часть речи
Отправлено: Bhudh от декабря 27, 2010, 20:24
:gozhe:, :gozhe:...
Название: алгоритм или метод, анализ на часть речи
Отправлено: vlad9486 от декабря 31, 2010, 16:40
Делаеш многослойный персептрон, вход - слово, выход -вероятность того, что это прилагательное. Обучешь его. Вроде должно работать.
Название: алгоритм или метод, анализ на часть речи
Отправлено: Alone Coder от августа 20, 2011, 20:48
ЦитироватьЗнакома  я  с  одним  ученейшим,  мужем,  эллинистом,  латинистом,
математиком,  философом, медиком, настоящим  царем всех наук, человеком  уже
лет шестидесяти, который, позабыв все  на  свете,  уже лет двадцать корпит и
мучается над  грамматикой,  утешая себя надеждой дожить  до того счастливого
дня,  когда он научится безошибочно различать все восемь  частей речи, чего,
как известно, не мог  вполне достигнуть ни один из  эллинистов и латинистов.
Эразм Роттердамский. Похвала глупости
Название: алгоритм или метод, анализ на часть речи
Отправлено: Bhudh от августа 20, 2011, 20:50
Ну не было ещё логлана!