Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

алгоритм или метод, анализ на часть речи

Автор YaMolekula, декабря 24, 2010, 22:02

0 Пользователи и 1 гость просматривают эту тему.

YaMolekula

Всем доброго времени суток! Я, в общем, пишу программку, которая должна выявлять из поступающего текста принадлежащие определённой части речи слова , в моём случае это имя прилагательное. Затем, проводить незамысловатый анализ найденного слова. Но, если с анализом слова проблем не возникло, то с выявлением прилагательного случилась просто беда. Сами прилагательные в программе ищутся путём сравнения "окончания" каждого слова с "окончаниями", которые обычно встречаются в прилагательном. Слово "окончание" я взял в кавычки, потому что там не только окончания, там вообще на что обычно прилагательное заканчивается (постфиксы и др.).  Но проблема в том, что, среди найденных слов, около половины - слова принадлежащие другим частям речи.
  Мне бы, в общем, любую идею или мануал какой-нить, чтобы хотя бы за что-то зацепиться  :wall:
 

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

RawonaM


YaMolekula

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

YaMolekula


RawonaM

А на каком языке пишете?

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

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

Самое простое — взять какой-то сносно работающий парсер и встроить его в вашу программу.

Darkstar

Какое открытие, автор первого поста! Вы никогда не слышали, что проблема семантики и многозначности в общем случае неразрешима?
(1) С людями надо помягше, а на вопросы смотреть поширше (с) (2) Проекция (в психологии) - неосознанное приписывание собеседнику собственных мыслей и действий (3) Учебник логики еще никто не отменял (4) Какой был тезис?

YaMolekula

Я сейчас проверил программу на примере отрывка из "Мастер и Маргарита":

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

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

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

RawonaM

Вам надо изучать вот это http://corpus.leeds.ac.uk/mocky/.

В национальном корпусе использовали Мystem и Dialing.

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

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


Mystem неплох, он в Яндексе склоняет незнакомые слова, поэтому, например (Yandex) вакерный.
Не знаю что это такое, толкьо что придумал, но видите, что склоняет. А гугл не может: (Google) вакерный

Может вам вообще можно взять все готовое с национального корпуса и не напрягаться :)

RawonaM

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

Короче я предлагаю велосипед не изобретать :)

RawonaM


YaMolekula

Спасибо большое, RawonaM! С готовыми парсерами гораздо удобней и эффективней.

RawonaM



Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

vlad9486

Делаеш многослойный персептрон, вход - слово, выход -вероятность того, что это прилагательное. Обучешь его. Вроде должно работать.

Alone Coder

ЦитироватьЗнакома  я  с  одним  ученейшим,  мужем,  эллинистом,  латинистом,
математиком,  философом, медиком, настоящим  царем всех наук, человеком  уже
лет шестидесяти, который, позабыв все  на  свете,  уже лет двадцать корпит и
мучается над  грамматикой,  утешая себя надеждой дожить  до того счастливого
дня,  когда он научится безошибочно различать все восемь  частей речи, чего,
как известно, не мог  вполне достигнуть ни один из  эллинистов и латинистов.
Эразм Роттердамский. Похвала глупости

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр