2015-06-16 2 views
2

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

Похоже, что пара подходов:

  • Определить файл грамматики, который использует грамматику и словарный запас, я знаю о том, а затем генерировать все допустимые предложения из этого списка, а затем выбрать случайный ответ.
  • Загрузите в корпус для обучения ngrams, которые затем могут быть использованы для построения предложения.

Я думаю об этом правильно? Один подход предпочтительнее другого? Любые советы приветствуются. Благодаря!

+0

см. Http://www.icml-2011.org/papers/524_icmlpaper.pdf и http://www.fit.vutbr.cz/~imikolov/rnnlm/ – alvas

ответ

2

Если я получаю это правильно, и если цель состоит в том, чтобы проверить себя на словарный запас вы уже научились, то другой подход может быть принят:

Вместо того, чтобы идти через сложный труд гульденов (Natural Language Generation), вы можете создать поисковую программу, которая выходит в интернет, читает новостные ленты или даже просто Wikipedia и находит предложения только с определенными вами словами.

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

Это было бы главным преимуществом тестирования на настоящих предложениях, в отличие от искусственно построенных (которые, вероятно, будут звучать не совсем правильно в ряде случаев).

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

+0

Я также хочу проверить себя на структурах грамматика. В этом случае язык (мандарин, в данном случае) вызывает особую проблему, потому что слова обычно романтизируются в пиньинь, чтобы легче понять. Просканировать Интернет было бы трудно, так как настоящие китайские тексты написаны с китайскими иероглифами. Я также сомневаюсь, что могу легко найти предложения с помощью самых простых структур, которые я мог бы сказать, хотя, возможно, это возможно. Спасибо за советы! – skaz

+0

Как вы говорите, начиная с транслитерации пиньинь, не было бы никакого способа - так как многие китайские персонажи могут соответствовать одному слогу пиньинь с заданным акцентом. Тем не менее, поиск предложений с заданными китайскими иероглифами может быть проще, чем с другими языками, поскольку на китайском языке нет множественного числа и не сопряжено с глаголом. Если вы изучаете мандарин, у вас впереди много проблем, но грамматика не одна из них :) – Karpov

+0

Еще раз спасибо за ваш ответ. Тот факт, что грамматика проста в мандарине, - вот почему я хотел сделать эту программу. Я не должен был говорить, что хочу попрактиковаться в грамматике - я действительно хочу повторить практику разговора со всеми существующими грамматическими структурами, поэтому я правильно их использую. На немецком языке я замечаю, что я возвращаюсь к проверенным и истинным фразам и грамматическим структурам, не используя полный язык. Я думаю, что я мог бы улучшить другие языки, которые я изучаю, заставляя себя говорить больше предложений, например: [Тема] [Время1] [Время2] [Место] [Глагол] [Бу] [Глагол] [Объект]. – skaz

0

Если ваша цель - помочь вам в изучении языка, вам необходимо сгенерировать грамматические (то есть, правильные) предложения. Если это так, не использовать ngrams. Они скручивают слова наугад, и вы просто получаете интригующе естественную ерунду.

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

Другим вариантом, который вы не учли, является использование метода шаблона. Получите себе кучу предложений, определите некоторые интересующие вас классы слов и сгенерируйте варианты, установив, например, разные существительные в качестве объекта или объекта. Этот метод гораздо более вероятно даст вам полезные результаты за конечное время. Есть целый ряд well-known bots, которые работают над этим принципом, и это также в значительной степени то, что делают книги по обучению языку.

Смежные вопросы