Вариации имени в базе данных

Просто исправить. Вы можете использовать global в своей функции для назначения i. см. пример кода ниже из gpiozero import Кнопка от паузы импорта сигнала

def fcn():
    global i
    i = i + 1
    check()
    return b #No need of returning


def check():
    print i


btn = Button(26)

i = 1
btn.when_activated = lambda: fcn() # returns 2

pause()

global сообщает интерпретатору, что переменная, в данном случае «i», относится к переменной внешней области видимости. когда вы можете сделать что угодно с этой переменной ... функция check () просто печатает значение для оценки, поэтому вы можете удалить его.

10
задан Joseph Ferris 23 February 2009 в 15:40
поделиться

8 ответов

Нет, Полнотекстовые поиски не помогут решить Вашу проблему.

Я думаю, что Вы могли бы хотеть смотреть на некоторые следующие ссылки: (Забавный, никто не упомянул SoundEx до настоящего времени),

В основном SoundEx позволяет Вам оценивать уровень подобия в подобных звучащих словах. Функция также доступна на SQL 2005.

Как второстепенный вопрос, вместо того, чтобы возвратить подобные результаты, это могло бы оказаться более интуитивным пользователю для использования основанного на Ajax сценария для поставки подобных звучащих имен, прежде чем пользователь будет инициировать его поиск. Тем путем можно показать, что пользователь "аналогичные имена" или "сделал Вы имеете в виду..." вид данных.

0
ответ дан 4 December 2019 в 01:32
поделиться

По-моему, или необходимо ли сделать функцию правильно и заставить ли ее завершиться, или необходимо ли оставить ее, чтобы не встраивать half-assed аналитику в компьютерную программу, которая все еще понимает ее превратно большую часть времени ("Похож, Вы пишете букву", кто-либо?).

В случае человеческих имен компьютер поймет превратно, это большую часть времени, делая его правильно и завершенный невозможно, по моему скромному мнению. Возможно, можно взломать что-то, что делает наиболее распространенные английские имена. Но на самом деле, аналитика для поиска и "счета" и "William" создается почти в любого англоязычного человека - я предоставил бы им право соединять точки.

3
ответ дан 4 December 2019 в 01:32
поделиться

Я думаю, что Ваш основной подход тверд. Я не думаю, что fulltext собирается помочь Вам. Для отбора behindthename.com, кажется, имеет большой объем данных, которые Вы хотите.

1
ответ дан 4 December 2019 в 01:32
поделиться

Вы использующий Экспресс SQL-сервера 2005 года с Advanced Services относительно меня, это звучит, Вы извлекли бы выгоду из Полнотекстового индексирования и более конкретно Contains и Containstable, который можно использовать с конкретными инструкциями, вот ссылка для использования Containstable:

http://msdn.microsoft.com/en-us/library/ms189760.aspx

и вот является ссылка на загрузку для SQL Server 2005 С Advanced Services:

http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-BC75-3B02B5E48A40&displaylang=en

Надеюсь, это поможет,

Andrew

1
ответ дан 4 December 2019 в 01:32
поделиться

Можно использовать Полнотекстовый поиск SQL Server и сделать флективный поиск.

В основном как:

ВЫБЕРИТЕ ProductId, ProductName ОТ ProductModel, ГДЕ СОДЕРЖИТ (CatalogDescription, 'FORMSOF (ТЕЗАУРУС, металл)')

Выезд: http://en.wikipedia.org/wiki/SQL_Server_Full_Text_Search#Inflectional_Searches http://msdn.microsoft.com/en-us/library/ms345119.aspx http://www.mssqltips.com/tip.asp?tip=1491

1
ответ дан 4 December 2019 в 01:32
поделиться

Не уверенный, каково Ваше приложение, но если Ваши пользователи знают во время, подписывают это, люди от их прошлого могли бы искать базу данных их, Вы могли предложить им шанс в профиле пользователя для определения других имен, они могли бы быть известны как (включая фамилии, женщины изменяют их все время, и делает нахождение их намного тяжелее!) и что они хотят, чтобы люди смогли искать на. Сохраните их в отдельной связанной таблице. Затем поиск на этом. Просто сделайте структуру таким образом, что можно определить одно имя как основное имя (тот, который Вы используете для всего кроме поиска.)

1
ответ дан 4 December 2019 в 01:32
поделиться

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

Упрощенный стемминг просто разбивает слово, но более усовершенствованные алгоритмы связывают слова, которые означают то же самое - например, Google мог бы использовать стемминг для преобразования "кошки" и "котенка" к "кошачьему" и поиску всех трех, взвешивая фактическое слово, обеспеченное пользователем как немного более тяжелое так возврат точных совпадений перед остановленными соответствиями.

Это - известная проблема, и существуют доступные стеммеры с открытым исходным кодом.

- Adam

1
ответ дан 4 December 2019 в 01:32
поделиться

Вот идея для того, чтобы автоматически найти "синонимы имени" как Bill/William. Та проблема была изучена в более широком контексте синонимов в целом: стимулирование их от статистики, которой слова обычно появляются в тех же контекстах в корпусе крупного текста как сеть. Вы могли попытаться комбинировать тот подход со списком имен как Moby Names; я не знаю, было ли это сделано прежде.

Вот некоторые указатели.

0
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

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