Я исхожу из фона PHP и пытаюсь создать небольшой инструмент, который позволит мне фильтровать список ключевых слов по черному списку, который предоставляется через CSV-файл. Мне удалось это сделать на PHP, но у него есть ограничение скорости. Поэтому я решил попробовать свои силы с Голаном. Мне удалось открыть CSV-файл fmt.Println
содержание как ключевых слов, так и черного списка и удалось сравнить каждое из ключевых слов с каждым из ключевых слов blacklists. Но проблема, с которой я сталкиваюсь, заключается в том, что я могу понять, как построить динамический ассоциативный массив, что-то вроде этого.Сохранять данные, сгенерированные в вложенном цикле на карте или фрагменте
function compareKeywords($keyword, $filters) {
$matches = [];
foreach($filters as $filter) {
$matches[] = strpos($keyword, $filter);
}
$matches = array_filter($matches);
if(empty($matches)) {
return $keyword
}
}
Эта функция просто проверяет ключевое слово в отношении полностью или частично сопоставляя в черный список ключевых слов, если он не соответствует черный список ключевых слов, он возвращает это ключевое слово, а затем добавляет его в CSV-файл.
Я потратил приличное количество времени на создание подобной функции в Голанге, но я изо всех сил пытаюсь имитировать ассоциативный массив из PHP.
Я придумал немного другую функцию, которая принимает ключевые слова, а не одно ключевое слово, а также фильтры и использует вложенный цикл.
func compare(keywords [][]string, filterKeywords [][]string) (keywordMap //no sure what type it should be) {
matchFilters := make(map[string]string)
keywordMap := make(map[string]string)
for _, keyword := range keywords {
for _, filter := range filterKeywords {
if convStr(keyword) == convStr(filter) {
// here i want to store matches filters
}
}
}
//Check if matchFilters empty and return filtered keywordMap
return
}
Я знаю, что мой код может выглядеть многословным и выглядеть немного хромым. Но любой совет в направлении, в котором я должен двигаться, будет очень оценен.
Не могли бы вы указать пример строки из ключевых слов и фильтр csv-файла? Как вы собираетесь отображать ключевые слова для фильтров? – abhink
У меня будет два файла. Список А, будет содержать 1 столбец Ключевое слово ------------------------ Ключевое слово 1 Ключевое слово 2 Thrase 1 Thrase 2 список B будет содержать ключевое слово с черным списком, а также с одним столбцом. Ключевые слова ----------------------------------- Ключевое слово Каждое ключевое слово из списка A будет проверяться против каждого ключевого слова из списка B. Который должен возвращать массив совпадающих значений. Результатом этого фильтра должен быть Thrase 1 из списка A.Поскольку нам нужно иметь строки со словом «Ключевое слово» и две строки с номером 2, единственное, что не соответствует, - это ключевое слово Thrase 1, которое должно быть возвращено. –
Я могу использовать функции strings.Contain, чтобы определить, соответствуют ли ключевые слова из списка A ключевым словам из списка B, но я не понимаю, как их сохранить в форме ассоциативного массива. Чтобы позднее заполнить список C с отфильтрованными ключевыми словами ... –