Author Topic: алгоритм или метод, анализ на часть речи  (Read 6642 times)

0 Members and 1 Guest are viewing this topic.

Offline YaMolekula

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

Offline Bhudh

  • Posts: 56973
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline RawonaM

  • Posts: 43439
На каком языке надо-то? В обоих смыслах.

Offline YaMolekula

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

Offtop
Это конечно жёстко))
Но мне чтоб хотя бы до 30% погрешность уменьшить.

Offline RawonaM

  • Posts: 43439
А на каком языке пишете?

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

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

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

Offline Darkstar

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

Offline YaMolekula

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

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

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

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

Offline RawonaM

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

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

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

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

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

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

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

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

Найдете что-нибудь интересное, давайте сюда или в более общую тему:
Компьютерная лингвистика

Offline YaMolekula

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

Offline RawonaM

  • Posts: 43439
И вам спасибо за вопрос, мы сами много чего нового узнали :)

Offline myst

  • Posts: 35581
mystem выручает, да. ;up:

Offline Bhudh

  • Posts: 56973
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
mystem выручает μύστην.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Offline Bhudh

  • Posts: 56973
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline vlad9486

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

Offline Alone Coder

  • Вне лингвистики
  • Posts: 23232
  • Gender: Male
    • Орфовики
Quote
Знакома  я  с  одним  ученейшим,  мужем,  эллинистом,  латинистом,
математиком,  философом, медиком, настоящим  царем всех наук, человеком  уже
лет шестидесяти, который, позабыв все  на  свете,  уже лет двадцать корпит и
мучается над  грамматикой,  утешая себя надеждой дожить  до того счастливого
дня,  когда он научится безошибочно различать все восемь  частей речи, чего,
как известно, не мог  вполне достигнуть ни один из  эллинистов и латинистов.
Эразм Роттердамский. Похвала глупости

Offline Bhudh

  • Posts: 56973
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Ну не было ещё логлана!
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: