Помимо обработки естественного языка, вы также спрашиваете о создании естественного языка: http://en.wikipedia.org/wiki/Natural_language_generation
Вы можете попытаться использовать синтаксический анализатор (например, анализатор Стэнфорда ), чтобы выяснить, какая фраза у вас под рукой, и определить основной глагол, если он есть. Вы можете просто использовать тегер части речи для этого. В английском вы также захотите определить «помогающие» глаголы (в технических статьях называемые «вспомогательные»), такие как «воля», «может», «может» и т. Д., Которые часто идут прямо перед глаголом, потому что они могут изменить время а также.
Если это просто именная фраза, "Я работаю над Х", вероятно, будет звучать нормально. Если это номинальное значение (если анализатор Стэнфорда дает вам только NN без каких-либо NP, NNP или DET внутри верхнего NP), то он может звучать лучше с прикрепленной статьей. Например. "перец проект" -> "Я работаю над проект перец". Вы не сделаете этого для «проекта Пеппера», или если это уже «проект перца», или для большинства имен собственных. Хотя всегда есть сложные случаи.
Если это глагольная фраза:
Если это уже прогрессивно, отлично. Else:
Используйте лемматизатор (или отступите от родословной), чтобы получить корневую форму основного глагола.
Разверните эту корневую форму в настоящее прогрессивное. Для этого, вероятно, будет достаточно нескольких эвристик, в зависимости от того, оканчивается ли лемма гласным или согласным, который удваивается. Например. "прогулка" -> "прогулка", "бегать" -> "бегать" (двойное n), "летать" -> "летать" (в данном случае у вас не будет гласного), "скользить" -> " скользя "(опускайте последний е после согласного), но" убегайте "->" убегайте "(не после гласной). Наиболее полное место для поиска закономерностей и исключений - Комплексная грамматика английского языка или аналогичный онлайн-ресурс. Инструменты для этого включают morphg и MorphAdorner .
Наконец, удалите все вспомогательные глаголы и замените существующую прогрессивную форму основным глаголом. Хотя это не будет идеально, но, вероятно, будет выглядеть умнее, чем большинство.
Если это целое предложение (похожее на предложение с предметом тоже), или вопрос, или какая-то другая более крупная вещь, вы можете отказаться и просто использовать общий префикс, такой как «Прямо сейчас: Дженн вернулась ко мне» ?» «Прямо сейчас: я должен идти!»
Я не эксперт, поэтому, возможно, я уже пропустил некоторые инструменты для такого рода вещей, и если это так, я надеюсь научиться этому у других. Это не легко сделать, но звучит довольно полезно. Всегда будут ошибки, и они могут раздражать ваших пользователей, или, возможно, они сочтут странности странными. Если вы соберете что-нибудь вместе, вы разместите здесь API?