Обработка английских операторов

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

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

, Который означает, что много простых проблем "в NP" также, потому что мы можем записать плохие алгоритмы для решения легких проблем. Было бы хорошо знать, какими проблемами в NP являются действительно хитрые, но мы только хотим сказать, что "это - те, мы не нашли хороший алгоритм для". В конце концов, я мог придумать проблему (назовите ее X), что я думаю, нуждается в суперудивительном алгоритме. Я говорю миру, что лучший алгоритм, который я мог придумать для решения X масштабов плохо, и таким образом, я думаю, что X действительно жесткая проблема. Но завтра, возможно, кто-то более умный, чем я изобретает алгоритм, который решает X и находится в P. Таким образом, это не очень хорошее определение тяжелых проблем.

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

6
задан skaffman 14 August 2009 в 13:49
поделиться

4 ответа

Чтобы грубо скопировать этот ответ , почему бы не попробовать Набор средств естественного языка ?

2
ответ дан 10 December 2019 в 00:42
поделиться

Стэнфордский синтаксический анализатор, предложенный ealdent, выполнит эту работу, я бы предпочел закодировать его как:

  • Bump (X, Y, Past)
  • Kick (Y, Z, Past)

POS tagger тоже может работать, но ваше предложение сложное («кто в свою очередь»).

1
ответ дан 10 December 2019 в 00:42
поделиться

Я бы посоветовал вам использовать Stanford Parser ( http://nlp.stanford.edu/software/lex-parser.shtml ), который является открытым исходным кодом и относительно просто, как эти вещи. С его помощью вы можете извлечь типизированный синтаксический анализ зависимости. Анализ зависимости предложения в основном разбивает предложение на набор бинарных отношений r (B, A) , где слово A грамматически зависит от слова B.

Возьмите ваше предложение

X bumped Y , который, в свою очередь, пнул Z.

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

nsubj(bumped, X)
dobj(bumped, Y)

Это означает, что объект bumped - X, а прямой объект bumped - Y. Затем вы можете использовать эту информацию для построения грамматической связи: bumped (X, Y) . Точно так же Стэнфордский синтаксический анализатор извлекает следующие соотношения для остальной части предложения:

nsubj(kicked, who)
rcmod(Y, kicked)
dobj(kicked, Z)

В этом случае у вас есть субъект, которого удаляют, это «кто», с Y в качестве rcmod (модификатор относительного предложения). Я не уверен, какова цель вашей системы, но вы, вероятно, обнаружите, что вам нужно вручную создать кучу правил, чтобы охватить ситуации. В этом случае ваше правило может приравнять rcmod к nsubj , чтобы получить kicked (Y, Z) .

Для получения дополнительной информации об использовании типизированные зависимости Stanford Parser, на сайте Stanford Parser есть отличный учебник ( http://nlp.stanford.edu/software/dependencies_manual.pdf ).

у вас есть субъект "кто", а Y в качестве rcmod (модификатор относительного предложения). Я не уверен, какова цель вашей системы, но вы, вероятно, обнаружите, что вам нужно вручную создать кучу правил, чтобы охватить ситуации. В этом случае ваше правило могло бы приравнять rcmod к nsubj , чтобы получить kicked (Y, Z) .

Подробнее об использовании типизированные зависимости Stanford Parser, на сайте Stanford Parser есть отличный учебник ( http://nlp.stanford.edu/software/dependencies_manual.pdf ).

у вас есть субъект "кто", а Y в качестве rcmod (модификатор относительного предложения). Я не уверен, какова цель вашей системы, но вы, вероятно, обнаружите, что вам нужно вручную создать кучу правил, чтобы охватить ситуации. В этом случае ваше правило могло бы приравнять rcmod к nsubj , чтобы получить kicked (Y, Z) .

Подробнее об использовании типизированные зависимости Stanford Parser, на сайте Stanford Parser есть отличный учебник ( http://nlp.stanford.edu/software/dependencies_manual.pdf ).

но вы, вероятно, обнаружите, что вам нужно вручную создать кучу правил, чтобы охватить ситуации. В этом случае ваше правило могло бы приравнять rcmod к nsubj , чтобы получить kicked (Y, Z) .

Подробнее об использовании типизированные зависимости Stanford Parser, на сайте Stanford Parser есть отличный учебник ( http://nlp.stanford.edu/software/dependencies_manual.pdf ).

но вы, вероятно, обнаружите, что вам нужно вручную создать кучу правил, чтобы охватить ситуации. В этом случае ваше правило могло бы приравнять rcmod к nsubj , чтобы получить kicked (Y, Z) .

Подробнее об использовании типизированные зависимости Stanford Parser, на веб-сайте Stanford Parser есть отличное руководство по этой теме ( http://nlp.stanford.edu/software/dependencies_manual.pdf ).

7
ответ дан 10 December 2019 в 00:42
поделиться

Помимо Стэнфордского синтаксического анализатора, возможен и RASP - он может создавать списки грамматических отношений как часть своего вывода. См. этот вопрос .

0
ответ дан 10 December 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: