Связанный с переполнением стека алгоритм вопросов

1111 Я подумал, что добавлю ответ, чтобы упростить то, что было сказано в прошлом. Только конфигурационные файлы могут обращаться к переменным env - и затем передавать их.

Шаг 1.) Добавьте вашу переменную в файл .env, т.е.

EXAMPLE_URL="http://google.com"

Шаг 2.) Создайте новый файл внутри папки config, любое имя, т. Е.

config/example.php

Шаг 3.) Внутри этого нового файла я добавляю возвращаемый массив, содержащий эту переменную env.

<?php
return [
  'url' => env('EXAMPLE_URL')
];

Шаг 4.) Поскольку я назвал это «example», моя конфигурация «namespace» теперь является примером. Итак, теперь в моем контроллере я могу получить доступ к этой переменной с помощью:

$url = \config('example.url');

Подсказка - если вы добавите use Config; вверху вашего контроллера, вам не понадобится обратная косая черта (который обозначает корневое пространство имен). Т.е..

namespace App\Http\Controllers;   
use Config; // Added this line

class ExampleController extends Controller
{
    public function url() {
        return config('example.url');
    }
}

--- ВАЖНО --- Не забудьте войти в консоль php artisan config:cache после того, как вы создали файл example.php. Файлы конфигурации и переменные кэшируются, поэтому, если вы вносите изменения, вам необходимо очистить этот кэш - то же самое относится и к файлу .env, который был изменен / добавлен.

26
задан STLDev 23 February 2018 в 04:31
поделиться

7 ответов

Боковая панель связанных вопросов будет построена на тегах для каждого вопроса (возможно, путем ранжирования их на основе перекрытия тегов, так что 5 общих тегов> 4 общих тега и т. Д.).

Остальное будет основано на эвристиках и алгоритмах, подходящих для обработки естественного языка. Обычно они не очень хороши для языка общего назначения, но большинство из них ОЧЕНЬ хороши, если словарный запас сокращен до одной технической области, такой как программирование.

8
ответ дан 28 November 2019 в 07:33
поделиться

Если вы слушаете подкаст Stack Overflow 32 (к сожалению, в стенограмме не так много), вы можете услышать, как Джефф Этвуд немного рассказывает о том, как он это делает.

Похоже, что алгоритм выглядит примерно так:

  • Ответьте на вопрос
  • Удалите наиболее распространенные слова на английском языке (из списка, полученного от Google)
  • отправьте полнотекстовый поиск на сервер SQL 2008 система полнотекстового поиска

Более подробную информацию о полнотекстовом поиске можно найти здесь: http://msdn.microsoft.com/en-us/library/ms142571.aspx

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

18
ответ дан 28 November 2019 в 07:33
поделиться

Взгляните на стемминг Портера для алгоритма стемминга , если вы хотите изучить «связанные» алгоритмы.

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

После того, как вы обработали документ и выполнили поиск по нему, вы можете проиндексировать выделенные слова по счетчику, а затем сравнить их с другими документами. Это наиболее простой подход к решению этой проблемы.

Также позаботьтесь о том, чтобы игнорировать стоп-слова , такие как «the», «an», «of» и т. Д.

6
ответ дан 28 November 2019 в 07:33
поделиться

Используйте функцию полнотекстового поиска SQL Server.

-1
ответ дан 28 November 2019 в 07:33
поделиться

Я не знаю, как SO это реализует, но мне кажется, что они используют вариант приблизительного сопоставления строк .

1
ответ дан 28 November 2019 в 07:33
поделиться

Такие проблемы решаются путем создания «мешка слов» из слов с корнем. По сути, это вектор подсчета слов. Эти слова предварительно обрабатываются (выделяются корнем) и взвешиваются с учетом вероятности их появления в предложении («the» имеет более высокую вероятность, чем «вероятность», и, следовательно, должно иметь меньший вес). Затем вы можете воспринимать этот набор слов либо как вектор в евклидовом пространстве, либо как образец плотности вероятности.

Вы можете применять алгоритмы как поиск ближайшего соседа или семантическое хеширование. Последний, похоже, является SOTA (см. http://www.cs.toronto.edu/~rsalakhu/papers/semantic_final.pdf ).

0
ответ дан 28 November 2019 в 07:33
поделиться
Другие вопросы по тегам:

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