C #: грамматика правил двигателя для английского языка? [закрыто]
-
03-07-2019 - |
Вопрос
Я ищу что-то, что может существовать или не существовать. Есть ли такая вещь, как «механизм правил английской грамматики», доступный на платформе Windows (специально для чего-то вроде .NET или C #)?
В частности, я ищу что-нибудь, что могло бы взять предложение в «будущем времени» и заменить его на «прошедшее время» (на основе правил грамматики английского языка) .. . как:
Работайте над программным обеспечением для виджетов, а затем встречайтесь с Рикардо
на это:
Работал над программным обеспечением для виджетов, а затем встретился с Рикардо
Есть ли механизм правил, который это уже делает?
Решение
Поговорите с этим парнем , у него могут быть некоторые идеи для вас. В общем, английский язык слишком неоднозначен для такого рода вещей. Например:
Разрежьте бумагу пополам.
Это обязательная команда или фрагмент предложения прошедшего времени? И мой личный фаворит:
Время летит как стрела; плод летит как банан.
Любой человек может разобрать это, но только благодаря большому семантическому знанию.
При этом есть некоторые вещи, на которые стоит обратить внимание, например, SharpNLP р>
Другие советы
Как уже говорили другие, это очень сложная проблема, которая не была решена в общем случае. Тем не менее, есть некоторые системы, которые работают довольно хорошо. WordNet Принстона является одним из них. Он может идентифицировать части речи, синонимы и т. Д. (Возможно, включая временные) с некоторой степенью точности. Я думаю, что вас могут заинтересовать эти функции , которые, похоже, находят корень слова, заданного определенным сопряжением, и может также быть в состоянии найти конкретное сопряжение по заданному корню (но на этой странице нет примеров, поэтому я не уверен, что правильно интерпретирую документы). р>
Короткий ответ - нет, общие механизмы синтаксического анализа НЛП не существуют.
Длинный ответ - "своего рода", но 50 лет исследований показывают, что это очень сложная проблема, в общем случае . Может быть кто-то, кто делает определенные временные преобразования. Несмотря на это, C #, вероятно, не будет иметь. Р>
Проверьте это , оно называется Grammatica. Возможно, это не совсем то, что вам нужно, но это определенно хорошее начало для анализа правил грамматики английского языка в C #.