. Как разобрать «больше вреда, чем пользы»?
спросил
Изменено 2 года, 11 месяцев назад
Просмотрено 4к раз
В этом Оксфордском словаре выражение «принести больше вреда, чем пользы» определяется следующим образом:
Непреднамеренно усугубить ситуацию, а не улучшить ее.
‘ поспешные законы приносят больше вреда, чем пользы ’
Так что я думаю, что этот пример означает то же самое, что и
поспешные законы приносят больше вреда, чем пользы
Составляет ли выражение «больше вреда, чем пользы» именное словосочетание и действует ли «больше» как определитель?
поспешные законы [ больше вреда, чем пользы
]
Или это выражение следует анализировать по-другому?
Напоминание: обратите внимание, что вопрос конкретно о синтаксисе. Ваш ответ должен содержать предложение о том, как анализировать выражение.
Кембриджский словарь определяет это выражение следующим образом:
наносить ущерб и не помогать
Определение словаря Macmillan:
сделать ситуацию хуже, а не лучше
Определение Викисловаря:
Чтобы ухудшить ситуацию, обычно пытаясь ее улучшить.
Все это соответствует определению Оксфордского словаря в том смысле, что это выражение не касается количественного сравнения вреда и пользы. Так что те, кто утверждает, что выражение относится к такому сравнению, должны указать какой-нибудь авторитетный источник.
- синтаксический анализ
- сравнительный анализ
11
Является ли «больше вреда, чем пользы» именным оборотом?
поспешные законы приносят [больше вреда, чем пользы]
поспешные законы делают [вещи]
поспешное законодательство делает [вещи]
«вещи» — исчисляемое существительное, а «вещи» — неисчисляемое существительное. Оба работают вместо фразы, не меняя значения или грамматики «поспешного законодательства», поэтому я бы сказал «да», «больше вреда, чем пользы» — это именное словосочетание. Ему не нужен определитель больше, чем «материалу».
Значение, которое вы предлагаете, почти правильное:
поспешное законодательство наносит вред в целом , а не хорошо
Намерение состоит в том, чтобы делать добро, но добро, которое оно делает, затмевается злом, которое, скорее всего, непреднамеренно.
Я согласен с определением Оксфордского словаря, а также с определением Википедии. Я думаю, что определения Кембриджского словаря и словаря Макмиллана верны, но слишком узки.
Например, Macmillan дает следующее предложение:
Интенсивные упражнения часто могут принести больше вреда, чем пользы.
Интенсивные упражнения могут уменьшить жировые отложения и привести к повреждению мышц. Он может быть как хорошим, так и плохим, но если происходит травма, то плохое перевешивает хорошее.
21
В этом контексте вы должны понимать, что законодательство будет иметь ряд последствий. Некоторые эффекты хорошие, некоторые эффекты плохие.
Вместо этого вы можете разобрать фразу как:
поспешные законы приносят больше вреда[вещей], чем пользы [вещей].
6
Когда вы используете синтаксис «больше X, чем Y», X и Y должны быть сопоставимы друг с другом. Следовательно, они оба должны быть истолкованы как существительные, или оба прилагательные, или оба наречия. И «больше» означает, что они должны быть каким-то образом измеримы. Это означает, что вы сравниваете количества, а не описываете альтернативу «или/или».
«вред» и «хороший» оба используются как исчисляемые существительные в этом контексте. Это сравнение количества вреда с количеством сделанного добра и констатация того, что количество вреда больше.
Иногда эта фраза используется, когда действие имеет как хорошие, так и плохие последствия, но плохие перевешивают хорошие. Его также можно использовать, когда действие задумано или ожидается, что оно будет иметь хорошие последствия, но они оказываются незначительными по сравнению с плохими эффектами, которые могли быть непреднамеренными (это, вероятно, будет обнаружено только постфактум). В последнем случае ваша первая интерпретация будет довольно близка к фактическому результату, но обычно это не является намерением говорящего.
10
Хотя я согласен с буквальной интерпретацией ответов, я думаю, полезно понимать, что эта фраза является идиоматической в использовании и понимании. Сначала я сказал «почти идиоматический», потому что (по крайней мере, для носителей английского языка) буквальное значение настолько близко к идиоматическому значению, что трудно даже осознать его идиоматику. Контекст в основном всегда таков, что решение предназначено для улучшения ситуации, а говорящий (или писатель) утверждает, что на самом деле усугубит проблему.
На самом деле не важно, действительно ли решение приносит пользу, важно, чтобы общий результат был плохим.Причина, по которой вы должны использовать эту фразу вместо «скорее вред, чем польза», заключается в следующем:
Чтобы признать, что решение основано на добрых намерениях.
Чтобы признать, что решение может иметь некоторые преимущества.
Но в основном это примерно 1. В основном: способ смягчить критику решения в рамках дебатов или дискуссий. Если вы просто скажете: «Ваше решение наносит вред», это может расцениваться как нападение на создателей или сторонников этого решения. Использование этой фразы подразумевает, что намерения, стоящие за решением, хорошие, даже если результат плохой.
Вы пишете в приложении:
Все они соответствуют определению Оксфордского словаря в том смысле, что это выражение не касается количественного сравнения вреда и пользы. Так что те, кто утверждает, что выражение относится к такому сравнению, должны указать какой-нибудь авторитетный источник.
Я думаю, что вы немного запутались в этом в целом. Причина, по которой эти источники не ссылаются на буквальное значение слов, заключается в том, что это идиоматическое выражение, указанное в Merriam-Webster.
Идиома — это фраза или выражение, имеющее переносное, а иногда и буквальное значение. Образное значение идиомы, относящейся к формульному языку, отличается от буквального значения.
Поэтому там запись для фразы стоит на первом месте. Если вы будете искать другие фразы на сайте Lexico (Оксфорд), на который вы ссылались, вы не найдете ни одной грамматически правильной фразы, которую вы вводите. Это только те фразы, которые имеют какое-то другое значение, отличное от того, что говорят буквальные слова.
Вы не сможете свободно говорить по-английски, не познакомившись с распространенными идиомами. Из статьи в Википедии выше: «По оценкам, только в английском языке существует не менее двадцати пяти тысяч идиоматических выражений». Большинство носителей английского языка используют так много идиом в своей речи и письме, что даже не подозревают об их идиоматичности.
Фраза имеет смысл буквально, но это не то, что означает идиома. Например, если я говорю, что кто-то «высокий, как воздушный змей», это имеет буквальное значение: «находится на высоте, на которой может летать воздушный змей», но это не то, о чем идет речь.0016 означает . Это означает, что человек находится в состоянии алкогольного опьянения.
Таким образом, попытка выяснить, как «разобрать» это семантически, чтобы прийти к определениям, которые вы находите, не имеет смысла. Эти определения предназначены для фразы как идиомы, а не для того, что слова означают семантически.
11
Фраза буквальна. В расширенной форме это означает, что говорящий считает, что предполагаемое действие будет иметь как вредные, так и полезные последствия, но вредные последствия перевешивают или превосходят полезные, так что конечный результат является чистым отрицательным.
Я знаю, что некоторые могут предположить, что это идиоматично, но я должен со всем уважением не согласиться. Это означает буквально то, что написано, хотя, возможно, немного кратко. Это наиболее часто и наиболее правильно используется, когда предполагаемое действие включает в себя как положительные, так и отрицательные результаты. Некоторые люди могут время от времени использовать его, даже когда действия, предложенные кем-то другим, имеют только негативные последствия, но в этом случае они совершают ложь во благо в социальных целях, а не полагаются на устоявшуюся идиому.
Кстати, это утверждение имеет смысл в контексте законодательства. Практически любое законодательство имеет непредвиденные последствия. Практически любое законодательство имеет как положительные, так и отрицательные последствия. Вопрос в том, перевешивает ли добро зло, и часто говорят, что тот или иной законодательный акт, скорее всего, принесет больше вреда, чем пользы. Хотя это трудно доказать, многие люди считают, что в целом поспешное законодательство приносит стране больше вреда, чем пользы.
В этом предложении и «вред», и «хороший» являются существительными. Как говорит Бармар, они сопоставимы и сравниваются. «Больше» — это прилагательное, модифицирующее «ущерб», говорящее о том, что количество вреда больше, чем что-либо. «Чем» — это союз (для этого мне пришлось проверить m-w в Интернете). Он связывает именную фразу «больше вреда» с существительным «хороший», указывая на то, что сравнение проводится между «хорошим» и «вредным». И «делает», конечно же, главный глагол. Итак, я думаю, что анализ
[приносит [[больше вреда], чем [хороший]]]
Структурно эта фраза ничем не отличается от фразы «ест больше мяса, чем зерна».
2
Фраза «больше вреда, чем пользы» имеет аналогичную структуру.
Во-первых, когда законодательство делает что-то плохое, оно наносит вред.
Законодательство также может сделать что-то хорошее, то есть оно может сделать добро.
Но хотя поспешное законодательство, возможно, приносит пользу, в конце концов наносит больше вреда.
Следовательно, поспешное законодательство приносит больше вреда, чем пользы.
Это параллельная конструкция с подлежащим «законодательство» в обеих частях (представленным «это» во второй части) и глаголом «делать» в качестве глагола-сказуемого в обеих частях, поэтому мы можем опустить «это делает» со второй части:
Поспешное законодательство приносит больше вреда, чем
пользы.Поспешное законодательство приносит больше вреда, чем пользы.
И я думаю, что словарное определение не может объяснить все коннотации этой фразы, как это часто бывает со словарными определениями. Идея не в том, что поспешные законы не приносят никакой пользы; это буквально то, что все, что в нем хорошего, меньше, чем вреда, который в нем есть, поэтому в целом это ухудшает ситуацию.
1
У вас есть весы: Сваливай все хорошее на одну сторону, а вред на другую. В какую сторону наклоняются весы?
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.Написание лингвистических правил для обработки естественного языка | by Jenny Lee
С руководством по извлечению типов вопросов с помощью spaCy
Источник: This LA Times articleСодержание
- Размышления лингвиста
- Решение: Извлечение синтаксических признаков на основе правил
- Пример: Извлечение типа вопроса с использованием spaCy
Когда я впервые начал изучать науку о данных ближе к концу своей докторской диссертации. программы по лингвистике, я был рад открыть для себя роль лингвистики, в частности, лингвистики особенности — в разработке моделей НЛП. В то же время я был немного озадачен тем, почему относительно мало говорится об использовании синтаксических признаков (например, уровень клаузальной вложенности, наличие координации, тип речевого акта и т. д.) по сравнению с другими типами признаков, , например, сколько раз определенное слово встречается в тексте (лексические признаки), меры сходства слов (семантические признаки) и даже место в документе, где встречается слово или фраза (позиционные признаки).
Например, в задаче анализа настроений мы можем использовать список содержательных слов (прилагательных, существительных, глаголов и наречий) в качестве характеристик для прогнозирования семантической ориентации отзывов пользователей (т. е. положительных или отрицательных). В другой задаче классификации обратной связи мы можем курировать списки слов или фраз для конкретной области, чтобы обучить модель, которая может направлять комментарии пользователей в соответствующий отдел поддержки, например, в отдел выставления счетов, технический отдел или отдел обслуживания клиентов.
Обе эти задачи требуют предварительно созданных словарей для извлечения функций, и существует множество таких словарей для публичного использования, таких как SocialSent и эти словари, созданные автором Medium. (Также ознакомьтесь с этой исследовательской статьей, в которой обсуждаются различные методы построения лексикона настроений). Пока лексические особенности сыграли важную роль в разработке многих приложений НЛП, было относительно мало работы, связанной с использованием синтаксических особенностей (одно большое исключение, возможно, относится к области обнаружения грамматических ошибок).
Это сбивало с толку (и немного утомляло) меня как представителя лингвистической традиции, придающей синтаксису некое «превосходство» над семантикой и фонологией в общей архитектуре грамматики. Это, конечно, не означает, что лингвисты считают синтаксис в каком-то смысле более важным, чем другие разделы лингвистики, а просто то, что он занимает главенствующее положение во многих моделях грамматики, утверждающих, что синтаксическая форма является производной 9 .0016 до достигается семантическая или фонетическая интерпретация. Привыкнув к этой «центральности» синтаксического модуля в лингвистической теории, я изо всех сил пытался понять прохладное отношение к синтаксической структуре в НЛП, которое резко контрастировало с большим доверием, которое разработчики НЛП придавали лексическому содержанию как характеристикам.
Язык, представленный НЛП, временами заставлял меня думать о фрагментарном Мистере Картофельная Голова — двухмерные части тела, разбросанные по странице книжки-раскраски, слова, не имеющие отношения друг к другу.
Источник: https://www.pixar.com/feature-films/toy-story. рассеяться, когда я уловил «магию» машинного обучения/глубокого обучения: даже без явного кодирования «он также изучает синтаксис». (И, по иронии судьбы, именно так ребенок овладевает языком — без явных указаний.)Как лингвист (в частности, специалист по морфосинтаксии), я все еще, честно говоря, немного зациклен на реальности, что синтаксические особенности не получили такого большого внимания. внимание как лексические признаки в НЛП/ОД, и я склонен объяснять эту асимметрию следующими причинами:
1. Повторное знакомство с конвейером предварительной обработки и его нормализация, в котором структура преуменьшаетсяИзучающие НЛП, мы постоянно знакомимся с конвейером НЛП, который включает в себя методы предварительной обработки, такие как удаление стоп-слов, лемматизация/выделение корней и сумка. -представление слов. Эти методы полезны во многих случаях, но по своей сути являются субтрактивными: они удаляют фрагменты синтаксической (и/или морфологической) информации, присутствующей в исходном тексте. Удаление стоп-слов удаляет служебные слова, которые кодируют информацию об отношениях между составляющими/фразами, например, в, из, в, , и и т. д. Лемматизация и выделение корня удаляют важные флективные особенности, такие как время и согласование, а также производные аффиксы, которые могут иметь решающее значение для определения точного значения слова (например, — э в учитель , — мент в — хищение ). И, конечно же, представления «мешок слов» игнорируют порядок слов, что является значительной потерей для такого языка, как английский, который не использует морфологический падеж для обозначения порядка слов. Когда эти шаги становятся обычными и повторяющимися частями нашего повседневного конвейера НЛП, это может скрыть или свести к минимуму роль, которую на самом деле играет синтаксическая структура.0016 играет роль в обработке естественного языка, что препятствует или препятствует любым попыткам систематически измерить его влияние на модели НЛП.
2. Практические проблемы написания сложных лингвистических правилЯ также предполагаю, что относительная неясность синтаксических особенностей в значительной степени связана с практическими трудностями написания достаточно сложных правил. Эксперты НЛП приходят в эту область с разной степенью знаний в области синтаксиса, и без четкого понимания основ и универсалий синтаксической структуры, лежащих в основе каждого языка, а также, в некоторой степени, ограничений на межъязыковые вариации, может быть трудно чтобы знать, какие синтаксические особенности имеют отношение к конкретному языку, не говоря уже о написании эвристик для их извлечения. В отличие от лексических особенностей, которые во многих случаях сводятся к простому подсчету слов, разработка хорошо продуманных лингвистических правил на уровне предложений (синтаксических) является гораздо более сложной задачей, требующей значительных знаний предметной области.
3. Упрощенная природа человеческой речи при взаимодействии человека с машинойЯ также пришел к выводу, что некоторые из наших самых популярных и коммерческих продуктов НЛП не требуют очень сложных синтаксических представлений входного текста или речи — создание синтаксических функций менее чем незаменимы при разработке моделей, которые их приводят в действие. Я думаю, причины в том, что (1) человеческая речь при взаимодействии человека и машины имеет тенденцию быть слишком упрощенной с самого начала («Привет, Google, погода в Сан-Франциско» вместо «Эй, Джон, не могли бы вы сказать мне, какая сегодня погода в Сан-Франциско? ») и (2) простые синтаксические анализы лучше подходят для систем с меньшими вычислительными затратами, чем сложные синтаксические анализы, поэтому мы вынуждены работать с этими ограничениями.
Чтобы было ясно, три вещи, которые я обрисовал выше, являются проблемами/препятствиями для использования синтаксических признаков, а не оправданий для их исключения при проектировании признаков. Хотя я не уверен, насколько синтаксические функции могут повлиять на производительность модели по сравнению с другими функциями, я верю, что поскольку мы стремимся создавать машины, которые могут взаимодействовать с людьми гораздо более тонкими, естественными и изощренными способами. , синтаксический ввод и представление будут играют все более заметную роль в будущем НЛП. Я думаю, что мы получили бы большую пользу, если бы сделали эти три вещи в ответ:
- Больше экспериментируйте с синтаксическими функциями в наших повседневных усилиях по машинному обучению и инвестируйте в оптимизацию этого процесса, чтобы он стал повторяющейся частью конвейера.
- Создайте больше кода с открытым исходным кодом для извлечения лингвистических признаков.
- Наймите больше лингвистов и при необходимости помогите им повысить свои технические навыки. Инвестируйте в них ради уникальной отдачи, которую они принесут.
Во всех этих трех задачах, я думаю, мы могли бы получить наибольшую отдачу, используя, в частности, систему , основанную на правилах . Синтаксис — это область, требующая точных знаний о конкретном языке, и поэтому она хорошо подходит для представления на основе правил (то есть в НЛП), возможно, в большей степени, чем любая другая область грамматики. Предложение использовать подход, основанный на правилах, конкурирует с подходом, полностью основанным на машинном обучении, для создания наборов функций. В последнем вы обучаете модель, которая предсказывает значение определенной функции 9От 0016 до подаются в модель, которая прогнозирует выходные данные некоторой целевой переменной. Однако этот процесс, вероятно, будет очень трудоемким и дорогостоящим, потому что вы обучаете модель до , обучая модель. И именно поэтому я бы рекомендовал использовать правила как часть гибридной системы практически во всех случаях. Гибридные подходы сочетают в себе базовую модель, основанную на алгоритмах машинного обучения, и систему, основанную на правилах, которая служит своего рода фильтром постобработки, и это уже старые новости. Было много успешных применений их, как это и на моей собственной работе.
Использование правил
Еще одно преимущество правил и систем, основанных на правилах, заключается в том, что их можно гибко использовать различными способами и, следовательно, привносить ценность и строгость почти на каждом этапе конвейера машинного обучения. Помимо использования их для извлечения признаков на этапе разработки признаков, их также можно использовать для:
- Предварительной маркировки больших наборов данных для создания зашумленных обучающих данных во время подготовки данных (функция маркировки )
- Исключения определенных аннотаций во время предварительная обработка данных ( предварительный фильтр )
- Отфильтровать ложные срабатывания из выходных данных классификатора до/во время оценки модели (постфильтр )
некоторые могут быть склонны делать. Скорее, мы должны признать, что они очень убедительно дополняют друг друга, добавляя серьезное преимущество общей архитектуре.
В этом заключительном разделе я дам практическое руководство по написанию некоторых синтаксических правил для извлечения признаков. Я буду использовать spaCy для этого, сосредоточившись на извлечении тип вопроса . Я выбрал тип вопроса, потому что эта категория может особенно хорошо проиллюстрировать невероятную ценность лингвистических знаний при построении частично управляемой правилами модели НЛП. Кроме того, вероятно, есть много вариантов использования для извлечения типа вопроса (и, соответственно, типа предложения), поэтому, надеюсь, кому-то будет полезен приведенный ниже код. Некоторые приложения, которые я могу придумать, это: детальная классификация вопросов (является ли предложение бело-вопросным вопросом, вопросом «да» или «нет» или теговым вопросом?), обнаружение речевого акта (является ли комментарий вопросом, просьбой или требование?), сравнительный речевой анализ (какой человек или группа использует в своей речи больше стратегий вежливости?) и т. д.
Источник: этот обзорВ этом заключительном разделе я, в конечном счете, надеюсь, довел до сознания как уместность лингвистических знаний для разработчиков НЛП, так и уместность правил или систем, основанных на правилах, в задачах НЛП/МО .
Написание лингвистических правил: итеративный процесс
При написании лингвистических правил я обычно выполняю следующие шесть шагов:
- Определение категорий интереса (например, «wh-вопрос», «полярный вопрос», «не вопрос» ).
- Придумайте одно или два больших лингвистических обобщения по каждой категории.
- Придумайте несколько контрпримеров к обобщениям и при необходимости измените/расширьте их.
- Напишите правила, учитывающие новые обобщения.
- Проверьте правила на нескольких примерах.
- Доработайте правила, устранив все ложные срабатывания и протестировав новые примеры.
Часто эти шаги не являются идеально последовательными. Например, определение категорий, на которые вы хотите ориентироваться (шаг 1), в основном сводится к формулированию некоторых обобщений о них (шаг 2), поэтому вы можете выполнять эти шаги одновременно. Прежде чем я проиллюстрирую, как этот поток может направлять наше написание правил, давайте немного углубимся в spaCy.
Начало работы с spaCy
spaCy — это высокопроизводительная библиотека Python, которая может похвастаться многочисленными функциями и возможностями, которые помогут вам создать ваше любимое приложение НЛП, включая токенизацию, распознавание именованных сущностей, тегирование частей речи, анализ зависимостей, предварительное -обученные векторы слов и подобия, а также встроенные визуализаторы. Ознакомьтесь с полным набором его функций здесь, но здесь нас будут интересовать только два его компонента обработки, которые позволят нам представить синтаксическую структуру любого предложения, а именно теггер
и парсер
. Основной процесс использования spaCy выглядит следующим образом: сначала загрузите модель по вашему выбору (например, "en_core_web_sm"
). Затем вы можете проверить компоненты конвейера, позвонив по номеру pipe
или pipe_name
на nlp
.
Затем вызовите nlp
, передав строку и преобразовав ее в spaCy Doc
, последовательность токенов (строка 2 ниже). Синтаксическая структура документа Doc
может быть построена путем доступа к следующим атрибутам токенов его компонентов:
-
pos_
: Обобщенный тег части речи. -
tag_
: Детализированный тег части речи. -
dep_
: Тег синтаксической зависимости, т. е. связь между токенами. -
head
: синтаксический регулятор или непосредственно доминирующая лексема
Я считаю полезным распечатать значения этих атрибутов вместе с именами лексем и индексами в кортежах, например:
Если вы хотите визуализировать синтаксический анализ, введите свое предложение во встроенный визуализатор spaCy. помечен POS-тегом грубого уровня (точный уровень ( tag_
) здесь не показан).
Шаги 1–2. Определите категории, о которых вы хотите написать правила, и придумайте одно или два лингвистических обобщения для каждой категории
Эти два шага часто идут рука об руку. Разрабатывая правила извлечения типов вопросов, мы должны признать, что в любом языке есть два типа вопросов: wh-вопросы и полярные вопросы. Внимательно прочтите эти обобщения:
Обобщения о типах вопросов: (1) Wh-вопросы (также известные как вопросы по содержанию): начните с вопросительного слова («wh-фразы»), например кто, что , где , и как, и позвоните для получения конкретной информации. (2) Полярные вопросы (также известные как вопросы «да» или «нет»): на них можно ответить утвердительно или отрицательно (с ответом «да» или «нет»), и они начинаются со вспомогательного ( сделал, сделал ) или модального ( будет, может ) глагол.
Вам может быть полезно визуализировать эти типы вопросов с помощью displaCy. Последний снимок экрана содержит синтаксический анализ для wh-вопроса, а вот один для полярного вопроса:
Анализ зависимостей для полярного вопросаВ дополнение к визуальному анализу мне нравится иметь возможность видеть триплет pos-tag-dep для каждого жетон, вот так:
Используя свои знания соглашений об аннотациях Penn Treebank (поскольку именно их использует spaCy), вы можете попробовать написать функции версии 1, которые будут отражать приведенные выше обобщения. Обычно я предпочитаю писать отдельные функции для разных категорий, а не одну функцию, содержащую сложную логику if/then. Вот краткая первая версия, в которой делается попытка зафиксировать обобщения в (1)-(2).
v1 правила извлечения двух типов вопросовШаг 3: Придумайте контрпримеры и пересмотрите свои обобщения
Придумывать контрпримеры к вашим первоначальным обобщениям очень важно, потому что они бросят вызов вашим основным предположениям о рассматриваемом лингвистическом феномене (здесь — формирование вопросов) и заставят вас выявить общую нить между различными примерами, чтобы выразить их поведение и характеристики в единый, обобщенный способ. В конечном счете, это поможет вам написать более простые, но более надежные и исчерпывающие правила.
Два приведенных выше обобщения воспроизведены здесь, чтобы избавить вас от прокрутки:
(1) Wh-вопросы (также известные как вопросы по содержанию): начните с вопросительного слова («wh-фразы»), например кто, что , где и как, и позвоните для получения конкретной информации .(2) Полярные вопросы (также известные как вопросы «да» или «нет»): на них можно ответить утвердительно или отрицательно (с ответом «да» или «нет»), и они начинаются со вспомогательного ( сделал, сделал ) или модального ( будет, может ) глагол.
Вот первая пара контрпримеров к обобщению в (1):
(3) То, что вы говорите , невероятно.
(4) Кого ты собираешься убивать, это не моя проблема.
Мы видим, что (1) не подтверждается этими предложениями, потому что, несмотря на то, что они начинаются с wh-слова, они не являются wh-вопросами! Это то, что лингвисты называют wh-расщелинами, или псевдорасщелинами . Псевдолевые часто описываются как придающие ударение или «фокус» части предложения и имеющие форму в (5):
(5) свободный относительный + «быть» + сфокусированный компонент
Свободный родственник — это предложение wh-relative, в котором (очевидно) отсутствует заглавное существительное (то есть «что вы говорите» вместо «то, что вы говорите»). Эта часть псевдорасщелины вводит тему (о чем идет речь в предложении) и связана с сфокусированным компонентом, который вводит новую информацию («невероятно») посредством глагола «быть».
Вот еще несколько контрпримеров к (1):
(5) В какой статье говорили о spaCy?
(6) Кому вы читали статью?
Эти приговоры не подтверждаются (1) по другой причине: Хотя они не начинают с wh-фразы, как говорится в обобщении, они по-прежнему являются wh-вопросами в том смысле, что на них можно ответить с конкретной информацией (например, ответ на (6) может быть «Я прочитал статью своей сестре. »). Эти предложения представляют собой так называемые «пестрые» конструкции и характеризуются тем, что слово wh появляется вместе с предлогом, как если бы оно «перетащило» другое слово в начало предложения. (6) в частности, можно противопоставить другому предложению, которое «связывает» предлог: « Кто вы читали статьи с по ?».
Наконец, вот два контрпримера к обобщению о полярных вопросах, изложенному в (2):
(7) Будет ли сегодня дождь?
(8) Вам было грустно из-за ее ухода?
Эти предложения показывают, что в дополнение к вспомогательным и модальным глаголам связка («быть») как основной глагол (в отличие от вспомогательного) должна быть включена в категорию глаголов, которые могут стоять в начале полярных вопросов . Проще говоря, глагол и подлежащее подвергаются инверсии в полярных вопросах, когда глагол является вспомогательным, модальным или формой «быть», который служит основным глаголом. Это подводит нас к следующим пересмотренным обобщениям:
(1') Wh-вопросы (иначе содержательные вопросы): содержат вопросительное слово («wh-фразу»), например кто, что , где и как, и призывают к более конкретная информация. (2') Полярные вопросы (также известные как вопросы «да» или «нет»): на них можно ответить утвердительно или отрицательно (с ответом «да» или «нет») и отобразить инверсию субъект-глагол, где должен быть глагол. либо вспомогательный ( сделал, сделай), модальный ( будет, может ), или форма основного глагола be.
Я думаю, что этот шаг наглядно демонстрирует, что лингвистические знания необходимы для написания сложных правил извлечения признаков. Знание того, что английский язык использует различные стратегии для обозначения вопросительных предложений, таких как инверсия подлежащего и глагола и движение wh, а также распознавание (и наличие названий) интересных языковых явлений, таких как pied-piping и clefting, может помочь вам сформулировать обобщения, которые могут в очередь поможет вам написать всеобъемлющие правила, которые не слишком специфичны.
Шаг 4: Напишите правила
Теперь мы можем изменить более ранние версии функций, is_wh_question_v1
и is_polar_question_v1
, чтобы они соответствовали новым обобщениям (1′) и (2′). Эта часть потребует некоторого времени и практики, прежде чем мы сможем чувствовать себя очень уверенно и комфортно, так что наберитесь терпения! Ниже я выделю несколько основных вещей, которые характеризуют каждую из функций v2:
In is_wh_question_v2
:
- Ссылаясь на теги spaCy (например,
"WDT"
,"WP"
и т. д.) делает ваши правила более общими, чем обращение к отдельным wh-словам (строка 3). - Pied-piping может быть захвачен отношением зависимости
prep
между wh-словом и его заголовком (синтаксическим родителем или «управляющим» токеном) (строка 8). - Псевдоклева исключаются путем возврата
False
, если слово wh находится в отношенииcsubj
илиadvcl
к его заголовку (строки 11–13).
В is_polar_question_v2
, нам необходимо учитывать две ситуации:
- Вопрос возникает в несвязной конструкции, в которой «есть» (или другая форма «быть», например «был») функционирует как вспомогательное , например, « она использует spaCy?» (основной глагол здесь «использовать». )
- Вопрос возникает в связной конструкции, в которой «есть» функционирует как основной глагол , « мышь мертва?»
- Тип 1 улавливается в строках 14–16, а инверсия подлежащего по отношению к вспомогательному. (Те же строки кода могут также отвечать за предметную область).0016 модальная инверсия , например «Вы можете прочитать статью?»).
- Тип II фиксируется в строках 20–22, и инверсия субъекта происходит по отношению к корню, т. е. к единственному токену, чей тег зависимости
«ROOT»
в документе. - Взаимоисключаемость полярных вопросов и бело-вопросов отражена в строках 9–10.
Шаги 5–6: протестируйте правила на множестве примеров и повторите!
Наконец, чтобы объединить все вышеперечисленное, мы можем написать тестовую функцию, которая берет список примеров предложений и печатает тип вопроса для каждого предложения.
Когда я запускаю get_question_type(sentences)
, я получаю следующий вывод:
В [352]: get_question_type(sentences)
Это правда? -- полярный
Ты можешь остановиться? -- полярный
Вы любите Джона? -- полярный
Тебе грустно? -- полярный
Она пела? -- polar
Ты не придешь на ужин? -- полярный
Не могли бы вы мне помочь? -- полярный
Кого ты любишь? -- wh
Чей это ребенок. -- wh
Откуда вы его знаете? -- wh
Кому она читала книгу? -- ч
Я голоден. -- не вопрос
Spacy такой веселый! -- не вопрос
Скажи мне, что ты имеешь в виду. -- не вопрос
Буду рад вам помочь. -- не вопрос
Не грусти. -- не вопрос
Как хотите. -- wh # ложное срабатывание
То, что вы говорите, невозможно. -- не вопрос
Куда ты пойдешь, я пойду. -- не вопрос
Все верно, кроме предпоследнего предложения «Все, что хочешь». С функциями v2 мы достигли точности 18/19 = 94,7% . Неплохо! Обратите внимание, что эти правила действительно чувствительны к лежащей в основе синтаксической структуре каждого предложения, а не к некоторым поверхностным свойствам, таким как наличие вопросительного знака (что иллюстрируется правильной классификацией примера «Чей это . ребенок »). .
И на всякий случай:
из sklearn.metrics importclassification_reportcr = classification_report(true_values, rules_predictions)
print(cr) точность отзыва f1-score supportне вопрос 1,00 0,88 0,93 8
полярный 1,00 1,00 1,00 7
белый 0,80 1,00 0,89 4
В качестве последнего шага вам нужно уточнить правила, устранив все ложные срабатывания для повышения точности (например, «Все, что вы хотите» было неправильно классифицировано как wh-вопрос) и тестирование с большим количеством примеров (и более сложных примеров), чтобы улучшить память.