Я могу записать SQL с помощью распознавания речи?

Вы можете сделать это как:

val df = sqlContext.emptyDataFrame
if( df.eq(sqlContext.emptyDataFrame) )
    println("empty df ")
else 
    println("normal df")
36
задан Keith Walton 9 December 2008 в 04:15
поделиться

1 ответ

Да. SQL является подходящим к распознаванию речи (как подходящий, как язык программирования может быть, который является), учитывая он - ограниченный словарь и подобная предложению структура. Кроме форматирования SQL так, чтобы это выглядело хорошим, я могу продиктовать его намного быстрее, чем ввод. Диктовка кода не для всех, как бы то ни было. Это может быть довольно печально в начале. Люди, которые пробуют это и палку с ним, вероятно, будут теми, у кого нет никакого другого выбора.

я использую Профессионала дракона NaturallySpeaking 10. Профессиональная версия имеет инструменты, которые необходимы для создания пользовательского словаря как это. Версия 9 должна хорошо работать, также. Это дорого, так попытайтесь получить компанию, на которую Вы работаете заплатить за него, если это возможно. Получите достойный микрофон гарнитуры также. Тот, который идет с NaturallySpeaking, не достаточно хорош (но можно хотеть попробовать его сначала, чтобы видеть, работает ли это на Вас). KnowBrainer является хорошим местом для рекомендаций микрофона.

05.01.2009 Обновлений : Я добавил подсказки ниже характерного для диктовки в Studio управления SQL Server.

04.01.2012 Обновления : Я отслеживал WSR Microsoft долгое время теперь, инструменты надежды были бы добавлены для легкого создания абсолютно пользовательского словаря с нуля как, я делаю в этом учебном руководстве с NaturallySpeaking. К сожалению, кажется, что это может только быть сделано через API (SAPI). У меня нет времени, чтобы записать, что код, таким образом, я продолжу использовать NaturallySpeaking для записи кода, пока что-то лучше не придет.

Подготовка

Очищает Ваши имена базы данных и кодирует

, Диктовка" SELECT PT_17, PT_28, PT_29 FROM HIK.dbo.PATINFO" была бы болью в торце, но я предполагаю, что это было бы возможно. Необходимо было бы установить большое произношение, так как NaturallySpeaking будет понятия не иметь, как" PT_17" звучал бы. Это было бы предпочтительно для диктовки:

SELECT Patient.FirstName, Patient.MiddleName, Patient.LastName FROM Claim.dbo.Patient AS Patient WHERE Patient.LastName LIKE '%smith%'

я переключился на свой словарь TSQL для диктовки вышеупомянутого оператора. Все до LIKE на операторе говорят, как это появляется. '%smith%' был продиктован как "Сьерра микрофон знака процента открытой одинарной кавычки одинарная кавычка завершения знака процента отеля танго Индии [ПАУЗА] составной объект - это". Используя последовательные псевдонимы таблицы и всегда предыдущие поля с ними помогают улучшить точность, так как NaturallySpeaking сохраняет статистику того, как часто одно слово появляется около другого.

Создают список слов ключевых слов SQL

Помещенный одно слово на каждую строку. Можно дополнительно следовать за словом с обратной косой чертой (\) и произношение. NaturallySpeaking использует маленький резервный словарь слов для определения произношения слов, которые Вы добавляете к словарю, таким образом, это не имеет никакой проблемы при выяснении, как SELECT, FROM, и WHERE объявлены. Это может иногда выяснять сложное слово, и это высказывает свое лучшее предположение для чего-то как [1 113]. Я обеспечил бы произношение для случаев как они. База данных, которую Вы используете, определит, какие слова список содержит - проверяют Вашу документацию на список ключевых слов. Ваш список будет выглядеть примерно так, но будет намного более длинным.

SELECT
WHERE
FROM
XACT_ABORT\exact-abort
MAXDOP
NOLOCK\no-lock
LEN
RETURNS
CURSOR
MONEY    

Также добавляют, что эти слова

\New-Line
\New-Paragraph
\All-Caps
\All-Caps-On
\All-Caps-Off
\Cap
\Caps-On
\Caps-Off
\No-Caps
\No-Caps-On
\No-Caps-Off
\No-Space
\No-Space-On
\No-Space-Off
\space-bar
\tab-key
a\alpha
b\bravo
c\charlie
d\delta
e\echo
f\foxtrot
g\golf
h\hotel
i\india
j\juliet
k\kilo
l\lima
m\mike
n\november
o\oscar
p\papa
q\quebec
r\romeo
s\sierra
t\tango
u\uniform
v\victor
w\whiskey
x\xray
y\yankee
z\zulu
PM
AM
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty
thirty
fourty
fifty
sixty
seventy
eighty
ninety
hundred
thousand
million
billion
trillion

Имеют в наличии этот список, так как Вы будете, вероятно, несколько раз изменять его и воссоздавать Ваш словарь для получения его способ, которым Вам нравится он.

Создают список слов Ваших имен объектов базы данных

, Это - то, как я делаю это в SQL Server:

SELECT DISTINCT * FROM 
(
SELECT DISTINCT [name] FROM Database1.[dbo].[sysobjects] WHERE xtype not IN ('F', 'S', 'PK', 'D', 'UQ') 
UNION 
SELECT DISTINCT column_name AS [name] FROM Database1.information_schema.[columns]
UNION
SELECT DISTINCT [name] FROM Database2.[dbo].[sysobjects] WHERE xtype not IN ('F', 'S', 'PK', 'D', 'UQ') 
UNION 
SELECT DISTINCT column_name AS [name] FROM Database2.information_schema.[columns]
...
) AS UnionTable

Копия и вставка результаты в текстовый файл.

Создают произношение для Ваших имен объектов базы данных

Использование тот же формат для произношения, как упомянуто выше. Простой способ создать их состоит в том, чтобы использовать поиск regex и функцию замены. В Studio управления SQL Server или Visual Studio следующий (нестандартный) regex создаст произношение для смешанных имен случая двух слов.

Find: ^{[A-Z][a-z]+}{[A-Z][a-z]+}$
Replace: \0\\\1-\2

Обзор произношение и очищает что-либо, что не выглядит правильным. Для акронимов, ASP становится 'A.S.P'.. Имейте в наличии этот список, также. Если Вы решите сделать словари для других языков программирования, Вы будете, вероятно, включать эти слова, если Вы будете разработчиком базы данных.

Создают текстовый документ, который содержит весь Ваш код SQL (представления, процедуры, и т.д.)

SQL Server:

SELECT * FROM Database1.dbo.[View] UNION SELECT * FROM Database1.dbo.Routine UNION
SELECT * FROM Database2.dbo.[View] UNION SELECT * FROM Database2.dbo.Routine 
...
ORDER BY [Name]

Удаляют комментарии и литеральные строки. Поиск Regex и замена работают хорошо на это.

Сборка Ваша Установка словаря

NaturallySpeaking и создают нового пользователя, если Вы уже не имеете.

Создают новый словарь

, Нажимают на "NaturallySpeaking | Manage Vocabularies...". Нажмите New. Назовите словарь чем-то соответствующим, таким как "SQL". Основывайте его на "Основном Генерале - Пустая Диктовка". Когда это спрашивает Вас, если Вы хотите просканировать свое электронное письмо или документы, нажмите отмену.

слова Импорта

Нажимают "Words | Import". Добавьте эти два списка слов, которые Вы создали, и импортируйте их.

Адаптируются к записи, что стиль

Нажимает "Tools | Accuracy Center". Нажмите "Add words from your documents to the vocabulary". Используйте настройки по умолчанию и выберите документ, который Вы создали, который содержит Ваш код.

Попытка, диктующая некоторый SQL

, первой вещью, которую Вы, вероятно, захотите продиктовать, является избранный оператор. Следует иметь в виду, что ВЫБОР - то, что Вы используете для начала команды в NaturallySpeaking, который выбирает текст. Из-за этого Вы захотите сказать "Ограничение" прежде, чем продиктовать его так, NaturallySpeaking не запутывается.Вот именно. Ну, по крайней мере, достаточно для получения Вас. Измените свои списки слов, произношение и свойства слова по мере необходимости. Существуют другие вещи, которые можно сделать для увеличения точности и скорости, на которой можно продиктовать. Поскольку я думаю о них, я отредактирую это сообщение и добавлю их здесь.

Подсказки для диктовки в управление Studio

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

  • Выключают все панели инструментов (создайте макросы для доступа к наиболее часто используемой функциональности)
  • Сохраняют как можно меньше областей, и документы открываются,
  • Сохраняют только одну базу данных открытой за один раз
  • , Скрывают результаты поиска после того, как Вы сделаны с ними (Ctrl+R)
  • , Если все остальное перестало работать, закройте и вновь откройте студию управления
  • Дисплей позиции табуляции в окне редактирования, чтобы облегчить форматировать Ваш SQL.

Query Analyzer от SQL Server 2000 не имеет этих проблем.

71
ответ дан Community 23 September 2019 в 22:20
поделиться
Другие вопросы по тегам:

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